Hvernig á að dreifa Nginx á Kubernetes þyrping


Í síðustu grein okkar höfum við rætt hvernig á að setja upp og keyra Kubernetes klasa, við skulum ræða hvernig við getum sett inn NGINX þjónustu á klasanum okkar.

Ég mun keyra þessa dreifingu á sýndarvél sem hýst er af opinberum skýjaveitanda. Eins og það er með margar opinberar skýjaþjónustur, halda margir almennt uppi almennu og einka IP-kerfi fyrir sýndarvélar sínar.

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

Að dreifa NGINX á Kubernetes þyrping

Við munum keyra þessa dreifingu frá master-hnút.

Við skulum byrja á því að athuga stöðu klasans. Allir hnútar þínir ættu að vera í READY ástandi.

# kubectl get nodes

Við búum til dreifingu á NGINX með því að nota NGINX myndina.

# kubectl create deployment nginx --image=nginx

Þú getur nú séð stöðu uppsetningar þinnar.

# kubectl get deployments

Ef þú vilt sjá frekari upplýsingar um dreifinguna þína geturðu keyrt describe skipunina. Til dæmis er hægt að ákvarða hversu margar eftirlíkingar af dreifingunni eru í gangi. Í okkar tilviki gerum við ráð fyrir að sjá eftirmynd af 1 í gangi (þ.e. 1/1 eftirlíking).

# kubectl describe deployment nginx

Nú þegar Nginx dreifingin þín er virk, gætirðu viljað afhjúpa NGINX þjónustuna fyrir opinberri IP sem hægt er að nálgast á internetinu.

Kubernetes býður upp á nokkra möguleika þegar þú afhjúpar þjónustu þína á grundvelli eiginleika sem kallast Kubernetes þjónustutegundir og þeir eru:

  1. ClusterIP – Þessi þjónustutegund afhjúpar almennt þjónustuna á innri IP, aðeins hægt að ná í innan klasans og hugsanlega aðeins innan klasahnútanna.
  2. NodePort – Þetta er grunnvalkosturinn til að afhjúpa þjónustuna þína þannig að hún sé aðgengileg utan klasans þíns, á tilteknu tengi (kallað NodePort) á hverjum hnút í klasanum. Við munum útskýra þennan möguleika fljótlega.
  3. LoadBalancer – Þessi valkostur nýtir sér ytri álagsjöfnunarþjónustu sem ýmsar veitendur bjóða upp á til að leyfa aðgang að þjónustunni þinni. Þetta er áreiðanlegri valkostur þegar þú hugsar um mikið framboð fyrir þjónustu þína og hefur fleiri eiginleika umfram sjálfgefinn aðgang.
  4. ExternalName – Þessi þjónusta vísar umferð til þjónustu utan klasans. Sem slík er þjónustan þannig varpað á DNS nafn sem gæti verið hýst úr þyrpingunni þinni. Það er mikilvægt að hafa í huga að þetta notar ekki umboð.

Sjálfgefin þjónustutegund er ClusterIP.

Í atburðarás okkar viljum við nota NodePort þjónustugerðina vegna þess að við höfum bæði opinbert og einka IP tölu og við þurfum ekki utanaðkomandi álagsjafnara í bili. Með þessari þjónustutegund mun Kubernetes úthluta þessari þjónustu á höfn á 30000+ sviðinu.

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

Keyrðu get svc skipunina til að sjá yfirlit yfir þjónustuna og höfnin sem eru afhjúpuð.

# kubectl get svc

Nú geturðu staðfest að Nginx síðan sé aðgengileg á öllum hnútum með því að nota curl skipunina.

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

Eins og þú sérð er „VELKOMIN TIL NGINX!“ síðu er hægt að nálgast.

Eins og þú hefur ef til vill tekið eftir, tilkynnir Kubernetes að ég sé ekki með neina virka opinbera IP skráða, eða réttara sagt ekkert YTRI-IP skráð.

# kubectl get svc

Við skulum sannreyna hvort það sé örugglega satt, að ég er ekki með neina YTARI IP tengd við viðmótin mín með IP skipun.

# ip a

Engin opinber IP eins og þú sérð.

Eins og fyrr segir er ég núna að keyra þessa dreifingu á sýndarvél í boði hjá opinberum skýjaveitanda. Svo, þó að ekkert sérstakt viðmót sé úthlutað opinberri IP-tölu, hefur VM-veitan gefið út skammvinnt ytra IP-tölu.

Efnalegt ytra IP-tala er tímabundið IP-tala sem er tengt við VM þar til sýndartilvikið er stöðvað. Þegar sýndartilvikið er endurræst er nýjum ytri IP-tölu úthlutað. Í grundvallaratriðum er það einföld leið fyrir þjónustuveitendur að nýta sér aðgerðalausar opinberar IP-tölur.

Áskorunin hér, önnur en sú staðreynd að opinbera IP-talan þín er ekki kyrrstæð, er sú að skammvinn opinber IP-tala er einfaldlega framlenging (eða umboð) á Einka-IP, og af þeirri ástæðu verður aðeins aðgangur að þjónustunni á höfn 30386. Það þýðir að þjónustan verður opnuð á slóðinni , það er 104.197.170.99:30386, sem ef þú skoðar vafrann þinn ættir þú að geta séð velkomnasíðuna.

Þar með höfum við innleitt NGINX með góðum árangri á 3-hnúta Kubernetes þyrpingunni okkar.