Txhim kho Kubernetes pawg yam tsis muaj sijhawm poob

Txhim kho Kubernetes pawg yam tsis muaj sijhawm poob

Txhim kho cov txheej txheem rau koj pawg Kubernetes

Qee lub sijhawm, thaum siv Kubernetes pawg, yuav tsum tau hloov kho cov kev khiav haujlwm. Qhov no yuav suav nrog kev hloov tshiab pob, hloov tshiab tshiab, lossis xa tawm cov duab tshiab ntawm lub tshuab virtual. Hauv Kubernetes terminology no hu ua "Voluntary Disruption".

Cov ncej no yog ib feem ntawm 4-post series:

  1. Qhov no ncej.
  2. Qhov raug kaw ntawm pods hauv Kubernetes pawg
  3. Ncua sijhawm ua tiav ntawm lub plhaub taum pauv thaum nws raug tshem tawm
  4. Yuav ua li cas kom tsis txhob Kubernetes Cluster Downtime Siv PodDisruptionBudgets

(kwv yees. Cia siab tias yuav muaj cov lus txhais ntawm cov khoom seem hauv cov yeeb yaj kiab yav tom ntej)

Hauv tsab xov xwm no, peb yuav piav qhia txhua yam cuab yeej uas Kubernetes muab kom ua tiav xoom downtime rau cov nodes khiav hauv koj pawg.

Txhais qhov teeb meem

Peb yuav siv txoj hauv kev tsis zoo thaum xub thawj, txheeb xyuas cov teeb meem thiab ntsuas qhov muaj feem cuam tshuam ntawm txoj hauv kev no, thiab tsim kev paub los daws txhua qhov teeb meem uas peb ntsib thoob plaws lub voj voog. Qhov tshwm sim yog qhov kev teeb tsa uas siv lub voj voog hooks, kev tshawb nrhiav kev npaj txhij, thiab Pod cuam tshuam nyiaj txiag kom ua tiav peb lub sijhawm poob qis.

Yuav pib peb txoj kev taug, cia peb ua ib qho piv txwv. Cia peb hais tias peb muaj Kubernetes pawg ntawm ob lub nodes, nyob rau hauv uas ib daim ntawv thov khiav nrog ob lub pods nyob tom qab. Service:

Txhim kho Kubernetes pawg yam tsis muaj sijhawm poob

Cia peb pib nrog ob lub pods nrog Nginx thiab Kev Pabcuam khiav ntawm peb ob lub Kubernetes pawg nodes.

Peb xav hloov kho kernel version ntawm ob tus neeg ua haujlwm ntawm peb pawg. Peb ua li no li cas? Ib qho kev daws teeb meem yooj yim yuav yog khau raj nodes tshiab nrog cov kev teeb tsa tshiab thiab tom qab ntawd kaw cov qub nodes thaum pib cov tshiab. Thaum qhov no yuav ua haujlwm, yuav muaj qee qhov teeb meem nrog txoj hauv kev no:

  • Thaum koj tua cov nodes qub, cov pods khiav ntawm lawv kuj yuav raug muab tua. Yuav ua li cas yog tias cov pods yuav tsum tau tshem tawm kom zoo nkauj kaw? Lub kaw lus virtualization koj siv yuav tsis tos kom cov txheej txheem ntxuav kom tiav.
  • Yuav ua li cas yog tias koj tua tag nrho cov nodes tib lub sijhawm? Koj yuav tau txais kev poob qis thaum lub pods txav mus rau cov nodes tshiab.

Peb xav tau ib txoj hauv kev los ua kom zoo nkauj txav cov pods los ntawm cov nodes qub thaum ua kom ntseeg tau tias tsis muaj ib qho ntawm peb cov neeg ua haujlwm cov txheej txheem ua haujlwm thaum peb hloov pauv cov node. Los yog thaum peb ua tiav qhov kev hloov pauv ntawm pawg, xws li hauv qhov piv txwv (uas yog, peb hloov VM cov duab), peb xav hloov cov ntawv thov los ntawm cov pob qub mus rau cov tshiab. Nyob rau hauv ob qho tib si, peb xav tiv thaiv cov pods tshiab los ntawm teem rau ntawm cov laus nodes, thiab ces tshem tawm tag nrho cov khiav pods ntawm lawv. Txhawm rau ua tiav cov hom phiaj no peb tuaj yeem siv cov lus txib kubectl drain.

Redistributing tag nrho cov pods los ntawm ib lub node

Kev khiav dej num tso cai rau koj rov faib tag nrho cov pods los ntawm lub node. Thaum lub sij hawm khiav dej num, lub node yog cim raws li unschedulable (chij NoSchedule). Qhov no tiv thaiv cov pods tshiab los ntawm nws. Tom qab ntawd ntws tawm pib tshem cov pods ntawm node, kaw cov ntim uas tam sim no khiav ntawm lub node los ntawm kev xa cov teeb liab TERM ntim rau hauv lub pod.

Txawm hais tias kubectl drain yuav ua tau ib txoj hauj lwm zoo ntawm kev tshem cov pods, muaj ob yam tseem ceeb uas yuav ua rau cov dej ntws tsis ua haujlwm:

  • Koj daim ntawv thov yuav tsum muaj peev xwm txiav tau zoo zoo thaum xa TERM teeb liab. Thaum cov pods raug ntiab tawm, Kubernetes xa cov teeb liab TERM ntim thiab tos kom lawv nres rau lub sijhawm teev tseg, tom qab ntawd, yog tias lawv tsis tau nres, nws txiav lawv yuam kev. Txawm li cas los xij, yog tias koj lub thawv tsis pom lub teeb liab kom raug, koj tseem tuaj yeem tua cov pods tsis raug yog tias lawv tab tom ua haujlwm tam sim no (piv txwv li, kev lag luam database tab tom ua haujlwm).
  • Koj poob tag nrho cov pods uas muaj koj daim ntawv thov. Tej zaum nws yuav tsis muaj nyob rau thaum cov thawv tshiab tau tso tawm ntawm cov nodes tshiab, lossis yog tias koj cov pods raug xa mus yam tsis muaj kev tswj hwm, lawv yuav tsis rov pib dua.

Zam kev poob qis

Txhawm rau txo qis qis qis los ntawm kev yeem cuam tshuam, xws li los ntawm kev khiav dej num ntawm lub node, Kubernetes muab cov kev xaiv tsis ua haujlwm hauv qab no:

Hauv seem ntawm cov koob, peb yuav siv cov Kubernetes cov yam ntxwv no los txo qhov cuam tshuam ntawm kev hloov pauv cov pods. Txhawm rau ua kom yooj yim ua raws li lub tswv yim tseem ceeb, peb yuav siv peb qhov piv txwv saum toj no nrog cov kev pabcuam hauv qab no:

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

Qhov kev teeb tsa no yog qhov piv txwv tsawg Deployment, uas tswj nginx pods hauv pawg. Tsis tas li ntawd, lub configuration piav txog cov peev txheej Service, uas tuaj yeem siv los nkag nginx pods hauv pawg.

Thoob plaws hauv lub voj voog, peb yuav rov ua dua qhov kev teeb tsa no kom nws thiaj li suav nrog txhua lub peev xwm Kubernetes muab los txo qis sijhawm.

Rau qhov ua tiav thiab kev sim version ntawm Kubernetes pawg hloov tshiab rau xoom downtime ntawm AWS thiab dhau mus, mus saib Gruntwork.io.

Kuj nyeem lwm cov ntawv hauv peb blog:

Tau qhov twg los: www.hab.com

Ntxiv ib saib