Redmine i Kubernetes – Del 2: Installer Redmine

6/30/2020
8 minutter
Lukáš Beňa
Dette er den andre del af serien om at distribuere Redmine i Kubernetes. I denne artikel vil vi give instrukser om hvordan du distribuerer en installation af 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.

Prøv Easy Redmine i en 30-dagers gratis prøveperiode

Fuld funktionalitet, SSL-beskyttet, daglig sikkerhedskopiering, i din geografiske placering