Redmine i Kubernetes - Del 2: Installera Redmine
Återberättelse Del 1
Vid det her laget ser du sandsynligvis frem til installationen af Redmine på Kubernetes. Det er ju trots alt det du kom hit for, eller hur?
I Redmine på Kubernetes - Del 1: Förbereda miljøn installeret vi Ingress Controller, en komponent til at omdirigere internetforfrågningar i dit kluster, og vi oprettede en DNS-domæne, redminek8s.ddns.net. Du skal bare konfigurere HTTPS, og vi skal gentages ved at distribuere Redmine.
HTTPS med cert-manager
Selv om vi kan beholde Redmine som HTTP har HTTPS er blevet standarden på websteder, så meget at de fleste webbläser varnar dig for en sikkerhedsrisiko, når HTTPS bruges på en websted.
At aktivere HTTPS er en essentiel del af en trivial opgave, du behøver at købe et certifikat og lade det op på din hjemmeside, fornye det efter en vis tid og flere processer. Cert-manager automatiserer alt dette, inklusive fornyelse af certifikat og til og med gratis certifikat. Du kan se mere information på deres websted, men jeg kommer att forklare alt du behøver vide härnäst.
Installera cert-manager
Udfør følgende trin for at installere cert-manager i dit kluster:
roret repo tilføj jetstack https://charts.jetstack.io && roret repo-opdatering
helm install cert-manager jetstack / cert-manager - set installCRDs = true
Forst lægger du til registrering, hvor cert-manager findes og sedan installeres i den seneste version.
Anslut til certifikatmyndigheten
Nu behøver vi i en cert-manager at tilslutte til certifikatleverandøren, vi vælger. Vi kommer til at bruge LetsEncrypt, en gratis certifikatmyndighed. Opret først denne fil (kom huske at ersätta med en rigtig e-mailadresse) og döp den til cluster-issuer.yaml
apiVersion: cert-manager.io/v1alpha2
slags: ClusterIssuer
metadata:
navn: letsencrypt
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
e-mail:
privateKeySecretRef:
navn: letsencrypt
løsere:
- http01:
indtrængning:
klasse: nginx
Tillämpa sedan den på dit kloster med
kubectl anvende -f klyngeudsteder.yaml
Grattis! Filen ovenfor er den første Kubernetes-konfiguration vi skriver og anvender på klustret. Du har måske mærket, at den viser, hvordan man tilslutter til LetsEncrypt, men beskriver også Ingress Controller, som er oprettet i Del 1 (klassen: nginx i slutningen). Den her typen af konfiguration har nogle rader med mellemslag for at ange beroende af visse egenskaber til andre. Behold disse mellemslag som visum for at besidde filer, der læses og anvendes korrekt.
Nu er din kluster aktiveret for HTTPS. Når vi installerer en applikation kan vi instruere den at fungere med HTTPS og voilà! Hele processen med at få certifikatet kommer til at gøres automatisk i baggrunden.
Installation af Redmine
Dette er, hvad vi har ventet på. Vi kan installere Redmine på nogle forskellige måder, men det mest bekvemme måde er at bruge Helm. Præcis som vi gjorde tidligere, først lagde vi til lagret där Redmine findes
roret repo tilføj bitnami https://charts.bitnami.com/bitnami && roret repo-opdatering
Men den her gang kommer vi at installere direkte, vi kommer til at oprette en konfigurationsfil for at ange nogle tilpassede adfærd som vi vil at Redmine ska ha.
Vi kommer til at separere alle konfigurationer i egne afsnit, men du lægger dem alle i samme fil, en efter den anden. Döp filen til values.yaml.
Alle Helm-applikationer har en values.yaml-fil med alle mulige konfigurationer, som kan gøres til applikationer. Når vi skaber vores egen værdier.yaml definerer vi ændringerne vi vil have. Alle værdier som vi ikke omfatter i vores fil kommer til at være oförändrade i standardfilen.
Alle standardværdier kan også findes på Helm-applikationens side, https://hub.helm.sh/charts/bitnami/redmine. Gå videre og se alle konfigurationer.
Första administratörsanvändaren
RedmineAnvändarnavn: adminUser
RedmineLösenord:
Dette steg er ligesom nødvendigt som let at forstå. Det er vores første bruger på Redmine, som vi kommer til at bruge til at logge på den første gang.
Når Redmine er installeret, vil du kunne få adgang til denne bruger for at konfigurere den helt nye installation.
PostgreSQL-databaser
Som standard kommer vores Helm-installation at kræve at oprette en mariadb-database. Indstilling kommer til at konfigurere vores installation ved at bruge PostgreSQL. Du skal også tilføje et mindste password for at komme til denne database, som du kan se nedenfor
database type: postgresql
mariadb:
aktiveret: falsk
PostgreSQL:
aktiveret: sandt
postgresqlDatabase: Redmine
postgresqlUsnavn: Redmine
postgresqlPassword:
Vi skal tydeligt tale om vores installation, så vi ikke vil, at MariaDB skal installeres sammen med konfigureret for PostgreSQL-databasen.
DNS-navnkonfiguration
Konfigurationen nedenfor er den andre side af DNS-konfigurationen, vi gjorde i Del 1. Som du kan aktivere TLS, protokollen bag HTTPS, og indstillinger i værdinavnet vi brugte, når vi oprettede vores DNS-post:
indtrængning:
aktiveret: sandt
certManager: sandt
værtsnavn: redminek8s.ddns.net
tls: sandt
anmærkninger:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt
Också på de to sidste raderne linkar til vores applikation med Ingress Controller og med Cluster Issuer som vi har oprettet tidligere.
Nu kan vi distribuere Redmine med vores tilpassede konfiguration:
helm installere Redmine -f values.yaml bitnami/redmine
Den raden liknar andre helm installer rader vi brugt tidligere, men den her gang leveret vi en tilpassede values.yaml. Dette er en måde at tilpasse hvilken Helm-applikation som helst.
Vi har brug for lidt mere tålmod alligevel, eftersom skapandet af applikationen tager lidt tid. Du kan køre det her kommando for at kontrollere status for dine applikationer, der indeholder:
kubectl få bælg --watch
Kommandoen kommer at returnere noget lignende:
NAMN KLAR STATUS OMSTART ÅLDER
. . .
redmine-999c68dd9-x7h2k 1/1 Kör 0 6m40s
redmine-postgresql-0 1/1 Kör 0 6m40s
Du skal vente til status for begge containere er Kör og alle er redo 1/1, hvilket jeg falder til cirka 6 minutter.
Nu er alt klart for at åbne webbläsaren og gå til vores nye distribution:
Redmine er redo
Resumé
Kubernetes er et komplekst værktøj til at distribuere applikationer, men vi navigerer gennem den kompleksitet med hjælp af Helm (ingen ordlek afsedd) og distribueret en pålitelig installation af Redmine.
Du kan finde en sammenfatning af denne guide i følgende git-repo: https://github.com/lcofre/redmine-on-k8s. Känn dig fri att jämföra med dina filer om du fastnar.
Se nogle begreber uden for diskussionen, eftersom de var komplekse eller forklaringer var molnspecifikke. Blandt dem findes Liveness og Readiness for din applikation, konfiguration af kommende e-post og skalning for at håndtere mere belastning. Lad os vide, hvad vi er interesseret i, så vi kan diskutere det i en fremtidsguide.
Den ultimative Redmine-opgraderingen? Enkel.
Få alle kraftfulde værktøjer til perfekt projektplanlægning, -håndtering og -kontrol i en end-software.