Igbegasoke iṣupọ Kubernetes Laisi Downtime

Igbegasoke iṣupọ Kubernetes Laisi Downtime

Ilana igbesoke fun iṣupọ Kubernetes rẹ

Ni aaye kan, nigba lilo iṣupọ Kubernetes kan, iwulo wa lati ṣe imudojuiwọn awọn apa iṣiṣẹ. Eyi le pẹlu awọn imudojuiwọn package, awọn imudojuiwọn kernel, tabi imuṣiṣẹ ti awọn aworan ẹrọ foju tuntun. Ninu awọn ọrọ Kubernetes eyi ni a pe "Idalọwọduro atinuwa".

Ifiweranṣẹ yii jẹ apakan ti jara 4-post:

  1. Ifiweranṣẹ yii.
  2. Tiipa awọn adarọ-ese ni pipe ninu iṣupọ Kubernetes kan
  3. Ifopinsi idaduro ti podu nigbati o ti paarẹ
  4. Bii o ṣe le yago fun iṣupọ Kubernetes Downtime Lilo PodDisruptionBudgets

(isunmọ. Reti awọn itumọ ti awọn nkan ti o ku ninu jara ni ọjọ iwaju nitosi)

Ninu àpilẹkọ yii, a yoo ṣe apejuwe gbogbo awọn irinṣẹ ti Kubernetes pese lati ṣaṣeyọri akoko isinmi odo fun awọn apa ti nṣiṣẹ ninu iṣupọ rẹ.

Ti n ṣalaye iṣoro naa

A yoo gba ọna ti o rọrun ni akọkọ, ṣe idanimọ awọn iṣoro ati ṣe ayẹwo awọn ewu ti o pọju ti ọna yii, ati kọ imọ lati yanju awọn iṣoro kọọkan ti a ba pade ni gbogbo igba. Abajade jẹ atunto kan ti o nlo awọn ìkọ igbesi-aye, awọn iwadii imurasilẹ, ati awọn isuna idalọwọduro Pod lati ṣaṣeyọri ibi-afẹde akoko isale odo wa.

Lati bẹrẹ irin-ajo wa, jẹ ki a mu apẹẹrẹ kan pato. Jẹ ki a sọ pe a ni iṣupọ Kubernetes ti awọn apa meji, ninu eyiti ohun elo kan nṣiṣẹ pẹlu awọn adarọ-ese meji ti o wa lẹhin Service:

Igbegasoke iṣupọ Kubernetes Laisi Downtime

Jẹ ki a bẹrẹ pẹlu awọn adarọ-ese meji pẹlu Nginx ati Iṣẹ nṣiṣẹ lori awọn apa iṣupọ Kubernetes meji wa.

A fẹ lati ṣe imudojuiwọn ẹya kernel ti awọn apa oṣiṣẹ meji ninu iṣupọ wa. Bawo ni a ṣe ṣe eyi? Ojutu ti o rọrun yoo jẹ lati bata awọn apa tuntun pẹlu iṣeto imudojuiwọn ati lẹhinna ku awọn apa atijọ lakoko ti o bẹrẹ awọn tuntun. Lakoko ti eyi yoo ṣiṣẹ, awọn iṣoro diẹ yoo wa pẹlu ọna yii:

  • Nigbati o ba pa awọn apa atijọ, awọn adarọ-ese ti n ṣiṣẹ lori wọn yoo tun wa ni pipa. Ohun ti o ba ti awọn pods nilo lati wa ni nso fun ore-ọfẹ tiipa? Eto agbara ipa ti o nlo le ma duro fun ilana afọmọ lati pari.
  • Kini ti o ba pa gbogbo awọn apa ni akoko kanna? Iwọ yoo gba akoko isunmi ti o tọ nigbati awọn podu ba lọ si awọn apa titun.

A nilo ọna kan lati lọ pẹlu oore-ọfẹ lati awọn apa atijọ lakoko ṣiṣe idaniloju pe ko si awọn ilana oṣiṣẹ wa ti nṣiṣẹ lakoko ti a ṣe awọn ayipada si ipade naa. Tabi nigba ti a ba ṣe iyipada pipe ti iṣupọ, bi ninu apẹẹrẹ (eyini ni, a rọpo awọn aworan VM), a fẹ lati gbe awọn ohun elo nṣiṣẹ lati awọn apa atijọ si awọn tuntun. Ni awọn ọran mejeeji, a fẹ lati yago fun awọn adarọ-ese tuntun lati ṣiṣe eto lori awọn apa atijọ, ati lẹhinna yọ gbogbo awọn adarọ-ese ti nṣiṣẹ lọwọ wọn. Lati ṣaṣeyọri awọn ibi-afẹde wọnyi a le lo aṣẹ naa kubectl drain.

Npinpin gbogbo awọn adarọ-ese lati ipade kan

Iṣiṣẹ ṣiṣan n gba ọ laaye lati tun pin gbogbo awọn podu lati oju ipade kan. Lakoko ipaniyan sisan, ipade naa ti samisi bi aiṣe eto (asia NoSchedule). Eyi ṣe idilọwọ awọn podu tuntun lati han lori rẹ. Lẹhinna ṣiṣan bẹrẹ lati yọ awọn podu kuro ni ipade, tiipa awọn apoti ti o nṣiṣẹ lọwọlọwọ lori ipade, fifiranṣẹ ifihan agbara kan. TERM awọn apoti ni a podu.

Biotilejepe kubectl drain yoo ṣe iṣẹ nla kan ti yiyọ kuro awọn adarọ-ese, awọn nkan miiran meji lo wa ti o le fa ki iṣẹ sisan naa kuna:

  • Ohun elo rẹ gbọdọ ni anfani lati fopin si oore-ọfẹ lẹhin ifisilẹ TERM ifihan agbara. Nigbati awọn adarọ-ese ba ti jade, Kubernetes fi ifihan agbara ranṣẹ TERM awọn apoti ati duro fun wọn lati da duro fun iye akoko kan, lẹhin eyi, ti wọn ko ba duro, o fopin si wọn ni agbara. Ni eyikeyi idiyele, ti apoti rẹ ko ba woye ifihan agbara ni deede, o tun le pa awọn adarọ-ese kuro ni aṣiṣe ti wọn ba nṣiṣẹ lọwọlọwọ (fun apẹẹrẹ, idunadura data kan wa ni ilọsiwaju).
  • O padanu gbogbo awọn adarọ-ese ti o ni ohun elo rẹ ninu. O le ma wa nigbati awọn apoti titun ti ṣe ifilọlẹ lori awọn apa titun, tabi ti awọn adarọ-ese rẹ ba wa ni ransogun laisi awọn oludari, wọn le ma tun bẹrẹ rara.

Yẹra fun akoko idaduro

Lati dinku akoko isunmi lati idalọwọduro atinuwa, gẹgẹbi lati iṣẹ sisan lori ipade kan, Kubernetes pese awọn aṣayan mimu ikuna atẹle wọnyi:

Ninu jara to ku, a yoo lo awọn ẹya Kubernetes wọnyi lati dinku ipa ti ijira podu. Lati jẹ ki o rọrun lati tẹle imọran akọkọ, a yoo lo apẹẹrẹ wa loke pẹlu iṣeto orisun atẹle:

---
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

Yi iṣeto ni a iwonba apẹẹrẹ Deployment, eyiti o ṣakoso awọn adarọ-ese nginx ninu iṣupọ. Ni afikun, iṣeto ni apejuwe awọn oluşewadi Service, eyiti o le ṣee lo lati wọle si awọn adarọ-ese nginx ninu iṣupọ kan.

Jakejado awọn ọmọ, a yoo iteratively faagun yi iṣeto ni ki o bajẹ pẹlu gbogbo awọn agbara Kubernetes pese lati din downtime.

Fun imuse ni kikun ati ẹya idanwo ti awọn imudojuiwọn iṣupọ Kubernetes fun akoko idaduro odo lori AWS ati kọja, ṣabẹwo Gruntwork.io.

Tun ka awọn nkan miiran lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun