Redmine i Kubernetes - Del 2: A Redmine telepítése

6/30/2020
8 perc
Lukáš Beňa
Detta är den andra delen av serien om att distribuera Redmine i Kubernetes. I den här artikeln kommer vi att ge instruktioner om hur man distribuerar en pålitlig installation av Redmine.

Återberättelse Del 1

Vid det här laget ser du förmodligen fram emot installen av Redmine på Kubernetes. Det är ju trots allt det du kom hit för, eller hur?

I Redmine på Kubernetes - Del 1: Förbereda miljön installerade vi Ingress Controller, en component for att omdirigera internetförfrågningar inuti ditt kluster, och vi skapade en DNS-domän, redminek8s.ddns.net. Behöver vi bara konfigurera HTTPS, och vi är redo att distribuera Redmine.


HTTPS med cert-manager

Även om vi kan behålla Redmine som HTTP har HTTPS blivit standarden for webbplatser, så mycket att de flesta webbläsare varnar dig för en säkerhetsrisk när HTTPS inte används av en webbplats.

Att aktivera HTTPS är vanligtvis inte en trivial uppgift, eftersom du behöver köpa ett certifikat och ladda upp det till din webbplats, förnya det efter en viss tid och upprepa processen. Cert-manager automatiserar allt detta, inklusive förnyelse av certifikat och till och med erhåller gratis certifikat. Du kan se mer information on deras webbplats, men jag kommer att förklara allt du behöver veta härnäst.


Installera tanúsítványkezelő

Utför följande steg för att installera cert-manager i ditt kluster:

kormányrepo add jetstack https://charts.jetstack.io && helm repo frissítés

sisak telepítése cert-manager jetstack / cert-manager - set installCRDs = true

Först lägger du till registret där cert-manager finns och sedan installerar du den senaste versionen.


Anslut till certifikatmyndigheten

Nu behöver vi instruera cert-manager att ansluta till den certifikatleverantör vi väljer. Használja a LetsEncrypt felhasználót, ingyenes tanúsítvánnyal. Skapa först denna fil (kom ihåg att ersätta med en riktig e-postadress) och döp den till cluster-issuer.yaml

apiVerzió: cert-manager.io/v1alpha2

fajta: ClusterIssuer

metaadatok:

  név: letsencrypt

specifikáció:

  csúcspont:

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

    email:

    privateKeySecretRef:

      név: letsencrypt

    megoldó:

    - http01:

        behatolását:

          osztály: nginx

Tillämpa sedan den på ditt kluster med

kubectl apply -f cluster-emiter.yaml

Grattis! Filen ovan är den första Kubernetes-konfigurationen vi skriver och tillämpar på klustret. Du kanske har märkt att den visar hur man ansluter till LetsEncrypt, men den beskriver också Ingress Controller som vi skapade i Del 1 (osztály: nginx i slutet). Den här typen av konfiguration har några rader med mellanslag för att ange beroende av vissa egenskaper till andra. Behåll dessa mellanslag som visa för att säkerställa att filen läses och tillämpas korrekt.

Nu är ditt kluster aktiverat for HTTPS. När vi installerar en applikation kan vi instruera den att fungera med HTTPS och voilà! Hela processen med att få certifikatet kommer att göras automatiskt i bakgrunden.


A Redmine telepítése

Detta är vad vi alla har väntat på. Vi kan installera Redmine på några olika sätt, men det mest bekväma sättet är att använda Helm. Precis som vi gjorde tidigare, först lägger vi till lagret där Redmine finns

sisak repo hozzá bitnami https://charts.bitnami.com/bitnami && helm repo frissítés

Men den här gången kommer vi inte att installera direkt, vi kommer att skapa en konfigurationsfil för att ange några anpassade beteenden som vi vill att Redmine ska ha.

Vi kommer att separera alla konfigurationer i egna avsnitt men du lägger dem alla i samma fil, en efter den andra. Döp fájlt a values.yaml-ig.

Alla Helm-applikationer har en values.yaml-fil med alla möjliga konfigurationer som kan göras för applikationen. När vi skapar vår egen values.yaml definierar vi de ändringar vi vill ha. Alla värden som vi inte inkluderar i vår fil kommer att vara oförändrade i standardfilen.

Alla standardvärden kan också hittas på Helm-applikationens sida, https://hub.helm.sh/charts/bitnami/redmine. Gå vidare och kolla alla konfiguration.


Första administratörsanvändaren

RedmineAnvändarnamn: adminUser

RedmineLösenord:

Detta steg är lika nödvändigt som lätt att förstå. Det är vår första användare på Redmine, den som vi kommer att använda för att logga in första gången.

När Redmine är installerat kommer du att kunna komma åt det med denna användare för att konfigurera din helt nya install.


PostgreSQL-adatbázisok

Som standard kommer vår Helm-installation att kräva att en mariadb-databas skapas. Istället kommer vi att konfigurera vår install att använda PostgreSQL. Du behöver också lägga till minst ett lösenord för att komma åt denna databas, som du kan se nedan

adatbázis típusa: postgresql

MariaDB:

  engedélyezve: hamis

PostgreSQL:

  engedélyezve: igaz

  postgresqlAdatbázis: Redmine

  postgresql Felhasználónév: Redmine

  postgresqlPassword:

Vi måste tydligt tala om för vår installation att vi inte vill att MariaDB ska installeras tillsammans med konfigurationen för PostgreSQL-adatbázis.


DNS-namnkonfiguráció

Konfigurationen nedan är den andra sidan av DNS-konfigurationen vi gjorde i Del 1. Som du kan se aktiverar vi TLS, protokollet bakom HTTPS, och ställer in värdnamnet vi använde när vi skapade vår DNS-post:

behatolását:

  engedélyezve: igaz

  certManager: igaz

  gazdagépnév: redminek8s.ddns.net

  tls: igaz

  jelöléseket:

    kubernetes.io/ingress.class: nginx

    cert-manager.io/cluster-issuer: letecrypt

Också på de två sista raderna länkar vi vår applikation med Ingress Controller és a Cluster Issuer som vi skapade tidigare.

Nu kan vi terjesztő Redmine med vår anpassade konfiguration:

helm telepítő Redmine -f értékek.yaml bitnami/redmine

Den raden liknar andra helm installera rader vi använde tidigare, men den här gången tillhandahåller vi en anpassad values.yaml. Detta är sättet att anpassa vilken Helm-applikation som helst.

Vi behöver lite mer tålamod ändå, eftersom skapandet av applikationen tar lite tid. Du kan köra det här kommandot för att kontrollera statusen för dina applikationscontainrar:

kubectl få pods --watch

Kommandot kommer att returnera något liknande detta:

NAMN KLAR ÁLLAPOT OMSTART ÅLDER

. . .

redmine-999c68dd9-x7h2k    1/1     Kör   0          6m40s

redmine-postgresql-0 1/1 Kör 0 6m40s

Du måste vänta tills statusen för båda containerrarna är Kör och alla är redo 1/1, vilket i mitt fall tog cirka 6 perc.

Nu är allt klart för att öppna webbläsaren och gå till vår nya terjesztés:

Redmine är redo


összefoglalás

Kubernetes är ett komplext verktyg för att distribuera applikationer, men vi navigerade genom den komplexiteten med hjälp av Helm (ingen ordlek avsedd) och distribuerade en pålitlig installation av Redmine.

Du kan hitta en sammanfattning av denna guide i följande git-repo: https://github.com/lcofre/redmine-on-k8s. Känn dig fri att jämföra med dina filer om du fastnar.

Vi lämnade några begrepp utanför diskussionen eftersom de var komplexa eller förklaringen var molnspecifik. Bland dem finns Liveness och Readiness for din applikation, konfiguration av inkommande e-post och skalning för att hantera mer belastning. Låt oss veta nedan vad som intresserar dig mest så kan vi diskutera det i en framtida guide.

Az ultimata Redmine-upgraderingen? Enkel.

Få alla kraftfulla verktyg för perfekt projektplanering, -hantering och -kontroll i en enda programvara.

Prova Easy Redmine 30 dagar ingyenes próbaidőszakban

Fullständiga funktioner, SSL-skyddad, dagliga säkerhetskopior, i din geografiska plats