Nûvekirina komek Kubernetes bêyî demdirêjiyê

Nûvekirina komek Kubernetes bêyî demdirêjiyê

Pêvajoya nûvekirina ji bo koma xweya Kubernetes

Di hin xalan de, dema ku komek Kubernetes bikar tînin, pêdivî ye ku girêkên xebitandinê nûve bikin. Dibe ku ev nûvekirinên pakêtê, nûvekirinên kernel, an bicîhkirina wêneyên nû yên makîneya virtual hebe. Di termînolojiya Kubernetes de ev tê gotin "Pêşketina bi dilxwazî".

Ev post beşek ji rêzek 4-post e:

  1. Ev post.
  2. Girtina rast a podên di komek Kubernetes de
  3. Dema ku pod were jêbirin bidawîbûna derengmayî
  4. Meriv çawa Bi Bikaranîna PodDisruptionBudgets Ji Downtime-ya Kubernetes Cluster Dûr Bide

(nêzîkî. Li hêviya wergerên gotarên mayî yên rêzê di demek nêzîk de)

Di vê gotarê de, em ê hemî amûrên ku Kubernetes peyda dike diyar bikin da ku ji bo girêkên ku di koma we de dixebitin bigihîjin zewaca sifirê.

Pirsgirêka pirsgirêkê

Em ê di destpêkê de nêzîkatiyek naîf bigirin, pirsgirêkan nas bikin û xetereyên potansiyel ên vê nêzîkatiyê binirxînin, û zanînê ava bikin da ku her yek ji wan pirsgirêkên ku em di heyamê de pê re rû bi rû dimînin çareser bikin. Encam vesazkirinek e ku çengelên çerxa jiyanê, lêkolînên amadehiyê, û budceyên têkçûna Pod bikar tîne da ku bigihîje armanca meya zewaca sifir.

Ji bo destpêkirina rêwîtiya xwe, em mînakek berbiçav bigirin. Ka em bibêjin komek Kubernetes a ji du girêkan heye, ku tê de serîlêdanek bi du podên ku li piştê ne dimeşe. Service:

Nûvekirina komek Kubernetes bêyî demdirêjiyê

Werin em bi du podên bi Nginx û Servîsa ku li ser du girêkên komê yên Kubernetes-ê dixebitin dest pê bikin.

Em dixwazin guhertoya kernelê ya du girêkên karker ên di koma xwe de nûve bikin. Em çawa vê yekê bikin? Çareseriyek hêsan dê ev be ku hûn bi konfigurasyona nûvekirî girêkên nû boot bikin û dûv re dema ku yên nû dest pê bikin girêkên kevn werin girtin. Dema ku ev ê bixebite, dê bi vê nêzîkbûnê re çend pirsgirêk hebin:

  • Gava ku hûn girêkên kevin qut bikin, pêlên ku li ser wan dixebitin jî dê werin girtin. Ger hewce be ku pez ji bo girtina xweş were paqij kirin? Pergala virtualîzasyona ku hûn bikar tînin dibe ku li benda qedandina pêvajoya paqijkirinê nemîne.
  • Ger hûn hemî girêkan di heman demê de qut bikin? Dema ku pêlav berbi girêkên nû ve diçin, hûn ê demdirêjiya guncan bistînin.

Ji me re rêyek hewce ye ku em bi dilşewatî potan ji girêkên kevin veguhezînin dema ku em pê ewle bin ku yek ji pêvajoyên xebatkarê me dimeşîne dema ku em guhartinan li girêkê dikin. An jî gava ku em guheztinek bêkêmasî ya komê dikin, wek mînak (ango, em wêneyên VM-ê diguhezînin), em dixwazin serîlêdanên xebitandinê ji girêkên kevn veguhezînin yên nû. Di her du rewşan de, em dixwazin rê li ber plansazkirina podên nû li ser girêkên kevin bigirin, û dûv re jî hemî podên xebitandinê ji wan derxînin. Ji bo bidestxistina van armancan em dikarin fermanê bikar bînin kubectl drain.

Ji nû ve dabeşkirina hemî podan ji nodek

Operasyona avêtinê destûrê dide te ku hûn hemî potan ji nodek ji nû ve belav bikin. Di dema darvekirina avêtinê de, girêk wekî neplankirî tê nîşankirin (ala NoSchedule). Ev rê nade ku pelên nû li ser xuya bibin. Dûv re avjenî dest pê dike ku potan ji girêkê derxîne, konteynirên ku niha li ser girêkê dimeşin digire, îşaretek dişîne. TERM konteynirên di nav pêçekê de.

Her çiqas kubectl drain dê di derxistina potan de karekî pir mezin bike, du faktorên din hene ku dikarin bibin sedema têkçûna operasyona avêtinê:

  • Pêdivî ye ku serîlêdana we piştî radestkirinê bi dilxweşî bidawî bibe TERM nîşan. Dema ku pod têne derxistin, Kubernetes îşaretek dişîne TERM konteyniran û li bendê ye ku ew demek diyarkirî rawestin, piştî ku ger nesekinin, bi zorê wan diqede. Di her rewşê de, heke konteynera we îşaretê rast nabîne, hûn dîsa jî dikarin pelan bi xeletî vemirînin heke ew niha dixebitin (mînakek danûstendinek databasê di pêş de ye).
  • Hûn hemî podên ku serîlêdana we vedigirin winda dikin. Gava ku konteynerên nû li ser girêkên nû têne destpêkirin, dibe ku ew ne amade be, an jî heke podên we bêyî kontrolker werin bicîh kirin, dibe ku ew qet ji nû ve neyên destpêkirin.

Dûrxistina demajoyê

Ji bo kêmkirina dema domandinê ya ji qutbûna dilxwazî ​​​​, wek mînak ji operasyona avêtinê ya li ser girêkekê, Kubernetes vebijarkên hilanîna têkçûnê yên jêrîn peyda dike:

Di rêzikên mayî de, em ê van taybetmendiyên Kubernetes bikar bînin da ku bandora koçberiya pod kêm bikin. Ji bo ku şopandina ramana sereke hêsantir bibe, em ê mînaka xweya jorîn bi veavakirina çavkaniyê ya jêrîn bikar bînin:

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

Ev veavakirin mînakek hindiktirîn e Deployment, ku di komê de nginx pods birêve dibe. Wekî din, veavakirin çavkaniyê diyar dike Service, ya ku dikare were bikar anîn da ku bigihîje podên nginx di komekê de.

Di seranserê çerxê de, em ê dubare vê veavakirinê berfireh bikin da ku ew di dawiyê de hemî kapasîteyên ku Kubernetes peyda dike ji bo kêmkirina demdirêjiyê dihewîne.

Ji bo guhertoyek bi tevahî hatî bicîh kirin û ceribandin a nûvekirinên koma Kubernetes ji bo zewaca sifir li ser AWS û pê ve, biçin. Gruntwork.io.

Her weha gotarên din ên li ser bloga me bixwînin:

Source: www.habr.com

Add a comment