Redmine i Kubernetes - Del 2: Installation af Redmine
Dette er anden del af serien om implementering af Redmine i Kubernetes. I denne artikel vil vi give instruktioner om, hvordan du implementerer en pålidelig installation af Redmine.
Genfortælling af del 1
I øjeblikket skal du se frem til installationen af Redmine på Kubernetes. Det er trods alt det, du kom efter, ikke?
In Redmine i Kubernetes - Del 1: Forberedelse af miljø, vi installerede Ingress Controller, en komponent til at omdirigere internetanmodninger inde i din klynge, og vi oprettede et DNS-domæne, redminek8s.ddns.net. Nu mangler vi kun at konfigurere HTTPS, og vi er klar til at implementere Redmine.
HTTPS med cert-manager
Selvom vi kunne beholde vores Redmine som HTTP, er HTTPS blevet standarden for websteder, så meget, at de fleste browsere advarer dig om et sikkerhedsproblem, når HTTPS ikke bruges af et websted.
Typisk er det ikke en triviel opgave at aktivere HTTPS, da du skal købe et certifikat og uploade det til dit websted, forny det efter en vis tid og gentage processen. Cert-manager automatiserer alt dette, inklusive fornyelse af certifikater, og opnår endda gratis certifikater. Du kan se mere information vedr Deres websted, men jeg forklarer alt hvad du behøver at vide næste.
Installer cert-manager
Udfør følgende trin for at installere cert-manager i din klynge:
roret repo tilføj jetstack https://charts.jetstack.io && roret repo-opdatering
helm install cert-manager jetstack / cert-manager - set installCRDs = true
Først tilføjer du depotet, hvor cert-manager er, og derefter installerer du dens seneste version.
Opret forbindelse til Certificate Authority
Nu skal vi instruere cert-manager om at oprette forbindelse til den certifikatudbyder, vi vælger. Vi bruger LetsEncrypt, en gratis certifikatmyndighed. Opret først denne fil (husk at udskifte den med en rigtig e-mail-adresse) og navngiv det cluster-udsteder.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
Anvend det derefter på din klynge med
kubectl anvende -f klyngeudsteder.yaml
Tillykke! Filen ovenfor er den første kubernetes-konfiguration, vi skriver og anvender på klyngen. Du har muligvis bemærket, at det viser, hvordan man opretter forbindelse til LetsEncrypt, men det beskriver også Ingress Controller, vi oprettede i del 1 (Klassen: nginx i slutningen) Denne type konfiguration har nogle linjer med mellemrum for at indikere afhængighed af nogle egenskaber til andre. Hold de mellemrum som vist for at sikre, at filen læses og anvendes korrekt.
Nu er din klynge HTTPS aktiveret. Hver gang vi installerer et program, kan vi instruere det til at arbejde med HTTPS og voilà! Hele processen med at få certifikatet udføres automatisk bag kulisserne.
Installation af Redmine
Dette var, hvad vi alle ventede på. Vi kan installere Redmine på et par forskellige måder, men langt den mest bekvemme er at bruge Helm. Som vi allerede gjorde før, tilføjede vi først depotet, hvor Redmine er
roret repo tilføj bitnami https://charts.bitnami.com/bitnami && roret repo-opdatering
Men denne gang i stedet for at installere med det samme, opretter vi en konfigurationsfil for at indikere noget tilpasset opførsel, vi ønsker, at Redmine skal have.
Vi vil adskille alle konfigurationer på deres eget afsnit, men du lægger dem alle i den samme fil, den ene efter den anden. Ring til filværdierne. Yaml.
Alle Helm-applikationer har en Values.yaml-fil med alle mulige konfigurationer, der kan foretages til applikationen. Når vi skaber vores egne værdier. Yaml definerer vi de ændringer, vi ønsker. Enhver værdi, som vi ikke inkluderer i vores fil, bliver liggende, som den er i standardfilen.
Alle standardværdier kan også findes på roret-applikationssiden, https://hub.helm.sh/charts/bitnami/redmine. Gå videre og kontroller alle konfigurationer.
Første administrator-bruger
RedmineUsnavn: adminUser
RedminePassword:
Dette trin er lige så nødvendigt som let at forstå. Det er vores første bruger på Redmine, den, vi vil bruge til at logge ind for første gang.
Når Redmine er installeret, vil du kunne få adgang til det med denne bruger til at konfigurere din splinterny installation.
PostgreSQL-database
Som standard kræver vores Helm-installation, at der oprettes en mariadb-database. Vi konfigurerer i stedet vores installation til at bruge PostgreSQL. Du skal også tilføje mindst en adgangskode 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 skal udtrykkeligt fortælle vores installation, at vi ikke ønsker, at MariaDB skal installeres sammen med konfigurationen til PostgreSQL-databasen.
DNS-navnekonfiguration
Konfigurationen nedenfor er den anden side af den DNS-konfiguration, vi gjorde i del 1. Som du kan se, aktiverer vi TLS, protokollen bag HTTPS, og indstiller værtsnavnet, vi brugte, da 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
Også i de to sidste linjer forbinder vi vores applikation med Ingress Controller og med Cluster Issuer, vi oprettede før.
Nu kan vi implementere Redmine med vores brugerdefinerede konfiguration:
rorinstallere Redmine -f Values.yaml bitnami / redmine
Denne linje svarer til andre rorinstallationslinjer, vi brugte før, men denne gang leverer vi en brugerdefineret værdi. Yaml. Dette er måden at tilpasse ethvert Helm-program.
Vi har stadig brug for mere tålmodighed, da oprettelsen af applikationen tager nogen tid. Du kan udføre denne kommando for at kontrollere status for dine applikationsbeholdere:
kubectl få pods - ur
Kommandoen returnerer noget, der ligner dette:
NAVN KLAR STATUS OMSTARTER ALDER
. . .
redmine-999c68dd9-x7h2k 1/1 Running 0 6m40s
redmine-postgresql-0 1/1 Løb 0 6m40s
Du skal vente til status for begge containere kører og alle er klar 1/1, hvilket i mit tilfælde tog ca. 6 minutter.
Nu er alt klar til at åbne browseren og gå til vores nye implementering:
Redmine er klar
Indpakning op
Kubernetes er et komplekst værktøj til at implementere applikationer, men vi navigerede gennem den kompleksitet ved hjælp af Helm (ingen ordspil beregnet) og implementerede en pålidelig installation af Redmine.
Du kan finde et resumé af denne vejledning i følgende git repo: https://github.com/lcofre/redmine-on-k8s. Sammenlign med dine filer, hvis du sidder fast.
Vi efterlod nogle begreber ude af diskussionen, fordi de var komplekse eller forklaringen var cloud-specifik. Blandt dem er din applikations livskraft og parathed, indgående mails -konfiguration og skalering for at klare mere belastning. Lad os vide nedenfor, hvad der interesserer dig mest, så vi kan diskutere det i fremtiden.
Den ultimative Redmine -opgradering? Let.
Få alle kraftfulde værktøjer til perfekt projektplanlægning, styring og kontrol i en software.