Kaip įdiegti „Nginx“ „Kubernetes“ klasteryje


Paskutiniame savo straipsnyje aptarėme, kaip sukurti ir paleisti „Kubernetes“ klasterį, aptarkime, kaip galime įdiegti „NGINX“ paslaugą savo klasteryje.

Šį diegimą vykdysiu virtualioje mašinoje, kurią talpina viešasis debesų teikėjas. Kaip ir daugelyje viešųjų debesijos paslaugų, daugelis paprastai palaiko viešųjų ir privačių savo virtualiųjų mašinų IP schemas.

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 diegimas „Kubernetes“ klasteryje

Šį diegimą vykdysime iš pagrindinio mazgo.

Pradėkime nuo klasterio būsenos patikrinimo. Visi jūsų mazgai turi būti paruoštos būsenos.

# kubectl get nodes

Sukuriame NGINX diegimą naudodami NGINX vaizdą.

# kubectl create deployment nginx --image=nginx

Dabar galite pamatyti diegimo būseną.

# kubectl get deployments

Jei norite sužinoti daugiau informacijos apie savo diegimą, galite paleisti komandą aprašyti. Pvz., Galima nustatyti, kiek veikia diegimo kopijos. Mūsų atveju tikimės pamatyti 1 bėgimo kopiją (t. Y. 1/1 kopijos).

# kubectl describe deployment nginx

Dabar jūsų „Nginx“ diegimas yra aktyvus, galbūt norėsite, kad „NGINX“ tarnyba būtų viešas IP, kurį galima pasiekti internete.

„Kubernetes“ siūlo keletą galimybių atskleisti savo paslaugą pagal funkciją, vadinamą „Kubernetes Service“ tipais, ir jos yra:

  1. „ClusterIP“ - šio tipo paslaugos paprastai pateikia paslaugą vidiniame IP, kurį galima pasiekti tik grupėje ir galbūt tik grupių mazguose.
  2. „NodePort“ - tai yra paprasčiausia galimybė, kad jūsų paslauga būtų pasiekiama už klasterio ribų, konkrečiame prievade (vadinamame „NodePort“) kiekviename klasterio mazge. Netrukus iliustruosime šią parinktį.
  3. „LoadBalancer“ - ši parinktis naudoja išorines apkrovos balansavimo paslaugas, kurias siūlo įvairūs tiekėjai, kad būtų suteikta prieiga prie jūsų paslaugos. Tai yra patikimesnė galimybė galvojant apie aukštą jūsų paslaugos prieinamumą ir turi daugiau funkcijų nei numatytoji prieiga.
  4. ExternalName - ši paslauga nukreipia srautą į paslaugas, esančias už klasterio ribų. Taigi tokia paslauga priskiriama DNS vardui, kurį galima priglobti iš jūsų sankaupos. Svarbu pažymėti, kad tai nereikalauja tarpinio serverio.

Numatytasis paslaugos tipas yra „ClusterIP“.

Pagal savo scenarijų norime naudoti „NodePort Service“ tipą, nes turime ir viešąjį, ir privatų IP adresą ir kol kas mums nereikia išorinio apkrovos balansavimo. Su šio tipo paslaugomis „Kubernetes“ priskirs šią paslaugą 30000 ir daugiau diapazonų uostuose.

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

Paleiskite komandą get svc, kad pamatytumėte paslaugos ir veikiamų uostų santrauką.

# kubectl get svc

Dabar galite patikrinti, ar „Nginx“ puslapį galima pasiekti visuose mazguose, naudodami komandą „curl“.

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

Kaip matote, „SVEIKI ATVYK TO Į„ NGINX “!“ puslapį galima pasiekti.

Kaip jau pastebėjote, „Kubernetes“ praneša, kad aš nesu užregistravęs jokio aktyvaus viešojo IP, tiksliau, neužregistruotas „EXTERNAL-IP“.

# kubectl get svc

Patikrinkime, ar tai tiesa, ar neturiu IŠORINIO IP prie savo sąsajų naudodamas IP komandą.

# ip a

Nėra viešo IP, kaip matote.

Kaip minėta anksčiau, šiuo metu vykdau šią diegimą virtualioje mašinoje, kurią siūlo viešasis debesų teikėjas. Taigi, nors nėra jokios konkrečios sąsajos, kuriai priskirtas viešasis IP, VM teikėjas išdavė trumpalaikį išorinį IP adresą.

Trumpalaikis išorinis IP adresas yra laikinas IP adresas, kuris lieka prijungtas prie VM, kol virtualusis egzempliorius bus sustabdytas. Paleidus virtualųjį egzempliorių, priskiriamas naujas išorinis IP. Iš esmės tai yra paprastas būdas paslaugų teikėjams pasinaudoti neveikiančiais viešaisiais IP.

Čia iššūkis, išskyrus tai, kad jūsų viešasis IP nėra statiškas, yra tas, kad trumpalaikis viešasis IP yra tiesiog privataus IP plėtinys (arba tarpinis serveris), ir dėl šios priežasties paslauga bus galima naudotis tik 30386 prievade. Tai reiškia, kad paslauga bus pasiekiama naudojant URL , tai yra 104.197.170.99:30386, kurį patikrinę savo naršyklę turėtumėte matyti pasveikinimo puslapį.

Tai sėkmingai įdiegėme NGINX mūsų 3 mazgų „Kubernetes“ klasteryje.