Redmine i Kubernetes – Del 1: Forbereder miljöet

6/22/2020
6 minuter
Lukáš Beňa
I denna todelte serien vill vi distribuera Redmine til Kubernetes. Vi vill använda rekommenderade verktyg och praxis med mål för att distribuera en robust instans av Redmine över HTTPS.

Vi delte denna vägledningen i to delar för att först fokusera på installation av verktyg och komponenter som Redmine-implementeringen vill använda. Män behöver inte bry sig om komplexiteten. Själv om du är ny på Kubernetes, vill det vara en förståelig förklaring.

Denne veiledningen ble skriven for å være sky-uavhengig, så vi utelot med vilje alla referanser til skyen vi använde. Legg igjen en kommentar hvis du kan gjette hvilken sky vi brukte, og fortell oss vilka detaljer som avslørte det. Vi rekommenderar dig att använda Kubernetes-tjänsten som skyen dina erbjudanden, då den är bra integrert med andra tjänster som skyen din också erbjuder.

Miljöer som microk8s eller minikuber är inte inkluderade henne, då kräver lite mer konfiguration som är utanför omfattningen av denna vägledning. Speciellt kräver vår HTTPS-konfiguration at klyngen vår har en offentlig IP-adress.


La oss bruke Helm

Kubernetes är ett komplext verktyg för behållarorkestrering. Det är många begrepp vi må lära för att komma i gänget. Lyckligtvis är det ett projekt som heter Helm som ger det nivået av abstraktion vi behöver. Med deras egna ord: "Hvis vi gjorde något riktigt, kunde installera hjälm och sedan innan några minuter installerade komponenter av tillverkningskvalitet rätt från hylla".

Uten å gå inn på grundene til namnene deras (det berättar hela historien om en metafor, Helm, Kubernetes og kontainer), gör helm verkliga installationen enklare samtidigt som det ger rom för anpassning av komponenten efter våra behov. Vi vill använda Helm 3, deras senaste och enklare version.

Om du bruker skyens skall fra skytilbyderen din, er chansne store for at Helm 3 redan är tillgängliga, men om inte kan du installera det genom att följa veiledningen som Helm-dokumentasjonen gir, helm.sh/docs/intro/install/. Du må redan ha tillgång till klyngen din från kommandolinjen du använder. Skytilbyderen har också en vägledning om hur du gör det.


Installatör Ingress Controlleren

Detta är den första komponenten vi vill installera i klyngen vår, och det är också det första Kubernetes-konseptet vi vill se. En Ingress-controller sitter vid ingångsdörren till klyngen din, tar emot alla webbföreståndare och omdirigerar dem till den interna komponenten som är ansvarig för att svara på förfrågan. I början vill det inte vara klart för att svara, men när vi installerar Redmine, vill det bli lagt till som en destinasjon for forespørslene.

Kubernetes erbjuder NGINX Ingress Controlleren som vi vill använda. Dokumentationen förklarar hur du installerar 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

Den första kommandon lägger till applikationsrepositoryen där ingångskontroller är, medan andra installerar den i klyngen din. När den är färdig, vill kommandon skriva några uppgifter för att komma i gänget, inklusive hur du får den offentliga IP-adressen som är tildelt för att kontrolleras:

kubectl få tjänster - klocka

Resultatet kommer att vara något liknande detta:

NAVN TYP KLUSTER-IP EKSTERN-IP PORTER 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 44t

Märk deg EKSTERN-IP, då vi vill trenge den i nästa steg. Det kan henne att tjäna du får der i stället för en IP er . Det tar lite tid för skyen å skaffe en offentlig IP og tildele den til klyngen din. Bara vent några sekunder till, och IP-adressen ska vara tillgänglig.


Upprätt på DNS ​​A-post

Nå som du har IP-adressen, kan du bara gå till en nettleser och se hur du svarar. Självklart, sedan ingen applikation är installerad ännu, kan du svara med en "404 Not Found"-felmelding. Vi vill skapa en DNS-domen som vi kan knyta till IP-adressen, forhåpentligvis lettere å huske enn en liste med tall och punktum.

Måten skapa en internetdomen för din Redmine avhenger i stor grad av din domeneleverantör, men i alla fall ender du upp med att skapa en DNS A-post som kopplas och domenenamn till IP-adressen din. Se följande skärmbild från DNS-leverantören no-ip.com som referens.

Upprette vår DNS A-post

Dataene du måste fylla ut, som du kanske förväntar dig, är domenenamn och IP-adresser. Ingen IP är precis det vi behöver för att skapa en domen, men du vill kanske välja en annan DNS-leverantör. Prosessen är ganske lik i alle sammen.

Det tar lite tid för den nya posten att spre sig, så du kan använda ping för att kontrollera när IP-adressen blir löst riktig:

ping redminek8s.ddns.net


Nästa steg

Nå som vi har en ingress-kontroller och et DNS-domene, är det enda som återstår å konfigurera HTTPS för webbplatsen vårt 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.

Följ med Redmine i Kubernetes del 2: Installera Redmine.

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