Redmine i Kubernetes – Del 2: Installer Redmine
Gennemgang Del 1
Nå må du nok se frem til installationen af Redmine på Kubernetes. Tross alt, det er det du kom hit for, ikke sant?
I Redmine på Kubernetes - Del 1: Forberede miljøet, installerer vi Ingress Controller, en komponent til at omdirigere internettforespørsler inde i klyngen din, og vi oprettet et DNS-domene, redminek8s.ddns.net. Nå behøver vi bare at konfigurere HTTPS, og vi er klare til at distribuere Redmine.
HTTPS med cert-manager
Selv om vi kunne have beholdt Redmine som HTTP, har HTTPS blevet standarden for websteder, så mye at de fleste nettlesere advarer dig om et sikkerhedsproblem, når HTTPS ikke bliver brugt af et websted.
Vanligvis er det ikke en enkelt opgave at aktivere HTTPS, da du må købe et certifikat og sidste det op på webstedet, fornye det efter en vis tid og en gennemgang af processen. Cert-manager automatiserer alt dette, inkl. certifikater og skaffer til og med gratis certifikater. Du kan se mere information på deres websted, men jeg vil forklare alt du trenger å vite neste.
Installatør cert-manager
Udfør følgende trin for at installere cert-manager i klyngen din:
roret repo tilføj jetstack https://charts.jetstack.io && roret repo-opdatering
helm install cert-manager jetstack / cert-manager - set installCRDs = true
Først lægger du til depotet der cert-manager er, og derefter installerer du den nyeste version.
Koble til certifikatmyndigheten
Nå må vi instruere cert-manager om at koble til sertifikatleverandøren vi vælger. Vi vil bruge LetsEncrypt, en gratis sertifikatmyndighet. Oprett denne fil først (husk å erstatte med en ægte e-postadresse) og giver navnet 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
Deretter bruger du følgende kommando til at bruge den til klyngen:
kubectl anvende -f klyngeudsteder.yaml
Gratulerer! Filen ovenfor er den første Kubernetes-konfiguration vi skriver og bruger på klyngen. Du har måske lagt mærke til at den viser, hvordan du kobler til LetsEncrypt, men den beskriver også Ingress Controlleren, der er oprettet i Del 1 (Klassen: nginx i slutningen) Denne type konfiguration har nogen linjer med mellemrom for at indikere afhængighed af nogen egenskaber til andre. Se disse mellemrommene som vist for at sikre at filen bliver lest og brugt rigtig.
Nu er der tale om HTTPS-aktiveret. Når vi installerer en applikation, kan vi instruere den til at fungere med HTTPS og voilà! Hele processen med at få sertifikatet vil blive udført automatisk på baggrunden.
Installatør Redmine
Dette er det vi alle har ventet på. Vi kan installere Redmine på flere forskellige måder, men den mest praktiske er at bruge Helm. Som vi allerede har gjort tidligere, lægger vi først til depotet der Redmine er
roret repo tilføj bitnami https://charts.bitnami.com/bitnami && roret repo-opdatering
Men denne gang, i stedet for at installere med en gang, vil vi oprette en konfigurationsfil for at angi nogen tilpassede indstillinger, vi ønsker at Redmine skal have.
Vi vil separere alle konfigurationer i sin egen sektion, men du legger dem alle i samme fil, en efter den andre. Kald filen values.yaml.
Alle Helm-applikationer har en values.yaml-fil med alle mulige konfigurationer, som kan gøres til applikationer. Når vi opretter vores egen values.yaml, definerer vi ændringer i ønsker. Alle værdier vi ikke omfatter i filen vores, vil forbli som de er i standardfilen.
Alle standardverdier kan også findes på Helm-applikationssiden, https://hub.helm.sh/charts/bitnami/redmine. Gå videre og tjek alle konfigurationer.
Første admin-bruger
RedmineBrukernavn: adminBruger
RedminePassord:
Dette trin er ligesom nødvendigt som enkelt at forstå. Dette er vores første bruger på Redmine, da vi vil bruge til at logge ind i første gang.
Når Redmine er installeret, kan du få adgang til det med denne bruger til at konfigurere din splitter nye installation.
PostgreSQL-database
Som standard vil vores Helm-installation kræves på en mariadb-databaseoprettelse. Vi vil i stedet konfigurere installationen til at PostgreSQL. Du må også legge til mindst et password for at få adgang til denne database, som du kan se nedenfor
database type: postgresql
mariadb:
aktiveret: falsk
PostgreSQL:
aktiveret: sandt
postgresqlDatabase: Redmine
postgresqlUsnavn: Redmine
postgresqlPassword:
Vi må eksplisitt fortælle installationen vores at vi ikke ønsker at MariaDB skal installeres sammen med konfigurationen for PostgreSQL-databasen.
Konfiguration af DNS-navn
Konfigurationen nedenfor er den anden side af DNS-konfigurationen vi gjorde i Del 1. Som du kan aktivere, aktiverer vi TLS, protokollen bag HTTPS, og sæt værtsnavnet som vi brugte, da vi lavede DNS-posten vores:
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
Også i dei siste to linjene lenkar vi applikationen vores med Ingress Controller og Cluster Issuer som vi laga før.
Vi kan ikke implementere Redmine med vores egen konfiguration:
rorinstallere Redmine -f Values.yaml bitnami / redmine
Denne linja er som andre helm install-linjer vi brugte før, men denne gongen gir vi ein eiga values.yaml. Dette er måden at tilpasse kva som helst Helm-applikation.
Vi treng framleis lidt mere tålmod, siden det er lidt tid til lage applikationen. Du kan køyre denne kommando for at tjekke status til applikationscontainerane dine:
kubectl få pods - ur
Kommandoen vil returnere noget lignende dette:
NAVN KLAR STATUS OMSTARTER ALDER
. . .
redmine-999c68dd9-x7h2k 1/1 Running 0 6m40s
redmine-postgresql-0 1/1 Løb 0 6m40s
Du må vente til status for begge containerane er Running og alle er klare 1/1, noko som i mit tilfælde tog omtrent 6 minutter.
No er alt klart for at åbne nettlesaren og gå til vores nye installation:
Redmine er klar
resumé
Kubernetes er et komplekst værktøj til at implementere applikationer, men vi navigerer gennem kompleksiteten med hjælp af Helm (ingen ordspil meint) og implementerer en enkelt installation af Redmine.
Du kan finde en opsummering af denne how-to-en i følgjande git-repo: https://github.com/lcofre/redmine-on-k8s. Du kan gjerne sammenlikne med filene dine om du står fast.
Vi har et godt koncept fra diskusjonen, fordi de var komplekse eller forklaringer, der var himmelspecifikke. Blant de er Liveness og Readiness til applikationen din, konfiguration af indkomande e-poster og skalering for at håndtere mere belastning. Gi os besked om, hvad der interesserer dig mest nedenfor, sådan at vi kan diskutere det i en fremtidig how-to.
Den ultimative Redmine-opgraderingen? Enkel.
Få alt kraftigt værktøj til perfekt projektplanlægning, -styring og -kontrol i én software.