Bii o ṣe le Fi Nginx ranṣẹ lori Iṣupọ Kubernetes


Ninu nkan ti o kẹhin wa, a ti jiroro bi a ṣe le ṣeto ati ṣiṣe iṣupọ Kubernetes kan, jẹ ki a jiroro bi a ṣe le gbe iṣẹ NGINX sori iṣupọ wa.

Emi yoo ṣiṣẹ imuṣiṣẹ yii lori Ẹrọ Foju Ti o gbalejo nipasẹ olupese awọsanma ti gbogbo eniyan. Bii o ti wa pẹlu ọpọlọpọ awọn iṣẹ awọsanma ti gbogbogbo, ọpọlọpọ ni gbogbogbo ṣetọju ilana IP ilu ati ti ikọkọ fun Awọn ẹrọ iṣoogun wọn.

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

Ṣiṣẹ NGINX lori Iṣupọ Kubernetes

A yoo ṣiṣẹ imuṣiṣẹ yii lati oju ipade-oluwa.

Jẹ ki a bẹrẹ nipa ṣayẹwo ipo iṣupọ naa. Gbogbo awọn apa rẹ yẹ ki o wa ni ipo SETAN.

# kubectl get nodes

A ṣẹda imuṣiṣẹ ti NGINX nipa lilo aworan NGINX.

# kubectl create deployment nginx --image=nginx

O le rii bayi ipo ti imuṣiṣẹ rẹ.

# kubectl get deployments

Ti o ba fẹ lati wo alaye diẹ sii nipa imuṣiṣẹ rẹ, o le ṣiṣe aṣẹ apejuwe naa. Fun apẹẹrẹ, o ṣee ṣe lati pinnu iye awọn ẹda ti imuṣiṣẹ n ṣiṣẹ. Ninu ọran wa, a nireti lati ri ẹda ti 1 nṣiṣẹ (ie awọn ẹda 1/1).

# kubectl describe deployment nginx

Nisisiyi imuṣiṣẹ Nginx rẹ n ṣiṣẹ, o le fẹ lati fi iṣẹ NGINX han si IP ilu ti o le de lori intanẹẹti.

Kubernetes nfunni awọn aṣayan pupọ nigbati o ṣafihan iṣẹ rẹ ti o da lori ẹya ti a pe ni Awọn iru iṣẹ Kubernetes ati pe wọn jẹ:

  1. ClusterIP - Iru-Iṣẹ yii ni gbogbogbo ṣafihan iṣẹ lori IP ti inu, ti o le de ọdọ nikan laarin iṣupọ naa, ati pe o ṣee ṣe laarin awọn iṣupọ-apa nikan.
  2. NodePort - Eyi ni aṣayan ipilẹ julọ lati ṣafihan iṣẹ rẹ lati ni iraye si ni ita ti iṣupọ rẹ, lori ibudo kan pato (ti a pe ni NodePort) lori gbogbo oju ipade ninu iṣupọ. A yoo ṣapejuwe aṣayan yii laipẹ.
  3. LoadBalancer - Aṣayan yii ni awọn ifunni lori awọn iṣẹ Load-Balancing itagbangba ti a nṣe nipasẹ ọpọlọpọ awọn olupese lati gba aaye si iṣẹ rẹ. Eyi jẹ aṣayan igbẹkẹle diẹ sii nigbati o ba nronu nipa wiwa giga fun iṣẹ rẹ, ati pe o ni ẹya diẹ sii ju irapada aiyipada lọ.
  4. Orukọ Ita - Iṣẹ yii n ṣe atunṣe ijabọ si awọn iṣẹ ni ita ti iṣupọ naa. Bii iru iṣẹ yii ti ya aworan si orukọ DNS kan ti o le gbalejo lati inu iṣupọ rẹ. O ṣe pataki lati ṣe akiyesi pe eyi ko lo aṣoju.

Iru-Iṣẹ aiyipada ni ClusterIP.

Ninu oju iṣẹlẹ wa, a fẹ lo iru-iṣẹ NodePort nitori a ni adirẹsi ti gbangba ati ikọkọ IP ati pe a ko nilo iwọntunwọnsi fifuye ita fun bayi. Pẹlu iru iṣẹ yii, Kubernetes yoo fi iṣẹ yii si ori awọn ibudo lori ibiti 30000 + wa.

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

Ṣiṣe aṣẹ gba svc lati wo akopọ iṣẹ ati awọn ibudo ti o han.

# kubectl get svc

Bayi o le rii daju pe oju-iwe Nginx naa le ṣee de lori gbogbo awọn apa nipa lilo pipaṣẹ curl.

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

Bi o ti le rii,\"A KU SI NGINX!" iwe le ti wa ni ami.

Bi o ṣe le ti ṣe akiyesi, Kubernetes ṣe ijabọ pe Emi ko ni iforukọsilẹ IP IP ti nṣiṣe lọwọ, tabi dipo ko si aami-EXTERNAL-IP.

# kubectl get svc

Jẹ ki a ṣayẹwo boya o jẹ otitọ nitootọ, pe Emi ko ni IP ti ita ti o so mọ awọn atọkun mi nipa lilo aṣẹ IP.

# ip a

Ko si IP ilu bi o ti le rii.

Gẹgẹbi a ti sọ tẹlẹ, Mo n ṣiṣẹ lọwọlọwọ yii lori Ẹrọ Foju ti a pese nipasẹ olupese awọsanma ti gbogbo eniyan. Nitorinaa, lakoko ti ko si wiwo pato ti a sọtọ IP ti gbogbo eniyan, olupese VM ti ṣe agbejade adirẹsi IP ita ti Ẹlẹda

Adirẹsi IP ita gbangba ephemeral jẹ adirẹsi IP igba diẹ ti o wa ni asopọ si VM titi di igba ti apeere foju duro. Nigbati a ba tun bẹrẹ apeere foju, IP ti ni IP tuntun. Ni ipilẹṣẹ, o jẹ ọna ti o rọrun fun awọn olupese iṣẹ lati ṣe anfani lori awọn IP alailowaya gbangba.

Ipenija nibi, yatọ si otitọ pe IP ilu rẹ ko duro ṣinṣin, ni pe IP ẹya Ẹlẹda jẹ itẹsiwaju (tabi aṣoju) ti IP Aladani, ati fun idi naa, iṣẹ naa yoo wọle si ibudo 30386 nikan. Iyẹn tumọ si pe iṣẹ yoo wọle si URL naa , iyẹn ni 104.197.170.99:30386, eyiti o ba ṣayẹwo aṣawakiri rẹ, o yẹ ki o ni anfani lati wo oju-iwe ikini naa.

Pẹlu iyẹn, a ti ṣaṣeyọri NGINX lori 3-node wa Kubernetes iṣupọ.