Redmine i Kubernetes - Del 2: Installera Redmine

6/30/2020
8 minutter
Lukáš Beňa
Dette er den andre del af serien om at distribuere Redmine i Kubernetes. I den her artikel kommer vi at instruktionerne om hvordan man distribuerer en pålitlig installation af 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.

Prova Easy Redmine i en 30 dages gratis provperiode

Fuldstændige funktioner, SSL-beskyttelse, daglig sikkerhedskopior, og din geografiske plads