Redmine i Kubernetes - Del 2: Redmine installeres i Kubernetes

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

Dette er den anden del af de serie over het implementeren af ​​Redmine i Kubernetes. I denne artikel giver vi instruktioner om, hvordan du en pålidelig installation af Redmine kan implementere.

Terugblik Deel 1

I dette øjeblik ses du langt ud til installationen af ​​Redmine på Kubernetes. Daarvoor ben je tenslotte hier, toch?

In Redmine i Kubernetes - Del 1: Forbereiden af ​​omgivelserne har vi de Ingress Controller installeret, en komponent til internetsøgning inden for en klynge til at lede, og har vi en DNS-domein, redminek8s.ddns.net, oprettet. Nu skal vi kun bruge HTTPS til at konfigurere og så er vi klar til at implementere Redmine.


HTTPS mødte cert-manager

Selvom vi Redmine som HTTP kan holde, er HTTPS standard for websteder. Find ud af, at de fleste browsere kan bruges til et sikkerhedsproblem, når HTTPS ikke bruges til et websted.

Indkobling af HTTPS er normalt ingen enkel opgave, fordi du skal købe et certifikat, og det skal uploades til dit websted. Cert-manager automatiserer dit alt, inklusive en vernieuwing af certifikater, og bevirker endda gratis certifikater. Du kan mere information finde op hun websted, men jeg vil alt udlægge, hvad du skal vide.


Installer cert-manager

Følg de næste trin til 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-manageren befinder sig, og derefter installeres den nyeste version.


Verbinden met de Certificate Authority

Nu skal vi cert-manager instruere til at oprette forbindelse med vores valgte certifikatudbyder. Vi vil LetsEncrypt bruge, en gratis certificeringsmyndighed. Opret først denne bestand (værgeet ikke om udskiftning af en ægte e-mailadresse) og benævn det 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

Du skal derefter ud af din klynge

kubectl anvende -f klyngeudsteder.yaml

Feliciteerd! Den øverste bestand er den første kubernetes-konfiguration, som vi skriver og passer på klyngen. Du har måske optaget det, som du kan se, hvordan du kan forbinde med LetsEncrypt, men det er også skrevet af Ingress Controller, som vi har lavet i Del 1 (Klassen: nginx til det ende). Denne type konfiguration har nogle regler med spaties om afhængighed af nogle egenskaber til andre at give. Hold de spatiale vist, om du sørger for, at den korrekte fil bliver gengivet og anvendt.

Nu er klyngen HTTPS aktiveret. Telkens, når vi en applikation, kan vi instruere med HTTPS til at arbejde en voilà! Hele processen for at få det automatiske certifikat bliver udført på skærmen.


Redmine installere

Det er, hvor vi alle op hebben gewacht. Vi kan Redmine på forskellige måder at installere, men vi kan bruge den mest praktiske måde. Som vi tidligere al deden, tilføjer vi først det repository toe, hvor Redmine befinder sig.

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

På denne måde kan vi direkte installere en konfigurationsfil for at give en tilpasset adfærd, vi vil vise Redmine.

Vi vil alle konfigurationer i deres egne sektioner, men alle i samme bestandspladser, én og anden. Noem heter bestandsværdier.yaml.

Alle Helm-applikationer har en values.yaml-fil med alle mulige konfigurationer, der kan fremstilles på de applikationer. Når vi gør vores egne values.yaml, definerer vi de ændringer, vi ønsker. Hver værdi, vi ikke er i vores bestand, forbliver som den er i standardfilen.

Alle standardværdier kan også findes på helm-applikationssiden, https://hub.helm.sh/charts/bitnami/redmine. Glemt alle konfigurationer.


Første administratorbruger

Redmine-brugernavn: adminBruger

Redmine-wachtord:

Dette trin er ikke nødvendigt og let at forstå. Dette er vores første bruger på Redmine, som vi skal bruge til de første gange i loggen.

Når Redmine er installeret, kan du med denne brugeradgang få konfigurationen af ​​din gloednye installation.


PostgreSQL-database

Standard kræver, at vores Helm-installation er oprettet en mariadb-database. Vi vil i stedet bruge vores installationskonfiguration til PostgreSQL. Du skal også have mindst et kodeord 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 forklare vores installationsfortælling, at vi ikke ønsker at MariaDB sammen med konfigurationen af ​​PostgreSQL-databasen bliver installeret.


DNS-navn konfiguration

Nedenstående konfiguration er den anden side af DNS-konfigurationen, som vi har udført i del 1. Som du kan se, koble vi TLS ind, protokollen efter HTTPS, og vi har værtsnavne i den, vi har brugt til at lave vores DNS-record:

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 regler har vi vores applikation med Ingress Controller og med Cluster Issuer, som vi tidligere har lavet.

Nu kan vi Redmine implementere med vores tilpassede konfiguration:

rorinstallere Redmine -f Values.yaml bitnami / redmine

Regelen er sammenlignelig med andre installationsregler, som vi tidligere har brugt, men på denne tid leverer vi en tilpassede værdier.yaml. Dette er måden på enhver Helm-applikation til passager.

Vi har intet behov for at vente, fordi vi laver en ansøgning, der skal tages. Du kan udføre kommandoen om status for din applikationscontainere for at kontrollere:

kubectl få pods - ur

Det kommando giver noget lignende tilbage som dette:

NAVN KLAR STATUS GENSTARTER 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 Løb er en alt klar er med 1/1, hvad i min periode omkring 6 minutter varighed.

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

Redmine er klar


færdiggørelse

Kubernetes er et komplekst værktøj til applikationer, der skal implementeres, men vi har adgang til kompleksiteten ved hjælp af Helm (ingen ordspilning) og en pålidelig installation af Redmine implementeret.

Du kan en sammenfatning af denne manual finde i den følgende git-repo: https://github.com/lcofre/redmine-on-k8s. Sammenlign venligst med dine filer som u fastloopt.

Vi har nogle koncepter uden for diskussionen, fordi de komplekse var af udlegning specifikt til skyen. Nedenfor kan du se Liveness og Readiness af din applikation, konfiguration af indkommende e-mails og opskæring om mere belastning til at kunne. Lad os nedenunder vide, hvor du er mest interesseret, så vi er i en fremtidig handleiding, der kan tale.

Den sidste Redmine-opgradering? Makkelijk.

Kryd alle kraftfulde værktøjer til perfekt projektplanlægning, -styring og -kontrol i én software.

Prøv Easy Redmine 30 dage gratis

Volledige funktioner, SSL-beveiligd, daglige backups, på din geografiske placering