Redmine i Kubernetes - Del 1: Forberedelse af miljöet

6/22/2020
6 minuter
Lukáš Beňa

I denna to-delte serie kommer vi att implementera Redmine i Kubernetes. Vi vill använda rekommenderade verktyg och metoder som är avsedda att implementeras och robusta instanser av Redmine över HTTPS.

Vi har opdelt denna vägledning i att ta bort för att fokusera först på installation av maskiner och komponenter, som Redmine-implementeringen vill använda. Men oroar dig inte om komplexiteten. Även om du är ny till Kubernetes, vill det vara en förståelig förklaring.

Denne vejledning blev skriven for at være moln-agnostisk, så vi undlod bevidst alle omtaler af den sky, vi brugte. Efterlad en kommentar, hvis du kan gætte, hvilken sky vi brugte, og fortæl os, hvilken detalje der afslørede det. Vi rekommenderar dig att använda Kubernetes-tjänsten, som din himmel erbjuder, då den är bra integrerad med andra tjänster, som din sky erbjuder också.

Miljöer som microk8s eller minikube är inte taget i betraktande her, då de kräver lite mer konfiguration, som är utan för denna vejlednings omfattning. Isär kräver våra HTTPS-konfiguration, på vår klynge har en offentlig IP-adress.


Lad os använda Helm

Kubernetes är ett komplext verktyg till container-orkestrering. Der er mange begreber, vi skal lära for att komma i gänget. Lyckligtvis är det ett projekt kallat Helm, som ger det abstraktionsnivå, vi har använt för. I deras egna ord "Hvis vi gjorde saker och ting riktigt, kunde man installera hjälm och innan för att få minuter att installera komponenter av produktionskvalitet ut av hylden"

Uden at gå ind i orsakerne til deras namn (det hela berättar historien om en metafor, Helm, Kubernetes og Containere) gör helm verklig installationen enklare, samtidigt med att det finns plats för att anpassa komponenten till våra behov. Vi vill använda Helm 3, deras senaste och ännu enklare version.

Om du använder skyens skal från din skyudbyder, är der stor sandsynlighed for, at Helm 3 redan är tillgänglig, men om du inte kan installera det genom att följa vejledningen, som Helm-dokumentationen ger, helm.sh/docs/intro/install/. Du skal redan ha tillgång till din klynge från den kommandolinje, du använder. Din skyudbyder har också en anvisning om hur du gör det.


Installatör Ingress Controller

Detta är den första komponenten, vi vill installera i vår klynge, och det är också det första Kubernetes-konceptet, vi vill se. En Ingress-controller sitter vid ingångsdörren till din klynge, mottar alla webanställningar och omdirigerare för den interna komponenten, som är ansvarig för att besvara begäran. Jag startar inte är klar för att svara, men när vi installerar Redmine, vill det bli tillägg som en destination för begäranerne.

Kubernetes leverer NGINX Ingress Controller, som vi vill använda. Det finns information om hur man installerar det med hjälp av Helm:

helm repo lägg till ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo-uppdatering

helm installera ingress-controller ingress-nginx / ingress-nginx

Det första kommandot lägger till applikationsrepositoryen, där ingress-controlleren är, medan den andra installerar den i din klynge. När installationen är färdig, skriv ut några uppgifter för att komma i gänget, nedan hur man får den offentliga IP, der är tildelt controlleren:

kubectl få tjänster - klocka

Resultatet kommer att vara något liknande detta:

NAVN TYP CLUSTER-IP EXTERN-IP-PORT(AR) ALDER

nginx-controller LoadBalancer 10.0.115.117 89.68.23.33 80 / TCP, 443 / TCP 5m22s

controller-tillträde ClusterIP 10.0.135.226 443 / TCP 5m22s

kubernetes ClusterIP 10.0.0.1 443 / TCP 44h

Observera EXTERNAL-IP, då vi vill ha användning för det i nästa trin. Det kan ske, att värden, du får der, i stället för en IP er . Det tager lite tid för skyen at få en offentlig IP og tildele den til din klynge. Vent bara ett par sekunder mer och IP'en börda vara tillgänglig.


Öppna en DNS A-post

Nu har du IP'en, kan du bara gå till en webbläsare och se, hur detta kluster svarar dig. Självklart, då är ännu inte installerat någon applikation, vilket kluster svarar med en "404 Not Found"-fel. Vi vill skapa ett DNS-domæne, som vi kan associera med den IP, forhåbentlig nemmere at huske end en liste af tal og prikker.

Måden att skapa et internetdomæne för din Redmine hög grad av din domæneleverantör, men i alla fall ender du med att skapa en DNS A-post, där kopplar och domænenamn med din IP. Se följande skärmbild från DNS-leverantören no-ip.com som referens.

Beskrivning av vår DNS A-post

De data, som ska utfyllas, som du nog förväntar dig, är DNS-namn och IP'en. No-IP är likadant, vi har använt för att illustrera skapande av et domæne, men du kan förmodligen välja en annan DNS-udbyder. Processen er ret ens i dem alle.

Det tar lite tid för det nya inlägget att sprida sig, så du kan använda ping för att kontrollera, när IP'en är korrekt löst:

ping redminek8s.ddns.net


Nästa trin

Nu har vi en ingress-controller och et DNS-domæne, är det enda, som saknas, at konfigurera HTTPS för vår webbplats och installera Redmine. Vi vill använda PostgreSQL som vår databas, men du vill se, hur enkelt det är att konfigurera alt med hjälp av Helm.

Håll dig uppdaterad på Redmine i Kubernetes del 2: Installera Redmine.

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