Kā izvietot Nginx Kubernetes kopā


Mūsu pēdējā rakstā mēs esam apsprieduši, kā izveidot un palaist Kubernetes kopu, apspriedīsim, kā mēs varam izvietot NGINX pakalpojumu savā klasterī.

Šo izvietošanu izpildīšu virtuālajā mašīnā, kuru mitina publisks mākoņu nodrošinātājs. Tāpat kā ar daudziem publiskiem mākoņpakalpojumiem, daudzi parasti uztur savu virtuālo mašīnu publisko un privāto IP shēmu.

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 izvietošana Kubernetes kopā

Mēs veiksim šo izvietošanu no galvenā mezgla.

Sāksim ar klastera stāvokļa pārbaudi. Visiem jūsu mezgliem jābūt gatavā stāvoklī.

# kubectl get nodes

Mēs izveidojam NGINX izvietošanu, izmantojot NGINX attēlu.

# kubectl create deployment nginx --image=nginx

Tagad jūs varat redzēt izvietošanas stāvokli.

# kubectl get deployments

Ja vēlaties redzēt sīkāku informāciju par izvietošanu, varat izpildīt komandu aprakstīt. Piemēram, ir iespējams noteikt, cik izvietošanas kopiju darbojas. Mūsu gadījumā mēs sagaidām, ka redzēsim 1 darbojošās kopijas (t.i., 1/1 kopijas).

# kubectl describe deployment nginx

Tagad jūsu Nginx izvietošana ir aktīva, jūs varat pakļaut NGINX pakalpojumu publiskam IP, kas pieejams internetā.

Pakļaujot savu pakalpojumu, pamatojoties uz funkciju, ko sauc par Kubernetes pakalpojumu tipiem, Kubernetes piedāvā vairākas iespējas, un tās ir:

  1. ClusterIP - šis pakalpojuma veids parasti pakļauj pakalpojumu iekšējam IP, kas sasniedzams tikai klastera ietvaros un, iespējams, tikai klastera mezglos.
  2. NodePort - šī ir visvienkāršākā iespēja, lai jūsu pakalpojums būtu pieejams ārpus klastera, noteiktā portā (saukts par NodePort) katrā klastera mezglā. Drīz mēs ilustrēsim šo iespēju.
  3. LoadBalancer - šī opcija izmanto ārējos slodzes līdzsvarošanas pakalpojumus, ko piedāvā dažādi pakalpojumu sniedzēji, lai atļautu piekļuvi jūsu pakalpojumam. Tas ir uzticamāks variants, domājot par augstu sava pakalpojuma pieejamību, un tam ir vairāk funkciju, kas pārsniedz noklusējuma piekļuvi.
  4. ExternalName - šis pakalpojums trafiku novirza uz pakalpojumiem, kas atrodas ārpus klastera. Tādējādi šāds pakalpojums tiek piesaistīts DNS nosaukumam, kuru varētu mitināt ārpus jūsu kopas. Ir svarīgi atzīmēt, ka tas neizmanto starpniekserveri.

Noklusējuma pakalpojuma tips ir ClusterIP.

Mūsu scenārijā mēs vēlamies izmantot NodePort Service veidu, jo mums ir gan publiska, gan privāta IP adrese, un mums pašlaik nav nepieciešams ārējs slodzes līdzsvarotājs. Izmantojot šo pakalpojuma veidu, Kubernetes piešķirs šo pakalpojumu portiem, kuru diapazons ir 30000+.

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

Palaidiet komandu get svc, lai redzētu pakalpojuma un pakļauto portu kopsavilkumu.

# kubectl get svc

Tagad jūs varat pārbaudīt, vai Nginx lapa ir sasniedzama visos mezglos, izmantojot čokurošanās komandu.

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

Kā redzat, “Laipni lūdzam NGINX!” lapu var sasniegt.

Kā jūs, iespējams, pamanījāt, Kubernetes ziņo, ka man nav aktīvs publisks IP reģistrēts vai drīzāk nav reģistrēts EXTERNAL-IP.

# kubectl get svc

Pārbaudīsim, vai tā patiešām ir taisnība, ka manām saskarnēm nav pievienots ĀRĒJS IP, izmantojot IP komandu.

# ip a

Nav publiska IP, kā redzat.

Kā jau minēts iepriekš, es pašlaik izmantoju šo izvietošanu virtuālajā mašīnā, ko piedāvā publisks mākoņu nodrošinātājs. Tātad, kaut arī nav īpašas saskarnes, kurai piešķirts publisks IP, VM nodrošinātājs ir izsniedzis īslaicīgu ārēju IP adresi.

Īslaicīga ārējā IP adrese ir pagaidu IP adrese, kas paliek pievienota VM, līdz tiek apturēta virtuālā instance. Restartējot virtuālo instanci, tiek piešķirts jauns ārējais IP. Būtībā tas ir vienkāršs veids, kā pakalpojumu sniedzēji var izmantot dīkstāves publiskos IP.

Šeit izaicinājums, izņemot to, ka jūsu publiskais IP nav statisks, ir tāds, ka īslaicīgais publiskais IP ir vienkārši privātā IP paplašinājums (vai starpniekserveris), un šī iemesla dēļ pakalpojumam varēs piekļūt tikai 30386. portā. Tas nozīmē, ka pakalpojumam varēs piekļūt no URL , tas ir, 104.197.170.99:30386, un, pārbaudot pārlūkprogrammu, jums vajadzētu redzēt sveiciena lapu.

Līdz ar to mēs esam veiksmīgi izvietojuši NGINX savā 3 mezglu Kubernetes kopā.