Redmine i Kubernetes – Del 1: Forbereder miljøet

6/22/2020
6 minutter
Lukáš Beňa
I denne todelte serien vil vi distribuere Redmine til Kubernetes. Vi vil bruge anbefalet værktøj og praksis med mål om at distribuere en robust instans af Redmine over HTTPS.

Vi dele denne veiledningen i at dele for først at fokusere på installation af værktøj og komponenter som Redmine-implementeringen vil bruge. Men ikke bekymre dig for kompleksiteten. Selv om du er ny på Kubernetes, vil det være en forståelig forklaring.

Denne veiledningen ble skrevet for å være himmel-uafhængig, så vi utelot med vilje alle referanser til skyen vi brugte. Legg igjen en kommentar hvis du kan gjette hvilken sky vi brugte, og fortell oss hvilke detaljer som avslørte det. Vi anbefaler dig at bruge Kubernetes-tjenesten som skyen din tilbud, da den er godt integreret med andre tjenester som skyen din også tilbyder.

Miljøer som microk8s eller minikube er ikke inkluderet her, da der kræves lidt mere konfiguration som er udenfor omfanget af denne vejledning. Specielt kræver vores HTTPS-konfiguration at klyngen vår har en offentlig IP-adresse.


La oss bruge Helm

Kubernetes er et komplekst værktøj til containerorkestrering. Det er mange begreper vi må lære for at komme i gang. Heldigvis er det et projekt som heter Helm som giver det niveauet af abstraktion vi behøver. Med deres egne ord: "Hvis vi gjorde noget rigtigt, kunne bruge installere hjelm og derefter inden for få minutter at installere komponenter af produktionskvalitet rett fra hylla".

Uden at gå ind på grundene til navnene deres (det fortæller hele historien om en metafor, Helm, Kubernetes og kontainer), gjør helm virkelig installationen lettere samtidig som det giver rom for tilpasning af komponenter efter vores behov. Vi vil bruge Helm 3, deres nyeste og endnu enklere version.

Hvis du bruger skyens skall fra skytilbyderen din, er chancene store for at Helm 3 allerede er tilgængelig, men hvis ikke kan du installere det ved at følge veiledningen som Helm-dokumentasjonen gir, helm.sh/docs/intro/install/. Du må allerede ha tilgang til klyngen din fra kommandolinjen du bruger. Skytilbyderen din har også en veiledning om hvordan du gør det.


Installatør Ingress Controlleren

Dette er den første komponent vi vil installere i klyngen vores, og er også det første Kubernetes-konseptet vi vil se. En Ingress-controller sidder ved inngangsdøren til klyngen din, modtager alle webforespørsler og omdirigerer dem til den interne komponent som er ansvarlig for at svare på anmodningen. I begyndelsen vil det ikke være nogen klar til at svare, men når vi installerer Redmine, vil det blive lagt til som en destinasjon for forespørslene.

Kubernetes tilbyder NGINX Ingress Controlleren som vi vil bruge. Dokumentationen deres forklarer hvordan du installerer ved hjælp af Helm:

roret repo tilføj ingress-nginx https://kubernetes.github.io/ingress-nginx && roret repo-opdatering

ror installer ingress-controller ingress-nginx / ingress-nginx

Den første kommandoen lægger til applikationsrepositoryen der ingress-controlleren er, mens den andre installerer den i klyngen din. Når den er færdig, vil kommandoen skrive nogle oplysninger for at komme i gang, herunder hvordan du får den offentlige IP-adresse som er tildelt til at kontrollere:

kubectl få tjenester - ur

Resultatet vil være noget lignende dette:

NAVN TYPE KLUSTER-IP EKSTERN-IP PORTER ALDER

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

controller-adgang ClusterIP 10.0.135.226 443 / TCP 5m22s

kubernetes ClusterIP 10.0.0.1 443/TCP 44t

Merk dig EKSTERN-IP, da vi vil trenge den i næste trin. Det kan hende at tjene du får der i stedet for en IP er . Det tar lidt tid for skyen å skaffe en offentlig IP og tildele den til klyngen din. Bare vent nogle sekunder til, og IP-adressen skal være tilgængelig.


Opret en DNS A-post

Nå som du har IP-adressen, kan du bare gå til en nettleser og se hvordan klyngen din svarer. Selvfølgelig, siden ingen applikation er installeret endnu, vil klyngen svare med en "404 Not Found" fejlmelding. Vi vil oprette et DNS-domene, som vi kan knytte til IP-adressen, forhåpentligvis lettere å huske endnu en liste med høj og punktum.

Måten oprette et internetdomene til din Redmine avhenger i stor grad af din domeneleverandør, men i alle tilfælde ender du op med at oprette en DNS A-post som kobler og domenenavn til IP-adressen din. Se følgende skærmbillede fra DNS-leverandøren no-ip.com som reference.

Oprette vores DNS A-post

Dataene du må fylde ud, som du måske forventer, er domenenavnet og IP-adressen. No-IP er akkurat det, vi behøver for at oprette en domene, men du vil muligvis vælge en anden DNS-leverandør. Prosessen er ganske lik i alle sammen.

Det tager lidt tid for den nye post at spre sig, så du kan bruge ping for at tjekke, når IP-adressen bliver løst rigtigt:

ping redminek8s.ddns.net


Neste steg

Nå som vi har en ingress-kontroller og et DNS-domene, er det eneste som gjenstår å konfigurer HTTPS til vores hjemmeside og installere Redmine. Vi vil bruge PostgreSQL som vores database, men du vil se, hvor enkelt det er at konfigurere alt ved hjælp af Helm.

Følg med på Redmine i Kubernetes Del 2: Installation af Redmine.

Den ultimative Redmine-opgraderingen? Enkel.

Få alt kraftigt værktøj til perfekt projektplanlægning, -styring og -kontrol i én software.

Prøv Easy Redmine i en 30-dagers gratis prøveperiode

Fuld funktionalitet, SSL-beskyttet, daglig sikkerhedskopiering, i din geografiske placering