Giunsa ang Pag-deploy sa Nginx sa usa ka Kubernetes Cluster


Sa among katapusan nga artikulo, among gihisgutan kung giunsa ang pag-set up ug pagpadagan sa usa ka Kubernetes Cluster, atong hisgutan kung giunsa naton ma-deploy ang serbisyo sa NGINX sa among cluster.

Ipadagan nako kini nga deployment sa usa ka Virtual Machine nga Gi-host sa usa ka public cloud provider. Sama sa daghang mga serbisyo sa publiko nga panganod, kadaghanan sa kasagaran nagmentinar sa usa ka publiko ug pribado nga IP scheme para sa ilang mga Virtual Machines.

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

Pag-deploy sa NGINX sa usa ka Kubernetes Cluster

Atong ipadagan kini nga deployment gikan sa master-node.

Magsugod kita pinaagi sa pagsusi sa kahimtang sa cluster. Ang tanan nimong mga node kinahanglan nga anaa sa usa ka READY nga kahimtang.

# kubectl get nodes

Naghimo kami usa ka pag-deploy sa NGINX gamit ang imahe sa NGINX.

# kubectl create deployment nginx --image=nginx

Makita na nimo ang kahimtang sa imong deployment.

# kubectl get deployments

Kung gusto nimo nga makita ang dugang nga detalye bahin sa imong pag-deploy, mahimo nimong ipadagan ang describe command. Pananglitan, posible nga mahibal-an kung pila ang mga replika sa pag-deploy nga nagdagan. Sa among kaso, nagpaabut kami nga makakita og replika sa 1 nga nagdagan (ie 1/1 nga mga replika).

# kubectl describe deployment nginx

Karon ang imong pag-deploy sa Nginx aktibo, mahimo nimong ibutyag ang serbisyo sa NGINX sa usa ka publiko nga IP nga maabot sa internet.

Nagtanyag ang mga Kubernetes og daghang mga kapilian kung ibutyag ang imong serbisyo base sa usa ka bahin nga gitawag nga Mga tipo sa Serbisyo sa Kubernetes ug kini mao ang:

  1. ClusterIP – Kini nga Service-type sa kasagaran nagbutyag sa serbisyo sa internal IP, maabot lang sulod sa cluster, ug posibleng sulod lang sa cluster-nodes.
  2. NodePort – Kini ang pinaka-basic nga opsyon sa pagbutyag sa imong serbisyo nga ma-access sa gawas sa imong cluster, sa usa ka piho nga pantalan (gitawag nga NodePort) sa matag node sa cluster. Atong i-ilustrar kini nga opsyon sa dili madugay.
  3. LoadBalancer – Kini nga opsyon naggamit sa mga eksternal nga serbisyo sa Load-Balancing nga gitanyag sa lain-laing mga providers aron tugotan ang access sa imong serbisyo. Kini usa ka mas kasaligan nga kapilian kung maghunahuna bahin sa taas nga magamit alang sa imong serbisyo, ug adunay daghang bahin nga labaw sa default nga pag-access.
  4. ExternalName – Kini nga serbisyo nag-redirect sa trapiko ngadto sa mga serbisyo gawas sa cluster. Ingon niana ang serbisyo sa ingon mapa sa usa ka ngalan sa DNS nga mahimong i-host gikan sa imong cluster. Importante nga timan-an nga wala kini naggamit ug proxying.

Ang default nga tipo sa Serbisyo mao ang ClusterIP.

Sa among senaryo, gusto namong gamiton ang NodePort Service-type tungod kay kami adunay usa ka publiko ug pribado nga IP address ug wala kami magkinahanglan og external load balancer sa pagkakaron. Uban niini nga klase sa serbisyo, ang Kubernetes mag-assign niini nga serbisyo sa mga pantalan sa 30000+ nga range.

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

Pagdalagan ang get svc command aron makita ang usa ka summary sa serbisyo ug ang mga port nga gibutyag.

# kubectl get svc

Karon mahimo nimong pamatud-an nga ang pahina sa Nginx maabot sa tanan nga mga node gamit ang curl command.

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

Sama sa imong makita, ang \WELCOME TO NGINX! maabot ang panid.

Sama sa imong namatikdan, ang Kubernetes nagtaho nga ako walay aktibong Public IP nga narehistro, o hinoon walay EXTERNAL-IP nga narehistro.

# kubectl get svc

Atong pamatud-an kung tinuod ba kini, nga wala ako'y EXTERNAL IP nga gilakip sa akong mga interface gamit ang IP command.

# ip a

Walay publikong IP sama sa imong makita.

Sama sa nahisgutan sa sayo pa, karon akong gipadagan kini nga pag-deploy sa usa ka Virtual Machine nga gitanyag sa usa ka public cloud provider. Busa, samtang walay partikular nga interface nga gi-assign sa usa ka publikong IP, ang VM provider nag-isyu sa usa ka Ephemeral external IP address.

Ang usa ka ephemeral nga eksternal nga IP address usa ka temporaryo nga IP adres nga nagpabilin nga gilakip sa VM hangtod nga nahunong ang virtual nga pananglitan. Kung gi-restart ang virtual nga pananglitan, usa ka bag-ong external IP ang gi-assign. Sa panguna gibutang, kini usa ka yano nga paagi alang sa mga tighatag sa serbisyo aron magamit ang mga idle nga publiko nga IP.

Ang hagit dinhi, gawas sa kamatuoran nga ang imong publikong IP dili static, mao nga ang Ephemeral Public IP usa lamang ka extension (o proxy) sa Private IP, ug tungod niana nga rason, ang serbisyo ma-access lamang sa port 30386. Kana nagpasabot nga ang serbisyo ma-access sa URL , nga mao ang 104.197.170.99:30386, nga kung imong susihon ang imong browser, kinahanglan nimo nga makita ang welcome page.

Niana, malampuson namong na-deploy ang NGINX sa among 3-node nga Kubernetes cluster.