Redmine i Kubernetes - Del 2: Installation af Redmine

6/30/2020
8 minutter
Lukáš Beňa

Dette er den anden del af serien om implementering af Redmine i Kubernetes. I denne artikel vil vi give instruktioner om, hvordan man implementerer en pålidelig installation af Redmine.

Genfortælling Del 1

På nuværende tidspunkt ser du nok frem til installationen af ​​Redmine på Kubernetes. Det er trods alt det, du er kommet for, ikke?

I Redmine på Kubernetes - Del 1: Forberedelse af miljøet installerede vi Ingress Controller, en komponent til omdirigering af internetanmodninger inde i dit klynge, og vi oprettede et DNS-domæne, redminek8s.ddns.net. Nu skal vi kun konfigurere HTTPS, og så er vi klar til at implementere Redmine.


HTTPS med cert-manager

Selvom vi kunne beholde vores Redmine som HTTP, er HTTPS blevet standarden for websites, så meget at de fleste browsere advarer dig om et sikkerhedsproblem, når HTTPS ikke bruges af et website.

Normalt er aktivering af HTTPS ikke en simpel opgave, da du skal købe et certifikat og uploade det til dit websted, forny det efter en vis tid og gentageproces. Cert-manager automatiserer alt dette, inklusive fornyelse af certifikater og endda opnår gratis certifikater. Du kan se mere information på deres side, men jeg vil forklare alt, hvad du behøver at vide næste gang.


Installatør 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 repository, hvor cert-manager er, og derefter installerer du den nyeste version.


Opret forbindelse til certifikatmyndigheden

Nu skal vi instruere cert-manager til at oprette forbindelse til certifikatudbyderen, som vi vælger. Vi vil bruge LetsEncrypt, en gratis certifikatmyndighed. Opret først denne fil (husk at erstatte med en rigtig e-mail-adresse) og navngiv den 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

Anvend derefter det 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 måske bemærket, at den viser, hvordan man opretter forbindelse til LetsEncrypt, men den beskriver også Ingress Controller, vi oprettede i Del 1 (class: nginx i slutningen). Denne type konfiguration har nogle linjer med mellemrum for at angive afhængighed af visse egenskaber til andre. Bevar disse mellemrum som vist for at sikre, at filer læses og anvendes korrekt.

Nu er din klynge HTTPS-aktiveret. Når vi installerer en applikation, kan vi instruere den til at fungere med HTTPS, og voilà! Hele processen med at få certifikatet bliver automatisk udført i baggrunden.


Installation af Redmine

Dette er det, vi alle har ventet på. Vi kan installere Redmine på flere forskellige måder, men den mest bekvemme er at bruge Helm Som vi allerede har gjort før, tilføjer vi først repository'et, hvor Redmine er

roret repo tilføj bitnami https://charts.bitnami.com/bitnami && roret repo-opdatering

Men denne gang opretter vi en konfigurationsfil i stedet for at installere med det samme, for at angive nogle brugerdefinerede indstillinger, vi ønsker, at Redmine skal have.

Vi vil adskille alle konfigurationer i deres egen sektion, men du skal placere dem alle i samme fil, en efter den anden. Kald filen værdier.yaml.

Alle Helm-applikationer har en values.yaml-fil med alle mulige konfigurationer, der kan foretages for applikationer. Når vi opretter vores egen values.yaml, defineres vi ændringer, vi ønsker. Enhver værdi, vi ikke omfatter i vores fil, vil forblive som den er i standardfilen.

Alle standardværdier kan også findes på Helm-applikationssiden, https://hub.helm.sh/charts/bitnami/redmine. Gå videre og tjek alle konfigurationerne.


Første admin-bruger

Redmine-brugernavn: adminBruger

Redmine-adgangskode:

Dette trin er lige så nødvendigt som nemt at forstå. Det er vores første bruger på Redmine, den bruger, vi vil bruge til at logge ind første gang.

Når Redmine er installeret, kan du få adgang til det med denne bruger til at konfigurere din helt nye installation.


PostgreSQL-database

Som standard kræver vores Helm-installation, at der oprettes og mariadb-database. Vi vil i stedet konfigurere 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 eksplicit fortælle vores installation, at vi ikke ønsker, at MariaDB skal installeres sammen med konfigurationen for PostgreSQL-databasen.


DNS-navnekonfiguration

Konfigurationen nedenfor er den anden side af DNS-konfigurationen, vi lavede i Del 1. Som du kan se, aktiverer vi TLS, protokollen bag HTTPS, og sætter 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 sidste to 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 ligner andre helm install-linjer, vi har brugt før, men denne gang leverer vi en brugerdefineret values.yaml. Dette er måden at tilpasse enhver Helm-applikation på.

Vi skal stadig have lidt tålmodighed, da oprettelsen af ​​applikationen tager lidt tid. Du kan køre denne kommando for at kontrollere status for dine applikationscontainere:

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 skal vente, indtil status for begge containere er Running, og alle er klar 1/1, hvilket i mit tilfælde tog cirka 6 minutter.

Nu er alt klar til at åbne browseren og gå til vores nye implementering:

Redmine er klar


Opsummering

Kubernetes er et komplekst værktøj til implementering af applikationer, men vi navigerer gennem den kompleksitet med hjælp fra Helm (ingen ordspil beregnet) og implementeret en pålidelig installation af Redmine.

Du kan finde en opsummering af denne vejledning i følgende git-repo: https://github.com/lcofre/redmine-on-k8s. Du er velkommen til at sammenligne med dine filer, hvis du sidder fast.

Vi udelod nogle begreber fra diskussionen, fordi de var komplekse, eller forklaringen var sky-specifikke. Blandt dem er Liveness og Readiness for din applikation, konfiguration af indgående e-mails og skalering for at håndtere mere belastning. Lad os vide nedenfor, hvad der interesserer dig mest, så vi kan diskutere det i en fremtidig vejledning.

Den ultimative Redmine-opgradering? Nemt.

Få alle kraftfulde værktøjer til perfekt projektplanlægning, -styring og -kontrol i en enkelt software.

Prøv Easy Redmine i en 30 dages gratis prøveperiode

Fuld funktionalitet, SSL-beskyttet, daglige backups, og din geolocation