Redmine i Kubernetes - Del 2: Redmine installeras i Kubernetes

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

Detta är den andra delen av serien över implementeren av Redmine i Kubernetes. I denna artikel ger vi instruktioner om hur du är en trovärdig installation av Redmine kan implementera.

Terugblik Deel 1

I detta ögonblick ser du en stor del av installationen av Redmine på Kubernetes. Därvoor ben je tenslotte här, toch?

In Redmine in Kubernetes - Del 1: Förberedelse av omgivningen har vi en Ingress Controller installerad, en komponent för att söka på internet inom ett kluster för att leda, och vi har en DNS-domein, redminek8s.ddns.net, skapad. Nu är vi bara klara med HTTPS för att konfigurera och sedan är vi klara för att implementera Redmine.


HTTPS träffade cert-manager

Även om vi Redmine som HTTP kan hålla, är HTTPS standard för webbplatser. Se även till att de flesta webbläsare kan användas för ett säkerhetsproblem när HTTPS inte används på en webbplats.

Inkopplingen av HTTPS är vanligtvis ingen enkel uppgift, eftersom du måste köpa ett certifikat och ladda upp det till din webbplats. Cert-manager automatiserar allt, inklusive en vernieuwing av certifikaten, och säkerställer helt gratis certifikat. Du kan mer information hitta op hun webbplats, men jag kommer att visa allt vad du måste veta.


Installatör cert-manager

Följ de följande stegen för att installera cert-manager i ditt kluster:

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 förrådet där cert-manager finns, och sedan installerar du den senaste versionen.


Verbinden träffade de Certificate Authority

Nu måste vi cert-manager instruera för att ansluta med dörren på den valda certifikatleverantören. Vi kommer att använda LetsEncrypt, en gratis certifieringsmyndighet. Gör först den här filen (vergeet inte om du byter ut en riktig e-postadress) och nämner 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

För att sedan komma från ditt kluster

kubectl applicera -f cluster-emittent.yaml

Gefeliciteerd! Den översta filen är den första kubernetes-konfigurationen som vi skriver och passerar i klustret. Du kanske har markerat att du kan se hur du kan ansluta till LetsEncrypt, men vi har även skrivit in Ingress Controller som har gjorts i del 1 (klassen: nginx till slutet). Denna typ av konfiguration har några regler med spaties om beroende av vissa egenskaper som kan ge andra. Håll spaties som visas om du ser till att filen är korrekt läses och tillämpas.

Nu är klustret HTTPS aktiverat. Telkens när vi en applikation kan vi instruera om HTTPS fungerar en voilà! Hela processen för att automatiskt få certifikatet utförs bakom skärmen.


Redmine installera

Det är var vi alla op hebben gewacht. Vi kan Redmine på olika sätt att installera, men det mest praktiska sättet är att använda. Som vi tidigare har lagt till, lägger vi först till förrådet där Redmine befinner sig.

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

Men denna gång gör vi på plats för att direkt installera en konfigurationsfil för att ge en väl anpassad beteende vi vill visa Redmine.

Vi kommer alla konfigurationer i sina egna sektioner, men alla i samma filplatser, en och en annan. Noem heter bestandsvärden.yaml.

Alla Helm-applikationer har en values.yaml-fil med alla möjliga konfigurationer som kan skapas. När vi gör våra egna values.yaml, definierar vi ändringar som vi vill. Varje värde som vi inte finns i lagret, förblir som det är i standardfilen.

Alla standardvärden finns också för att hitta på sidan för ror-applikationer, https://hub.helm.sh/charts/bitnami/redmine. Belåt alla konfigurationer.


Första administratörsanvändare

Redmine-användarnamn: adminUser

Redmine-wachtwoord:

Detta steg är inte nödvändigt och lätt att förstå. Detta är vår första användare på Redmine, vi kommer att använda för första gången i loggen.

När Redmine är installerat kan du få tillgång till denna användare till konfigurationen av din nya installation.


PostgreSQL-databas

Standard kräver vår Helm-installation som är en mariadb-databas som görs. Vi kommer att ställa in vår installationskonfiguration för att PostgreSQL ska användas. Du måste också ha minst ett lösenord för att komma åt denna databas, som du nedan kan se.

DatabaseType: PostgreSQL

Mariadb:

  aktiverad: falsk

PostgreSQL:

  aktiverad: sant

  postgresqlDatabas: Redmine

  postgresql Användarnamn: Redmine

  postgresqlPassword:

Vi måste förklara vår installationsinformation som vi inte vill ha MariaDB tillsammans med konfigurationen för PostgreSQL-databasen är installerad.


DNS-namnkonfiguration

Nedanstående konfiguration är den andra sidan av DNS-konfigurationen som vi har gjort i del 1. Som du kan se, koppla in TLS i, protokollet efter HTTPS, och ställa in värdnamnet i det vi har använt för att göra vårt DNS-rekord:

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 två reglerna kopplar vi vår applikation med Ingress Controller och med Cluster Issuer som vi tidigare har gjort.

Nu kan vi Redmine implementera med vår anpassade konfiguration:

helm installera Redmine -f Values.yaml bitnami / redmine

Regeln är jämförbar med andra installationsregler som vi tidigare har använt, men dessa gånger levererar vi anpassade values.yaml. Detta är sättet för varje Helm-applikation för att passa.

Vi har inte vad som krävs för att vi behöver vänta, eftersom vi gör en enda applikation. Du kan utföra kommandot för att kontrollera statusen för din applikationsbehållare:

kubectl få skidor - klocka

Het kommandot ger något liknande tillbaka som detta:

NAMN KLAR STATUS OMSTARTAR ÅLDER

. . .

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 containrarna. Running är helt klar med 1/1, i mitt fall ungefär 6 minuter lång.

Nu är allt klart om webbläsaren ska öppnas och gå till vår nya implementering:

Redmine är klar


fullbordan

Kubernetes är ett komplicerat verktyg för applikationer som ska implementeras, men vi har en komplexitet som kan navigeras med hjälp av Helm (genom ordspelning) och en trovärdig installation av Redmine implementerad.

Du kan en sammanfattning av denna handledning hitta i följande git-repo: https://github.com/lcofre/redmine-on-k8s. Jämför tryggt med dina filer som du fastloopt.

Vi har några koncept utanför diskussionen släppt eftersom de komplexa var av de utleg specifikt för molnet var. Nedan hittar du Liveness och Readiness för din applikation, konfiguration av inkommande e-postmeddelanden och inlämning om mer belastning för att kunna. Låt oss nedan veta var du är mest intresserad av intresse, så att vi kan komma i en framtida handledning.

Den sista Redmine-uppgraderingen? Makkelijk.

Krijg alla kraftfulla verktyg för perfekt projektplanering, -hantering och -kontroll i en mjukvara.

Testa Easy Redmine 30 dagar gratis

Fullständiga funktioner, SSL-beveiligd, dagliga säkerhetskopieringar, på din geografiska plats