Otu esi etinye Nginx na ụyọkọ Kubernetes


N'isiokwu ikpeazụ anyị, anyị atụlewo otu esi edozi ma na-agba ọsọ Kubernetes Cluster, ka anyị tụlee otú anyị nwere ike isi tinye ọrụ NGINX na ụyọkọ anyị.

M ga-agba ọsọ a na igwe mebere nke onye na-eweta igwe ojii na-elekọta. Dịka ọ dị n'ọtụtụ ọrụ igwe ojii, ọtụtụ na-edobe atụmatụ IP ọha na nkeonwe maka igwe mebere ha.

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

Na-ebuga NGINX na ụyọkọ Kubernetes

Anyị ga-eme nke a site na master-node.

Ka anyị malite site na ịlele ọkwa nke ụyọkọ ahụ. Ọnụ ọnụ gị niile kwesịrị ịdị na steeti njikere.

# kubectl get nodes

Anyị na-emepụta ntinye nke NGINX site na iji foto NGINX.

# kubectl create deployment nginx --image=nginx

Ị nwere ike ịhụ ọnọdụ mbugharị gị ugbu a.

# kubectl get deployments

Ọ bụrụ n’ịchọrọ ịhụ nkọwa ndị ọzọ gbasara mbugharị gị, ị nwere ike ịme iwu nkọwa. Dịka ọmụmaatụ, ọ ga-ekwe omume ịchọpụta ọnụọgụgụ nke ntinye ahụ na-agba ọsọ. N'ọnọdụ anyị, anyị na-atụ anya ịhụ oyiri nke 1 na-agba ọsọ (ya bụ 1/1 oyiri).

# kubectl describe deployment nginx

Ugbu a ntinye Nginx gị na-arụ ọrụ, ịnwere ike ikpughe ọrụ NGINX na IP ọha nwere ike ịnweta na ịntanetị.

Kubernetes na-enye ọtụtụ nhọrọ mgbe ị na-ekpughe ọrụ gị dabere na njirimara akpọrọ Kubernetes Service-ụdị na ha bụ:

  1. ClusterIP – Ụdị ọrụ a na-ekpughekarị ọrụ na IP dị n'ime, enwere ike iru naanị n'ime ụyọkọ, yana ikekwe naanị n'ime ụyọkọ ọnụ.
  2. NodePort - Nke a bụ nhọrọ kachasị mkpa nke ikpughe ọrụ gị ka ị nweta ya na mpụga ụyọkọ gị, n'otu ọdụ ụgbọ mmiri (nke a na-akpọ NodePort) na ọnụ ọ bụla dị na ụyọkọ ahụ. Anyị ga-egosipụta nhọrọ a n'oge adịghị anya.
  3. LoadBalancer – Nhọrọ a na-enye aka na ọrụ nrụnye ibu dị na mpụga nke ndị na-eweta dị iche iche na-enye iji kwe ka ịnweta ọrụ gị. Nke a bụ nhọrọ a pụrụ ịdabere na ya karịa mgbe ị na-eche maka ịdị elu dị elu maka ọrụ gị, ma nwee ọtụtụ atụmatụ karịrị ịnweta ndabara.
  4. Aha Mpụga – Ọrụ a na-ebugharị okporo ụzọ gaa na ọrụ na-abụghị nke ụyọkọ. N'ihi ya, a na-esetịpụ ọrụ ahụ na aha DNS nke enwere ike ịbanye na ụyọkọ gị. Ọ dị mkpa ịmara na nke a anaghị eji proxying.

Ụdị ọrụ ndabara bụ ClusterIP.

N'ọnọdụ anyị, anyị chọrọ iji ụdị ọrụ NodePort n'ihi na anyị nwere ma adreesị IP nke ọha na nke onwe yana anyị achọghị ihe nkwụnye ụgwọ mpụga maka ugbu a. Site na ụdị ọrụ a, Kubernetes ga-ekenye ọrụ a na ọdụ ụgbọ mmiri na nso 30000+.

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

Gbaa iwu nweta svc ka ịhụ nchịkọta ọrụ yana ekpughere ọdụ ụgbọ mmiri.

# kubectl get svc

Ugbu a ị nwere ike ịchọpụta na ibe Nginx nwere ike iru na ọnụ ọnụ niile site na iji iwu curl.

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

Dị ka ị na-ahụ, WELCOME TO NGINX! enwere ike iru ibe.

Dịka ị chọpụtala, Kubernetes na-akọ na enweghị m aha ọhaneze IP na-arụ ọrụ, ma ọ bụ kama enweghị m EXTERNAL-IP edebanye aha.

# kubectl get svc

Ka anyị nyochaa ma ọ bụrụ na ọ bụ eziokwu, na enweghị m IP Mpụga agbakwunyere na ntanetị m site na iji iwu IP.

# ip a

Enweghị IP ọha dịka ị na-ahụ.

Dịka e kwuru na mbụ, ana m arụ ọrụ ugbu a na igwe mebere nke onye na-eweta igwe ojii na-enye. Yabụ, ọ bụ ezie na enweghị otu interface ekenyere IP ọha, onye na-eweta VM ewepụtala adreesị IP mpụga Ephemeral.

Adreesị IP mpụta nke ephemeral bụ adreesị IP nwa oge nke na-anọgide na VM ruo mgbe akwụsịre ihe atụ. Mgbe ịmalitegharịrị ihe atụ mebere, a na-ekenye IP mpụga ọhụrụ. N'ikwu ya n'ụzọ bụ isi, ọ bụ ụzọ dị mfe maka ndị na-enye ọrụ iji tinye aka na IP ọha na-abaghị uru.

Ihe ịma aka ebe a, ma e wezụga eziokwu na IP ọha gị abụghị ihe kwụ ọtọ, bụ na Ephemeral Public IP bụ naanị ndọtị (ma ọ bụ proxy) nke IP nkeonwe, n'ihi ya, a ga-enweta ọrụ ahụ na ọdụ ụgbọ mmiri 30386. Nke ahụ pụtara na a ga-enweta ọrụ ahụ na URL , ya bụ 104.197.170.99:30386, nke ọ bụrụ na ịlele ihe nchọgharị gị, ị ga-enwe ike ịhụ ibe nnabata.

Site na nke ahụ, anyị etinyela NGINX nke ọma na ụyọkọ Kubernetes 3-node anyị.