Redmine i Kubernetes – Del 1: Forbereder miljøet
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.