Redmine v Kubernetes – Část 1: Příprava prostředí

6/22/2020
דקות 6
Lukáš Beňa.
V této dvoudílné sérii nasadíme Redmine do Kubernetes. Budeme používat doporučené nástroje a postupy s cílem nasadit odolnou instanci Redmine přes HTTPS.

Rozdělili jsme tento návod na dvě části, abychom se nejprve zaměřili na instalaci nástrojů a komponent, které bude Redmine využívat. Ale nemusíte se obávat složitosti. I když jste noví v Kubernetes, bude to srozumitelné vysvětlení.

Tento průvodce byl napsán tak, aby byl nezávislý na cloudu, takže jsme úmyslně vynechali všechny zmínky o použitém cloudu. Zanechte komentář, pokud uhodnete, jaký cloud jsme použili, a řekněte nám, jaký detail to prozradil. Doporučujeme vám použít službu Kubernetes, kterou váš cloud nabízí, protože je dobře integrována s dalšími službami, které váš cloud také poskytuje.

Prostředí jako microk8s nebo minikube zde nejsou zvažována, protože vyžadují nějakou další konfiguraci, která spadá mimo rozsah tohoto průvodce. Zejména naše konfigurace HTTPS vyžaduje, aby náš cluster měl veřejnou IP adresu.


Použijme Helm

Kubernetes je složitý nástroj pro orchestraci kontejnerů. Existuje mnoho konceptů, které musíme naučit, abychom začali. Naštěstí pro nás existuje projekt jménem הגה, který poskytuje úroveň abstrakce, kterou potřebujeme. Podle jejich vlastních slov "Pokud jsme udělali věci správně, uživatelé by mohli nainstalovat Helm a během několika minut instalovat komponenty s produkční kvalitou."

Opomíjejíce důvody pro jejich jména (všechno to vypráví příběh metafory, Helmu, Kubernetesu a kontejnerům), helm opravdu zjednodušuje instalaci a zároveň umožňuje přizpůsobit komponentu našim potřebám. Budeme používat Helm 3, jejich nejnovější a ještě jednodušší verzi.

Pokud používáte cloudovou konzoli vašeho poskytovatele cloudu, je pravděpodobné, že je Helm 3 již k dispozici, ale pokud ne, můžete ho nainstalovat podle průvodce, který poskytují dokumenty Helm, helm.sh/docs/intro/install/. Musíte mít již přístup k vašemu clusteru z příkazové řádky, kterou používáte. Váš poskytovatel cloudu má také průvodce, jak to udělat.


Nainstalujte Ingress Controller

Toto je první komponenta, kterou nainstalujeme do našeho clusteru a je také prvním konceptem kubernetes, který uvidíme. Ingress controller sedí u vstupních dveří vašeho clusteru, přijímá všechny webové požadavky a přesměrovává je na interní komponentu zodpovědnou za zodpovězení požadavku. Původně nebude nikdo připraven odpovídat, ale když nainstalujeme Redmine, bude přidán jako cíl pro požadavky.

Kubernetes poskytuje בקר Ingress NGINX, který použijeme. Jejich dokumentace vysvětluje, jak ho nainstalovat pomocí Helm:

הגה ריפו להוסיף ingress-nginx https://kubernetes.github.io/ingress-nginx & עדכון ריפו על ההגה

הגה התקנת ingress-controller ingress-nginx / ingress-nginx

První příkaz přidá repozitář aplikací, kde se nachází ingress controller, zatímco druhý ho nainstaluje do vašeho clusteru. Po dokončení příkazu se vytisknou některé informace, jak začít, včetně toho, jak získat veřejnou IP adresu přiřazenou k controlleru:

שירותי קבלת kubectl - שעון

Výsledek bude podobný tomuto:

סוג שם CLUSTER-IP EXTERNAL IP PORT (S) גיל

בקר nginx LoadBalancer 10.0.115.117 89.68.23.33 80 / TCP, 443 / TCP 5m22s

אשכול קבלת בקר אשכול 10.0.135.226 443 / TCP 5m22s

kubernetes ClusterIP 10.0.0.1 443 / TCP 44 שעות

Zaznamenejte EXTERNAL-IP, protože ji budeme potřebovat v dalším kroku. Může se stát, že místo IP adresy získáte hodnotu <pending>. Trvá nějakou dobu, než cloud získá veřejnou IP adresu a přiřadí ji k vašemu clusteru. Počkejte pár sekund a IP by měla být k dispozici.


Vytvoření DNS záznamu A

Nyní, když máte IP adresu, můžete jít do prohlížeče a zjistit, jak váš cluster odpovídá. Samozřejmě, pokud ještě není nainstalována žádná aplikace, váš cluster odpoví chybou "404 Not Found". Vytvoříme DNS doménu, kterou můžeme přiřadit k této IP adrese, snadněji si ji zapamatujete než seznam čísel a teček.

Způsob vytvoření internetové domény pro váš Redmine výrazně závisí na vašem poskytovateli domén, ale ve všech případech vytvoříte DNS záznam A, který propojí název domény s vaší IP adresou. Jako referenci si můžete prohlédnout následující snímek obrazovky od poskytovatele DNS no-ip.com.

Vytváření našeho DNS záznamu A

Data, která musíte vyplnit, jsou název DNS a IP adresa. No-IP je přesně to, co potřebujeme k ilustraci vytvoření domény, ale pravděpodobně si vyberete jiného poskytovatele DNS. Proces je však v podstatě stejný u všech z nich.

Trvá nějakou dobu, než se nový záznam rozšíří, takže můžete použít příkaz ping k ověření, zda se IP adresa správně přeložila:

פינג redminek8s.ddns.net


הצעדים הבאים

Nyní, když máme kontroler přístupu a DNS doménu, zbývá už jen nakonfigurovat HTTPS pro naše stránky a nainstalovat Redmine. Jako databázi použijeme PostgreSQL, ale uvidíte, jak snadné je vše nakonfigurovat pomocí Helm.

Zůstaňte naladěni na Redmine v Kubernetes část 2: Instalace Redmine.

השדרוג האולטימטיבי של Redmine? סנאדנה.

Získejte všechny výkonné nstroje pro dokonalé plánování, řízení a controlu projectů v jednom softwaru.

הוסף את Easy Redmine ב-30 ימים

קומפלטני פונקציונליים, פרוטוקולים של SSL, תקצירים, ואזור מקומי.