Slik distribuerer du NGINX på en Kubernetes-klynge

Bilde: Jack Wallen

Kubernetes er en av de kraftigste metodene for å distribuere klynger for styring og distribusjon av containere. NGINX er en av de mest populære webserverne på planeten, og også en av de beste måtene å illustrere hvordan man distribuerer en container. Kombiner de to, så kan du glede deg over en høyst skalerbar webserver, klar til å hjelpe bedriften din med å vokse.

Men hvordan distribuerer du den NGINX-containeren på en Kubernetes-klynge? Jeg skal vise deg. Et advarsel, jeg bruker en Antsle skyserver, som gjør implementering av Kubernetes-plattformen utrolig enkel. Operativsystemet som er vert for Kubernetes er Ubuntu Server 16.04. Jeg antar at du allerede har Kubernetes i gang. For de som ikke har en Antsle, og som først trenger å installere Kubernetes, kan du sjekke hvordan du gjør her. For denne demonstrasjonen vil jeg distribuere på tre virtuelle maskiner:

  • kubernetes kl 192.168.1.190
  • kubernetes2 kl 192.168.1.191
  • kubernetes3 kl 192.168.1.192

Maskinen med vertsnavnet kubernetes vil fungere som min herre, mens kubernetes2 / 3 vil fungere som noder.

La oss distribuere med det ute av veien.

Sette opp vertsnavn

Det første vi må gjøre er å kartlegge vertsnavn på hver maskin. Så for hver maskin utsteder vi kommandoen sudo nano / etc / hosts og kartlegger den andre maskinens IP-adresse til vertsnavnet. Så på kubernetes vil tilleggene til vertene mine være:

 192.168.1.191 kubernetes2 192.168.1.192 kubernetes3 

På kubernetes2 vil tilleggene være:

 192.168.1.190 kubernetes 192.168.1.192 kubernetes3 

På kubernetes3 vil tilleggene være:

 192.168.1.190 kubernetes 192.168.1.191 kubernetes2 

Når du har gjort tilleggene, kan du lagre og lukke filen. Forsikre deg om at du kan pinge hver server, via vertsnavn.

Initialiser hovednoden

Med alt på plass er det på tide å initialisere hovednoden. Logg inn på kubernetes (min hovednode) og gi kommandoen:

 sudo kubeadm init --pod-network-cidr = 192.168.1.0 / 16 --apiserver-advert-address = 192.168.1.190 

Det kan ta et minutt eller to å fullføre denne kommandoen, ettersom de nødvendige bildene kanskje må trekkes. Når den er fullført, skal du se lignende utdata vist i figur A.

Figur A

Vår hovednode er distribuert.

Inkludert i utdataet er token og oppdagelses-tokenet ditt. Forsikre deg om at du kopierer de ned (eller bare kopierer hele join-kommandoen), da du trenger den informasjonen for å bli med i nodene til klyngen.

Neste trinn er tydelig skissert i utdataene fra initialiseringskommandoen. Effektivt må du gi følgende kommandoer:

 mkdir -p ~ / .kube sudo cp -i /etc/kubernetes/admin.conf ~ / .kube / config sudo chown $ (id -u): $ (id -g) ~ / .kube / config 

Når du har gitt ut ovennevnte kommandoer, sjekk statusen til nodene (det vil bare være en på dette punktet), med kommandoen:

 kubectl få noder 

Du skal se hovednoden oppført ( figur B ).

Figur B

Vår hovednode er oppført.

Årsaken til at vår Master Node er oppført som ikke klar, er fordi den ennå ikke har et Container Networking Interface (CNI). La oss distribuere en Calico CNI for masteren med kommandoen:

 sudo kubectl Apply -f https://docs.projectcalico.org/v2.6/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml 

La oss sørge for at Calico ble distribuert riktig med kommandoen kubectl få pods - alle navnefelt .

Utgangen fra kommandoen over ( figur C ) skal vise at Calico kjører.

Figur C

Calico kjører faktisk nå.

Kjør kubectl få noder igjen, og du bør se Master Node er nå oppført som Klar.

Legge til noder i klyngen

Deretter går vi over til nodene våre for å legge dem til klyngen. Husker du sammenføyningskommandoen i utdataet fra initialiseringskommandoen for Master Node? Gå over til kubernetes2 og send den kommandoen, som vil se slik ut:

 sudo kubeadm join - token 6779e1.164c5515cf412fdf 192.168.1.190:6443 --discovery-token-ca-cert-hash sha256: c3e413050e40675280bbf8e37a99c53a1481f82d714469b51b77ed17b38015de 

Når den kommandoen er fullført, gjør du det samme på kubernetes3. Etter at du har utstedt join-kommandoen på nodene dine, går du tilbake til hovednoden og gir ut kommandoen kubectl get nodes, og du bør se alle nodene klare ( figur D ).

Figur D

Alle noder er klare til å fungere.

Sett NGINX-beholderen i klyngen

Det er nå på tide å distribuere NGINX-containeren. Fra hovednoden, gi kommandoen:

 sudo kubectl opprette distribusjon nginx - image = nginx 

Neste gang gjør vi NGINX-containeren tilgjengelig for nettverket med kommandoen:

 sudo kubectl create service nodeport nginx - tcp = 80: 80 

Gi kommandoen kubectl, få svc for å se NGINX-listen din (samt den tildelte porten, gitt av Kubernetes - figur E )

Figur E

NGINX-tjenesten vår kjører.

La oss teste dette med kommandoen:

 krøll kubernetes3: 30655 

MERKNAD: 30655-porten ble tildelt under opprettingstjenestekommandoen. Det vil være unikt for distribusjonen din.

Utgangen fra krøllkommandoen skal vise HTML på siden NGINX index.html. Hvis du ser at, gratulerer, NGINX-containeren din har blitt distribuert på Kubernetes-klyngen. Hvis du peker en nettleser til http: // IP_OF_NODE: ASSIGNED_PORT (Hvor IP_OF_NODE er en IP-adresse til en av nodene dine og ASSIGNED_PORT er porten som er tildelt under opprettingstjenestekommandoen), bør du se velkomstsiden NGINX!

Grunnleggende distribusjon

Det vi har gjort er en veldig grunnleggende Kubernetes-distribusjon av NGINX på en klynge. Det er så mye mer å lære om å bruke Kubernetes. Dette bør imidlertid gi deg en god start, samt hjelpe deg med å distribuere NGINX på Kubernetes-klyngen.

Datasenter Trender Nyhetsbrev

DevOps, virtualisering, hybridsky, lagring og driftseffektivitet er bare noen av datasentertemaene vi vil trekke frem. Leveres mandager og onsdager

Registrer deg i dag

© Copyright 2020 | mobilegn.com