Redmine v Kubernetes - část 2: Instalace Redmine
Toto je druhá část série o nasazení Redmine do Kubernetes. V tomto článku poskytneme pokyny, jak nasadit spolehlivou instalaci Redmine.
Počítání části 1
Už se jistě těšíte na instalaci Redmine na Kubernetes. Přece jenom, kvůli tomu jste přišli, že ano?
V Redmine na Kubernetes - část 1: Příprava prostředí jsme nainstalovali Ingress Controller, komponentu pro přesměrování internetových požadavků uvnitř vašeho clusteru, a vytvořili jsme DNS doménu redminek8s.ddns.net. Nyní už jen potřebujeme nakonfigurovat HTTPS a jsme připraveni nasadit Redmine.
HTTPS s certifikačním správcem
I když bychom mohli ponechat náš Redmine jako HTTP, HTTPS se stal standardem pro webové stránky, takže většina prohlížečů vás varuje o bezpečnostních problémech, pokud HTTPS není používáno.
Zapnutí HTTPS obvykle není triviální úkol, protože koupit certifikát a nahrát ho na svůj web, obnovit ho po určité době a opakovat celý proces. Cert-manager automatizuje vše toto, včetně obnovy certifikátů a dokonce získává certifikáty zdarma. Více informací naleznete na jejich stránky, ale vše, co potřebujete vědět níže, vám vysvětlím.
Instalace cert-manageru
Pro instalaci cert-manageru ve vašem clusteru proveďte následující kroky:
kormidlo repo přidat jetstack https://charts.jetstack.io && Helm repo update
helm install cert-manager jetstack / cert-manager --set installCRDs = true
Nejprve přidejte repozitář, kde se nachází cert-manager, a poté nainstalujete jeho nejnovější verzi.
Připojení k certifikační autoritě
Nyní musíme instruovat cert-manager, aby se připojil k certifikačnímu poskytovateli, kterého si vybereme. Používáme LetsEncrypt, bezplatnou certifikační autoritu. Nejprve tento soubor (nezapomeňte nahradit vlastní e-mailovou adresou) a pojmenujte ho cluster-issuer.yaml
apiVersion: cert-manager.io/v1alpha2
druh: ClusterIssuer
metadata:
jméno: letsencrypt
spec:
vrchol:
server: https://acme-v02.api.letsencrypt.org/directory
e-mailem:
privateKeySecretRef:
jméno: letsencrypt
řešitelé:
- http01:
vstup:
třída: nginx
Poté ho aplikujte na svůj cluster pomocí
kubectl apply -f cluster-emiter.yaml
Blahopřejeme! Soubor výše je první konfigurace Kubernetes, kterou píšeme a používáme na cluster. Možná jste se připojit, že ukazuje, jak k LetsEncrypt, ale také popisuje Ingress Controller, který jsme vytvořili v části 1 (Třída: nginx na konci) Tento typ konfigurace má některé řádky s mezerami, aby se naznačila závislost některých vlastností na jiných . Tyto mezery ponechte tak, jak jsou, abyste zajistili, že soubor bude správně přečten a aplikován.
Nyní je váš cluster povolen pro HTTPS. Kdykoli nainstalujeme aplikaci, můžeme ji instruovat, aby pracovala s HTTPS a voilà! Celý proces získání certifikátu bude automaticky proveden pozadu.
Instalace Redmine
To jsme všichni čekali. Redmine můžeme nainstalovat několika způsoby, ale nejpohodlnější způsob je použít Helm. Nejprve přidáme repozitář, kde se Redmine nachází, stejně jako jsme již dělali dříve.
kormidlo repo přidat bitnami https://charts.bitnami.com/bitnami && Helm repo update
A tentokrát místo instalace ihned vytvoříme konfigurační soubor, abychom určili některé vlastní chování, které chceme, aby Redmine měl.
Všechny konfigurace rozdělíme do vlastní sekce, ale všechny je uložíme do stejného souboru, jeden po druhém. Soubor pojmenujeme values.yaml.
Všechny aplikace Helm mají soubor values.yaml se všemi možnými konfiguracemi, které lze provést na aplikaci. Když vytvoříme vlastní values.yaml, definujeme změny, které chceme. Jakákoliv hodnota, kterou nezahrneme do našeho souboru, zůstane tak, jak je v souboru s výchozími hodnotami.
Všechny výchozí hodnoty lze také najít na stránce aplikace Helm, https://hub.helm.sh/charts/bitnami/redmine. Jděte a všechny konfigurace.
První uživatel Admin
RedmineUživatelské jméno: adminUser
RedmineHeslo:
Tento krok je stejně nutný jako snadno pochopitelný. Je to náš první uživatel v Redmine, ten, kterého použijeme k přihlášení poprvé.
Po instalaci Redmine budete moci s tímto uživatelem přistupovat k nové instalaci a konfigurovat ji.
Databáze PostgreSQL
Výchozí instalace pomocí Helm vyžaduje vytvoření databáze mariadb. Místo toho však nakonfigurujeme naši instalaci tak, abychom používali PostgreSQL. Musíte také přidat alespoň heslo k této databázi, jak můžete vidět níže.
typ databáze: postgresql
mariadb:
povoleno: false
postgresql:
povoleno: true
PostgresqlDatabase: Redmine
postgresqlUživatelské jméno: Redmine
postgresqlHeslo:
Musíme explicitně říci naši instalaci, že nechceme, aby byla spolu s konfigurací pro databázi PostgreSQL instalována také MariaDB.
Konfigurace DNS jmen
Následující konfigurace je druhou stranou DNS konfigurace, kterou jsme provedli v části 1. Jak můžete vidět, povolujeme TLS, protokol za HTTPS, a nastavujeme název hostitele, který jsme použili při vytváření našeho DNS záznamu:
vstup:
povoleno: true
certManager: pravda
název hostitele: redminek8s.ddns.net
tls: pravda
anotace:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt
Také v posledních dvou řádcích propojíme naši aplikaci s Ingress Controllerem as Cluster Issuerem, který jsme vytvořili dříve.
Nyní můžeme nasadit Redmine s naší vlastní konfigurací:
helm install Redmine -f hodnoty.yaml bitnami / redmine
Tento řádek je podobný jiným řádům helm install, které jsme dříve dříve, ale tentokrát poskytujeme vlastní values.yaml. To je způsob, jak přizpůsobit aplikaci Helm.
Stále potřebujeme trochu trpělivosti, protože vytvoření aplikace trvá nějakou dobu. Můžete spustit tento příkaz, abyste zkontrolovali stav kontejnerů vaší aplikace:
kubectl get lusky - hodinky
Příkaz vrátí něco podobného tomuto:
STAV JMÉNA PŘIPRAVENO VĚC RESTARTUJE
. . .
redmine-999c68dd9-x7h2k 1/1 Running 0 6m40s
redmine-postgresql-0 1/1 Běh 0 6m40s
Musíte počkat, dokud stav obou kontejnerů nebude Running a všechny budou připraveny 1/1, což mi v mém případě trvalo asi 6 minut.
Nyní je vše připraveno na otevření prohlížečů a přechod na naši novou instalaci:
Redmine je připraven
Závěr
Kubernetes je složitý nástroj pro nasazení aplikací, ale s pomocí Helmu (bez nadsázky) jsme se v této složitosti zorientovali a nasadili společně instalaci Redmine.
Shrnutí tohoto návodu naleznete v následujícím git repozitáři: https://github.com/lcofre/redmine-on-k8s. Pokud se zaseknete, neváhejte porovnat s vašimi soubory.
Některé koncepty jsme z diskuse vynechali, protože byly složité nebo vysvětlení bylo specifické pro cloud. Mezi nimi jsou Liveness a Readiness vaší aplikace, konfigurace příchozích e-mailů a škálování pro ovládání většího zatížení. Prosím, dejte nám vědět, co vás nejvíce zajímá, abychom to mohli diskutovat v budoucím návodu.
Nejlepší upgrade Redmine? Snadné.
Získejte všechny mocné nástroje pro dokonalé plánování, řízení a kontrolu projektů v jednom softwaru.