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
Esi sithuba siyinxalenye ye-4-post series:
- Esi sithuba.
- Ukuvalwa okuchanekileyo kwee-pods kwiqela le-Kubernetes
- Kulibaziseke ukupheliswa kwepod xa icinyiwe
- 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
:
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 umqondisoTERM
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
Funda namanye amanqaku kwibhlog yethu:
I-Zero yokuPhathwa kweXesha lokuPhuhliswa kunye neDathabase Kubernetes: kutheni kubaluleke kangaka ukuqwalasela ulawulo lwemithombo yenkqubo? I-Tekton Pipeline-i-Kubernetes-native pipelines Ukwakha iimodyuli eziguqukayo zeNginx Intshayelelo kuGunyaziso lwe-Hashicorp Consul's Kubernetes Ukufuduka ukusuka kwiClickHouse ngaphandle kogunyaziso ukuya kwiClickHouse ngesigunyaziso kukhokelele phi?
umthombo: www.habr.com