Redmine i Kubernetes - Del 2: Installation av Redmine

6/30/2020
8 minuter
Lukáš Beňa

Detta är den andra delen av serien om implementering av Redmine i Kubernetes. I denna artikel vill vi ge instruktioner om hur man implementerar och pålitlig installation av Redmine.

Genfortælling Del 1

På nuvarande tidpunkt ser du nog fram till installationen av Redmine på Kubernetes. Det är trots alt det, du er kommet för, inte?

I Redmine på Kubernetes - Del 1: Forberedelse af miljöet installera med Ingress Controller, en komponent för att omdirigera av internetanvändningar inde i detta klynge, och vi skapade och DNS-domäne, redminek8s.ddns.net. Nu ska vi bara konfigurera HTTPS och så är vi klara för att implementera Redmine.


HTTPS med cert-hanterare

Även om vi kan se vår Redmine som HTTP, är HTTPS standarden för webbplatser, så mycket på de flesta webbläsare som kan vara säkerhetsproblem, när HTTPS inte används på webbplatsen.

Normalt är aktivering av HTTPS inte en enkel uppgift, då du ska köpa ett certifikat och ladda upp det till denna webbplats, forny det efter en vis tid och gentageprocess. Cert-manager automatiserar allt detta, inklusive fornyelse av certifikat och exklusiva certifikat. Du kan se mer information på deras sida, men jeg vil förklara alt, vad du behöver vid nästa gäng.


Installatör cert-hanterare

Utför följande trin för att installera cert-manager i din klynge:

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

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

Lägg först till arkivet, där cert-manager är, och sedan installerar du den senaste versionen.


Opret forbindelse till certifikatmyndigheten

Nu ska vi instruera cert-manager för att ansluta till certifikatutfärdare, som vi väljer. Vi vill använda LetsEncrypt, en gratis certifikatmyndighet. Opret först denne fil (husk at erstatte med en riktig e-postadress) och namngiven 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

Anvend derefter det på din klynge med

kubectl applicera -f cluster-emittent.yaml

Tilllykke! Filen ovan är den första Kubernetes-konfigurationen, vi skriver och använder på klyngen. Du har kanske noterat, och visar hur man använder kopplingen till LetsEncrypt, men den beskriver också Ingress Controller, som skapas i Del 1 (klass: nginx i slutningen). Denna typ av konfiguration har några linjer med mellanrum för att angive afhængighed af visse egenskaber til andre. Bevar dessa mellanrum som vistas för att säkra, att filer läsas och används korrekt.

Nu är din HTTPS-aktivering. När vi installerar och applikationer kan vi instruera den till att fungera med HTTPS, och voilà! Hele processen med att få certifikatet blir automatiskt utförd i bakgrunden.


Installation av Redmine

Detta är det, vi alla har ventet på. Vi kan installera Redmine på flera olika sätt, men den mest bekväma är att använda Helm Som vi redan har gjort för, tillägg vi först repository'et, hvor Redmine är

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

Men denna gång opretter vi en konfigurationsfil i stället för att installera med det samma, för att ange några användardefinierade inställningar, vi önskar, att Redmine ska ha.

Vi vill adskille alle konfigurationer i deras egen sektion, men du ska placera dem i samma fil, en efter den anden. Kald filen värden.yaml.

Alla Helm-applikationer har en values.yaml-fil med alla möjliga konfigurationer som kan utföras för applikationer. När vi använder våra egna values.yaml, definierar vi ändringar, vi önskar. Enhver värde, vi inkluderar inte i våra filer, vi vill förbli som de är i standardfiler.

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


Första admin-bruker

Redmine-användarnamn: adminUser

Redmine-adgangskod:

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

När Redmine är installerad kan du få åtkomst till den här användaren för att konfigurera din helt nya installation.


PostgreSQL-databas

Som standard kräver vår Helm-installation, att skapa en mariadb-databas. Vi vill i stället konfigurera vår installation för att använda PostgreSQL. Du ska också lägga till minst en åtkomstkod för att få åtkomst till denna databas, som du kan se nedan

DatabaseType: PostgreSQL

Mariadb:

  aktiverad: falsk

PostgreSQL:

  aktiverad: sant

  postgresqlDatabas: Redmine

  postgresql Användarnamn: Redmine

  postgresqlPassword:

Vi ska explicit berätta vår installation, och vi vill inte, på MariaDB ska installeras tillsammans med konfigurationen för PostgreSQL-databasen.


DNS-namnkonfiguration

Konfigurationen nedan är den andra sidan av DNS-konfigurationen, vi lavede i Del 1. Som du kan se, aktiverar vi TLS, protokollen på HTTPS, och sättare værtsnamnet, vi använde, då vi skapade vår DNS-post:

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

Även i de sista till linjer kopplar vi vår applikation med Ingress Controller och med Cluster Issuer, vi har skapats innan.

Nu kan vi implementera Redmine med vår användardefinierade konfiguration:

helm installera Redmine -f Values.yaml bitnami / redmine

Denna linje liknar andra helm installationslinjer, vi har använts innan, men denna gäng leverer vi en användardefinierad values.yaml. Detta är sättet att anpassa alla Helm-applikationer på.

Vi ska fortfarande ha lite tålmodighet, då skapas av applikationen tar lite tid. Du kan köra denna kommando för att kontrollera status för din applikationscontainere:

kubectl få skidor - klocka

Kommandoen vill returnera 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 ska vänta, tills status för begge containere är igång, och alla är klara 1/1, vilket i ett fall är cirka 6 minuter.

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

Redmine är klar


Opsummering

Kubernetes är ett komplext verktyg för implementering av applikationer, men vi navigerar genom komplexiteten med hjälp av Helm (ingen beräkning av ordnader) och implementerad och pålitlig installation av Redmine.

Du kan hitta en opsummering av denna vejledning i följande git-repo: https://github.com/lcofre/redmine-on-k8s. Du er velkommen til at jämföra med dine filer, hvis du sitter fast.

Vi utelod några begreber från diskussionen, eftersom de var komplexa, eller forklaringen var sky-specifika. Blandt dem är Liveness och Readiness for din applikation, konfiguration av ingående e-post och skalering för att hantera mer belastning. Lad os se nedan, vad de är intresserade av dig mest, så vi kan diskutera det i en framtidig vejledning.

Den ultimativa Redmine-uppgraderingen? Nemt.

Få alla kraftfulla verktyg till perfekt projektplanering, -styrning och -kontroll i en enkel programvara.

Easy Redmine i en 30 dagars gratis provperiod

Full funktionalitet, SSL-skydd, dagliga säkerhetskopior, och geolokalisering