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

6/22/2020
6 minut
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 nejprve nejprve 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žaduje 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é se musíme naučit, abychom začali. Naštěstí pro nás existuje projekt jménem Kormidlo, který poskytuje úroveň abstrakce, kterou potřebujeme. Podle vlastních slov "Pokud jsme udělali věci správně, uživatelé by mohli nainstalovat Helm a během několika minut nainstalovat 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 úpravu 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 stažení, že je Helm 3 již k dispozici, ale pokud není, můžete jej nainstalovat podle průvodce, který poskytuje 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 odpovídat, ale když nainstalujeme Redmine, bude přidán jako cíl pro požadavky.

Kubernetes poskytuje Řadič vstupu NGINX, který použijeme. Jejich dokumentace, jak jej nainstalovat pomocí Hel:

kormidlo repo přidat ingress-nginx https://kubernetes.github.io/ingress-nginx && Helm repo update

helm install ingress-controller ingress-nginx / ingress-nginx

První příkaz přidá repozitář aplikací, kde se nachází ingress controller, zatímco druhý ho nainstalujete 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 ovladači:

kubectl získat služby - hodinky

Výsledek bude podobný tomuto:

TYP JMÉNA CLUSTER-IP VĚK EXTERNÍ IP IP VĚK

nginx-controller LoadBalancer 10.0.115.117 89.68.23.33 80 / TCP, 443 / TCP 5m22s

Controller-Admission ClusterIP 10.0.135.226 443 / TCP 5m22s

kubernetes ClusterIP 10.0.0.1 443 / TCP 44h

Zaznamenejte EXTERNAL-IP, protože ji budeme potřebovat v dalším kroku. Může se stát, že místo adresy IP získáte hodnotu . Trvá nějakou dobu, než cloud získáte 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í záznamu DNS 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 zapamatujete než seznam čísel a teček.

Způsob vytvoření internetových domén pro váš Redmine výrazně závisí na vašich poskytovatelích domén, ale ve všech případech vytvoříte DNS záznam A, který propojí hlavní domény s vaší IP adresou. Jako reference 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 adresa IP správně přeložila:

ping redminek8s.ddns.net


Další kroky

Nyní, když máme kontroler přístupu a DNS domény, 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.

Ultimátní upgrade Redmine? Snadné.

Získejte všechny výkonné nástroje pro dokonalé plánování, řízení a kontrolu projektů v jednom softwaru.

Vyzkoušejte Easy Redmine na 30 dní zdarma

Kompletní funkce, chráněný protokol SSL, denní zálohování, ve vaší lokalitě.