Nginxi juurutamine Kubernetese klastris


Oma viimases artiklis oleme arutanud, kuidas Kubernetese klastrit seadistada ja käitada, arutame, kuidas saaksime NGINX-i teenust oma klastrisse juurutada.

Käivitan selle juurutamise virtuaalses masinas, mida haldab avalik pilvepakkuja. Nagu paljude avalike pilveteenuste puhul, hoiavad paljud oma virtuaalsete masinate jaoks üldjuhul avalikku ja privaatset IP-skeemi.

Master Node - Public IP: 104.197.170.99 and Private IP: 10.128.15.195
Worker Node 1 - Public IP: 34.67.149.37 and Private IP: 10.128.15.196
Worker Node 2 - Public IP: 35.232.161.178 and Private IP: 10.128.15.197

NGINX-i juurutamine Kubernetese klastrisse

Käivitame selle juurutamise põhisõlmest.

Alustame klastri oleku kontrollimisega. Kõik teie sõlmed peaksid olema VALMIS olekus.

# kubectl get nodes

Loome NGINX-i juurutamise, kasutades pilti NGINX.

# kubectl create deployment nginx --image=nginx

Nüüd näete oma juurutuse olekut.

# kubectl get deployments

Kui soovite oma juurutamise kohta üksikasjalikumat teavet, võite käivitada käsu kirjeldus. Näiteks on võimalik kindlaks teha, kui palju juurutamise koopiaid töötab. Meie puhul loodame näha ühe jooksva koopia (st 1/1 koopia).

# kubectl describe deployment nginx

Nüüd on teie Nginxi juurutamine aktiivne, võiksite NGINX-teenuse avalikuks saada Internetis.

Kubernetes pakub teie teenuse eksponeerimiseks funktsiooni Kubernetes Service-type põhjal mitmeid võimalusi ja need on järgmised:

  1. ClusterIP - see teenusetüüp paljastab teenuse tavaliselt sisemisel IP-l, millele pääseb juurde ainult klastris ja võib-olla ainult klastri sõlmedes.
  2. NodePort - see on kõige põhilisem võimalus, et teie teenus oleks kättesaadav väljaspool teie klastrit, konkreetses pordis (nn NodePort) igas klastri sõlmes. Illustreerime seda võimalust varsti.
  3. LoadBalancer - see valik kasutab mitmesuguste pakkujate pakutavaid väliseid koormuse tasakaalustamise teenuseid, et võimaldada juurdepääsu teie teenusele. See on usaldusväärsem valik, kui mõelda oma teenuse suurele kättesaadavusele, ja sellel on rohkem funktsioone kui vaikepöördus.
  4. ExternalName - see teenus suunab liikluse ümber klastri välistele teenustele. Sellisena on teenus vastandatud DNS-i nimele, mida võiks teie klastrist hostida. Oluline on märkida, et see ei kasuta puhverserverit.

Vaiketeenuse tüüp on ClusterIP.

Oma stsenaariumi korral soovime kasutada tüüpi NodePort Service, kuna meil on nii avalik kui ka privaatne IP-aadress ja me ei vaja praegu välist koormuse tasakaalustajat. Selle teenusetüübi korral määrab Kubernetes selle teenuse vahemikus 30000+ asuvatesse portidesse.

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

Teenuse ja avatud porti kokkuvõtte nägemiseks käivitage käsk get svc.

# kubectl get svc

Nüüd saate käsu curl abil kontrollida, kas Nginxi leht on kõigis sõlmedes kättesaadav.

# curl master-node:30386
# curl node-1:30386
# curl node-2:30386

Nagu näete, on teretulnud NGINX! lehele pääseb.

Nagu olete märganud, teatab Kubernetes, et mul pole aktiivset avalikku IP-d registreeritud või õigemini pole registreeritud ühtegi VÄLIS-IP-d.

# kubectl get svc

Kontrollime, kas see on tõsi, et mul pole IP-käsu abil liideste külge kinnitatud VÄLIS-IP-d.

# ip a

Pole avalikku IP-d, nagu näete.

Nagu varem mainitud, käitan seda juurutamist praegu virtuaalse masina abil, mida pakub avalik pilvepakkuja. Niisiis, kuigi avalikule IP-le pole määratud ühtegi konkreetset liidest, on VM-i pakkuja väljastanud ajutise välise IP-aadressi.

Ajutine väline IP-aadress on ajutine IP-aadress, mis jääb VM-i külge kuni virtuaalse eksemplari peatamiseni. Kui virtuaalne eksemplar taaskäivitatakse, määratakse uus väline IP. Põhimõtteliselt on see teenusepakkujatele lihtne võimalus kasutada jõudeolevaid avalikke IP-sid.

Siin on väljakutse, välja arvatud asjaolu, et teie avalik IP pole staatiline, on see, et ajutine avalik IP on lihtsalt privaatse IP laiendus (või puhverserver) ja seetõttu pääseb teenusele juurde ainult porti 30386. See tähendab, et teenusele pääseb juurde URL-il , see tähendab 104.197.170.99:30386, mis kui kontrollite oma brauserit, peaksite nägema tervituslehte.

Sellega oleme NGINXi edukalt juurutanud oma kolmesõlmelises Kubernetes klastris.