Ukuphucula iqela leKubernetes ngaphandle kwexesha lokuphumla

Ukuphucula iqela leKubernetes ngaphandle kwexesha lokuphumla

Phucula inkqubo yeqela lakho leKubernetes

Ngexesha elithile, xa usebenzisa i-cluster ye-Kubernetes, kukho imfuneko yokuhlaziya ii-nodes ezisebenzayo. Oku kunokubandakanya uhlaziyo lwephakheji, uhlaziyo lwekernel, okanye ukuthunyelwa kwemifanekiso emitsha yomatshini. Kwisigama se-Kubernetes oku kubizwa "Ukuphazamiseka ngokuzithandela".

Esi sithuba siyinxalenye ye-4-post series:

  1. Esi sithuba.
  2. Ukuvalwa okuchanekileyo kwee-pods kwiqela le-Kubernetes
  3. Kulibaziseke ukupheliswa kwepod xa icinyiwe
  4. Ungayiphepha njani iKubernetes Cluster yokuPhuhlisa ixesha usebenzisa iPodDisruptionBudgets

(malunga. Lindela iinguqulelo zamanqaku aseleyo kungcelele kungekudala)

Kweli nqaku, siza kuchaza zonke izixhobo ezibonelelwa nguKubernetes ukufezekisa i-zero downtime yeendawo ezisebenza kwiqela lakho.

Inkcazo yeNgxaki

Siza kuthatha indlela engenangqondo ekuqaleni, sichonge iingxaki kwaye sivavanye imingcipheko enokubakho yale ndlela, kwaye sakhe ulwazi lokusombulula ingxaki nganye esidibana nayo kulo mjikelo. Isiphumo kukucwangciswa okusebenzisa i-hooks ye-lifecycle, i-probes yokulungela, kunye nohlahlo lwabiwo-mali lokuphazamiseka kwePod ukufezekisa injongo yethu ye-zero downtime.

Ukuqala uhambo lwethu, makhe sithathe umzekelo obambekayo. Masithi sineqela le-Kubernetes leendawo ezimbini, apho isicelo sisebenza ngeepods ezimbini ezibekwe ngasemva. Service:

Ukuphucula iqela leKubernetes ngaphandle kwexesha lokuphumla

Masiqale ngeepods ezimbini ngeNginx kunye neNkonzo eqhuba kwiindawo zethu ezimbini zeqela leKubernetes.

Sifuna ukuhlaziya inguqulelo yekernel yeenodi ezimbini zabasebenzi kwiqela lethu. Sikwenza njani oku? Isisombululo esilula siya kuba kukuqalisa iindawo ezintsha ngoqwalaselo oluhlaziyiweyo kwaye emva koko uvale iindawo ezindala ngelixa uqala ezintsha. Ngelixa oku kuya kusebenza, kuya kubakho iingxaki ezimbalwa ngale ndlela:

  • Xa ucima ii-nodes ezindala, ii-pods ezisebenza kuzo nazo ziya kuvalwa. Kuthekani ukuba iipods zifuna ukucocwa ukuze kuvalwe kakuhle? Isixokelelwano sokubona osisebenzisayo sinokungalindeli ukuba inkqubo yokucoca igqitywe.
  • Kuthekani ukuba ucima zonke iindawo ngaxeshanye? Uya kufumana ixesha lokuphumla elifanelekileyo ngelixa iipods zifudukela kwiindawo ezintsha.

Sidinga indlela yokufuduka ngobubele kwiipods ukusuka kwiindawo ezindala ngelixa siqinisekisa ukuba akukho nanye yeenkqubo zethu zabasebenzi ezisebenzayo ngelixa sisenza utshintsho kwindawo. Okanye xa sitshintsha ngokupheleleyo iqela, njengakumzekelo (oko kukuthi, sithatha indawo yemifanekiso yeVM), sifuna ukudlulisela usetyenziso olusebenzayo ukusuka kwiindawo ezindala ukuya kwezintsha. Kuzo zombini ezi meko, sifuna ukuthintela ii-pods ezintsha ekucwangciseni iindawo ezindala, kwaye emva koko sikhuphe zonke iipods ezibalekayo kuzo. Ukufezekisa ezi njongo sinokusebenzisa umyalelo kubectl drain.

Ukusasaza kwakhona zonke iipod ukusuka kwi-node

Ukusebenza kwe-drain kukuvumela ukuba uphinde usasaze zonke iipod ukusuka kwi-node. Ngexesha lokukhutshwa kwamanzi, i-node iphawulwe njengengenakucwangciswa (iflegi NoSchedule). Oku kuthintela iipod ezintsha ekuveleni kuyo. Emva koko i-drain iqala ukukhupha iipod kwi-node, ivala izitya ezisebenzayo ngoku kwi-node, ukuthumela umqondiso. TERM izitya kwipod.

Nangona kunjalo kubectl drain iya kwenza umsebenzi omkhulu wokukhupha iipods, kukho ezinye izinto ezimbini ezinokubangela ukungasebenzi kakuhle kombhobho:

  • Isicelo sakho kufuneka sipheliswe ngobubele xa usingenisile TERM uphawu. Xa iipods zikhutshwa, uKubernetes uthumela umqondiso TERM izitya kwaye ulindele ukuba ziyeke ixesha elithile, emva koko, ukuba azizange ziyeke, ziphelisa ngokunyanzeliswa. Kwimeko nayiphi na into, ukuba isikhongozeli sakho asiyiboni isignali ngokuchanekileyo, usenako ukucima iipods ngokungalunganga ukuba zisebenza ngoku (umzekelo, ukuthengiswa kwedatha kuyaqhubeka).
  • Ulahlekelwa zizo zonke iipods eziqulathe isicelo sakho. Isenokungafumaneki xa izikhongozeli ezitsha ziqaliswa kwiindawo ezintsha, okanye ukuba iipods zakho zibekwe ngaphandle kwabalawuli, abanakuphinda baqalise konke konke.

Ukuphepha ixesha lokuphumla

Ukunciphisa ixesha lokuphumla ekuphazamisekeni ngokuzithandela, njengokusebenza kombhobho kwindawo, iKubernetes ibonelela ngolu khetho lulandelayo lokusilela:

Kulo lonke uthotho, siza kusebenzisa ezi mpawu zeKubernetes ukunciphisa ifuthe lokufuduka kwepod. Ukwenza kube lula ukulandela uluvo oluphambili, siya kusebenzisa umzekelo wethu ongentla ngolungelelwaniso lomthombo olandelayo:

---
apiVersion: apps/v1
kind: Deployment
metadata:
 name: nginx-deployment
 labels:
   app: nginx
spec:
 replicas: 2
 selector:
   matchLabels:
     app: nginx
 template:
   metadata:
     labels:
       app: nginx
   spec:
     containers:
     - name: nginx
       image: nginx:1.15
       ports:
       - containerPort: 80
---
kind: Service
apiVersion: v1
metadata:
 name: nginx-service
spec:
 selector:
   app: nginx
 ports:
 - protocol: TCP
   targetPort: 80
   port: 80

Olu qwalaselo ngumzekelo omncinci Deployment, elawula i-nginx pods kwiqela. Ukongeza, uqwalaselo luchaza isibonelelo Service, enokusetyenziselwa ukufikelela kwi-nginx pods kwiqela.

Kuwo wonke umjikelo, siya kwandisa ngokuphindaphindiweyo olu lungelelwaniso ukuze ekugqibeleni lubandakanye onke amandla abonelelwa nguKubernetes ukunciphisa ixesha lokuphumla.

Ukufumana inguqulelo ephunyezwe ngokupheleleyo kwaye ivavanyiwe yohlaziyo lweqela le-Kubernetes ngokungabikho kwexesha lokuphumla kwi-AWS nangaphaya, ndwendwela Gruntwork.io.

Funda namanye amanqaku kwibhlog yethu:

umthombo: www.habr.com

Yongeza izimvo