Redmine i Kubernetes – Del 2: Installerare Redmine

6/30/2020
8 minuter
Lukáš Beňa
Detta är den andra delen av serien om att distribuera Redmine i Kubernetes. I denna artikel kommer vi att ge instruktioner om hur du distribuerar anvisningar och installation av Redmine.

Genomgång Del 1

Nå må du nog se fram till installationen av Redmine på Kubernetes. Tross alt, det är det du kom hit för, inte sant?

I Redmine på Kubernetes - Del 1: Forberede miljöet, installerade med Ingress Controller, en komponent för att omdirigera internettforespörsler inne i klyngen din, och vi skapade en DNS-domene, redminek8s.ddns.net. Nå behöver vi bara konfigurera HTTPS och vi är klara för att distribuera Redmine.


HTTPS med cert-hanterare

Själv om vi kunde ha behållt Redmine som HTTP, har HTTPS blivit standarden för webbplatser, så många av de flesta nätbutiker som är säkerhetsproblem när HTTPS inte används på webbplatsen.

Vanligvis är det inte en enkel uppgift att aktivera HTTPS, då du måste köpa ett certifikat och senast det upp på webbplatsen, fornya det efter en viss tid och en återkommande process. Cert-manager automatiserar allt detta, inklusive fornyelse av certifikat, och skaffer till och med gratis certifikat. Du kan se mer information på deras webbplats, men jeg vil förklara alt du behöver å vite nästa.


Installatör cert-hanterare

Utför följande steg för att installera cert-manager i klyngen din:

rodret repo lägg till jetstack https://charts.jetstack.io && helm repo-uppdatering

helm install cert-manager jetstack / cert-manager - set installCRDs = true

Först lägger du till depotet av cert-manager, och sedan installerar du den senaste versionen.


Koble till certifikatmyndigheten

Nå måste vi instruera cert-manager om att koppla till certifikatleverantören vi väljer. Vi vill använda LetsEncrypt, en gratis sertifikatmyndighet. Upprett denne filen först (husk å ersätta med en äkta e-postadress) och namnet cluster-issuer.yaml

Apiversion: cert-manager.io/v1alpha2

typ: ClusterIssuer

Metadata:

  namn: letsencrypt

spec:

  höjdpunkt:

    server: https://acme-v02.api.letsencrypt.org/directory

    e-post:

    PrivateKeysCretref:

      namn: letsencrypt

    lösare:

    - http01:

        inträde:

          klass: nginx

Deretter använder du följande kommando för att använda den till klyngen:

kubectl applicera -f cluster-emittent.yaml

Gratulerare! Filen ovan är den första Kubernetes-konfigurationen vi skriver och använder på klyngen. Du har kanske lagt till att visa hur du kopplar till LetsEncrypt, men den beskriver också Ingress Controlleren som skapas i Del 1 (Klassen: nginx på slutet) Denna typ av konfiguration har några linjer med mellanrum för att vara beroende av några egenskaper till andre. Se dessa mellanrommene som vistas för att säkra att filen blir lest och använd riktig.

Nå är HTTPS-aktiverad. När vi installerar en applikation kan vi instruera den för att fungera med HTTPS och voilà! Hele processen med att få sertifikatet kommer att bli utförd automatiskt i bakgrunden.


Installatör Redmine

Detta är det vi alla har ventat på. Vi kan installera Redmine på flera olika sätt, men den mest praktiska är att använda Helm. Som vi redan har gjort tidigare, lägger vi först til depotet der Redmine er

helm repo lägg till bitnami https://charts.bitnami.com/bitnami && helm repo-uppdatering

Men denna gång, i stället för att installera med en grupp, vill vi skapa en konfigurationsfil för att ange några anpassade inställningar vi vill ha på Redmine.

Vi vill separera alla konfigurationer i sin egen sektion, men du lägger dem alla i samma fil, en efter den andre. Kalla filen values.yaml.

Alla Helm-applikationer har en values.yaml-fil med alla möjliga konfigurationer som kan göras för applikationer. När vi skapar vår egen values.yaml, definierar vi ändringar vi önskar. Alla värden vi inte inkluderar i vår fil, vill forbli som de är i standardfilen.

Alla standardvärden kan också finnas på Helm-applikationssidan, https://hub.helm.sh/charts/bitnami/redmine. Gå vidare och kontrollera alla konfigurationer.


Första admin-brukaren

RedmineBrukernamn: adminUser

RedminePassord:

Detta steg är som nödvändigt som enkelt att förstå. Detta är vår första användare på Redmine, den vi vill använda för att logga in i första gänget.

När Redmine installeras kan du få tillgång till den här användaren för att konfigurera din splitter nya installation.


PostgreSQL-databas

Som standard kräver vår Helm-installation att skapa en mariadb-databas. Vi vill i stället konfigurera installationen för att PostgreSQL. Du måste också lägga till minst ett lösenord för att få tillgång till denna databas, som du kan se nedan

DatabaseType: PostgreSQL

Mariadb:

  aktiverad: falsk

PostgreSQL:

  aktiverad: sant

  postgresqlDatabas: Redmine

  postgresql Användarnamn: Redmine

  postgresqlPassword:

Vi måste förklara installationen vår och vi vill inte att MariaDB ska installeras tillsammans med konfigurationen för PostgreSQL-databasen.


Konfiguration av DNS-namn

Konfigurationen nedanför är den andra sidan av DNS-konfigurationen vi gjorde i Del 1. Som du kan sjå, aktiverar vi TLS, protokollen bak HTTPS, och set värdnamn som vi använde då vi laga DNS-posten vår:

inträde:

  aktiverad: sant

  certManager: sant

  värdnamn: redminek8s.ddns.net

  tls: sant

  annoteringar:

    kubernetes.io/ingress.class: nginx

    Cert-manager.io/cluster-issuer: LETSENCRYPT

Också i dei siste to linene lenkar vi applikationen vår med Ingress Controller och Cluster Issuer som vi laga innan.

Ingen kan vi distribuera Redmine med vår egen konfiguration:

helm installera Redmine -f Values.yaml bitnami / redmine

Denna linja är som andra helm install-linjer vi använde innan, men denna gongen gir vi ein eiga values.yaml. Detta är sättet att anpassa kva som helst Helm-applikation.

Vi treng framleis lite mer tålmod, sidan det tar lite tid å lage applikationen. Du kan köra denna kommandon för att kontrollera statusen för applikationscontainerane dine:

kubectl få skidor - klocka

Kommandoen vill returnere något liknande detta:

NAMN KLAR STATUS ÅTERSTART Åldern

. . .

redmine-999c68dd9-x7h2k    1/1     Running   0          6m40s

redmine-postgresql-0 1/1 Running 0 6m40s

Du måste vänta till statusen för båda behållare är löpande och alla är klara 1/1, nog som i mitt fall ungefär 6 minuter.

Inget är klart för att öppna nätlesaren och gå till vår nya installation:

Redmine är klar


sammanfattning

Kubernetes är ett komplext verktyg för att distribuera applikationer, men vi navigerar genom komplexiteten med hjälp av Helm (ingen ordspel meint) och distribuerar en enkel installation av Redmine.

Du kan hitta en uppsummering av denna how-to-en i følgjande git-repo: https://github.com/lcofre/redmine-on-k8s. Du kan gjerne samanlikne med filene dine om du står fast.

Vi har utelat något koncept från diskusjonen eftersom de var komplexa eller förklaringar var sky-specifika. Blant de är Liveness och Readiness för applikationen din, konfiguration av inkomande e-postar och skalering för att handtera mer belastning. Gi oss besked om vilka som är intresserade av dig mest nedanför, så vi kan diskutera det i en framtidig how-to.

Den ultimata Redmine-oppgraderingen? Enkel.

Få alla kraftiga verktyg för perfekt projektplanering, -styrning och -kontroll i en programvara.

Prova Easy Redmine i en 30-dagers gratis provperiod

Fullständig funktionalitet, SSL-skydd, daglig säkerhetskopiering, och din geografiska plats