Sab saum toj 10 Kubernetes Tricks thiab Lub Tswv Yim

Sab saum toj 10 Kubernetes Tricks thiab Lub Tswv Yim

Muaj ntau cov ntaub ntawv siv hauv Is Taws Nem, tab sis qee zaum cov lus qhia yooj yim tshaj plaws yog qhov tseem ceeb tshaj. Pab neeg Kubernetes aaS los ntawm Mail.ru txhais ib tug xaiv ntawm kaum tricks thiab tswv yim, uas tus sau tsab xov xwm sau tom qab ib xyoos ntawm kev ua haujlwm nrog Kubernetes. Cov lus qhia tsis raug txheeb xyuas los ntawm qhov tseem ceeb, tab sis peb xav tias txhua tus yuav pom qee yam muaj txiaj ntsig rau lawv tus kheej.

Cov lus txib yooj yim tshaj plaws los ua haujlwm nrog Kubernetes

Pib nrog, tej zaum qhov yooj yim tshaj plaws thiab muaj txiaj ntsig zoo tshaj plaws hauv kev ua haujlwm nrog Kubernetes. Cov lus txib hauv qab no ua kom tiav cov lus txib kubectl hauv bash plhaub:

echo "source <(kubectl completion bash)" >> ~/.bashrc

Ua Fais Liab kubectl yuav sau rau .bashrc cov ntaub ntawv thiab yuav tau txais kev qhib txhua lub sij hawm lub plhaub pib. Qhov no ua kom nrawm rau kev ntaus ntawv ntev thiab tsis muaj xws li all-namespaces. Xav paub ntxiv hauv Kubernetes bash pab.

Default nco thiab CPU txwv nyob rau hauv lub namespace

Yog tias daim ntawv thov sau tsis raug, piv txwv li, nws qhib kev sib txuas tshiab rau cov ntaub ntawv txhua ob tab sis tsis kaw nws, ces pawg muaj lub cim xeeb xau. Thiab yog tias daim ntawv thov tsis muaj lub cim xeeb txwv thaum lub sij hawm xa mus, qhov no tuaj yeem ua rau muaj qhov tsis ua haujlwm.

Txhawm rau tiv thaiv qhov no, Kubernetes tso cai rau koj los teeb tsa cov kev txwv tsis pub dhau ntawm ib-namespace. Lawv tau sau rau hauv yaml cov ntaub ntawv rau ib lub npe tshwj xeeb. Nov yog ib qho piv txwv ntawm cov ntaub ntawv zoo li no:

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
  - default:
      memory: 512Mi
    defaultRequest:
      memory: 256Mi
    type: Container

Tsim cov yaml no thiab siv rau txhua lub npe. Piv txwv li, rau lub npe chaw limit-example. Tam sim no txhua lub thawv xa tawm hauv lub npe no yuav muaj qhov txwv ntawm 512Mi, tshwj tsis yog lwm tus neeg txwv tsis pub ntxiv rau lub thawv no.

Kev sau khib nyiab hauv cov laus versions ntawm Kubernetes

Kubelet los ntawm lub neej ntawd pib sau cov khib nyiab thaum var/lib/docker occupies 90% ntawm qhov chaw disk muaj. Qhov no zoo heev, txawm li cas los xij, kom txog rau thaum Kubernetes 1.7 tsis muaj qhov txwv tsis pub siv rau ntawm cov inodes siv, uas sib haum rau cov ntaub ntawv hauv cov ntaub ntawv.

Tej zaum koj lub thawv var/lib/docker tsuas yog siv 50% ntawm qhov chaw disk, tab sis yuav khiav tawm ntawm inodes, uas yuav ua rau muaj teeb meem rau cov neeg ua haujlwm.

Nyob rau hauv cov laus versions ntawm kubelet los ntawm 1.4 mus rau 1.6 koj yuav tau ntxiv tus chij no:

--eviction-hard
=memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%

Hauv 1.7 thiab tom qab versions tus chij no tau teeb tsa los ntawm lub neej ntawd. Txawm li cas los xij, yav dhau los versions tsis saib xyuas qhov txwv inode.

Minikube... me me tab sis muaj zog hauv zos Kubernetes

Minikube yog txoj hauv kev yooj yim tshaj plaws los khiav lub zos Kubernetes pawg. Nws yog launched nrog ib tug yooj yim hais kom ua:

minikube start

Khiav cov lus txib no ua rau Kubernetes pawg ua haujlwm tiag tiag ntawm koj lub tshuab.

Sab saum toj 10 Kubernetes Tricks thiab Lub Tswv Yim
Daim duab qhov chaw

Qhov ua kom yuam kev yog yuav ua li cas tsim daim ntawv thov thiab khiav nws hauv zos ntawm pawg ntawd. Tshwj tsis yog tau qhia tshwj xeeb, Docker duab yuav tsim rau hauv koj lub computer thiab tsis nyob hauv pawg.

Txhawm rau yuam Docker thawb cov duab mus rau Kubernetes pawg hauv zos, lub tshuab docker tau muab cov lus txib hauv qab no:

eval $(minikube docker-env)

Tam sim no peb tuaj yeem tsim cov ntawv thov ntawm Kubernetes pawg hauv zos.

Tsis txhob muab kubectl nkag rau txhua tus

Qhov no zoo li pom tseeb, tab sis yog tias ntau pab pawg siv tib pawg rau lawv cov ntawv thov (uas yog qhov Kubernetes tau tsim rau), koj yuav tsum tsis txhob muab rau txhua tus. kubectl. Nws yog qhov zoo dua los cais cov lus txib, muab txhua tus ntawm lawv tus kheej lub npe chaw thiab txwv kev nkag mus siv RBAC cov cai.

Koj tuaj yeem tsis meej pem los ntawm kev muab txoj cai nkag mus, nyeem, tsim, rho tawm thiab lwm yam haujlwm rau txhua lub pod. Tab sis qhov tseem ceeb tshaj plaws yog txwv tsis pub nkag mus rau cov lus zais, cia nws tsuas yog rau cov thawj coj. Txoj kev no peb yuav sib txawv ntawm cov uas tuaj yeem tswj hwm pawg thiab cov uas tuaj yeem xa mus rau nws.

Tswj Pod Budgets

Yuav ua li cas kom tsis txhob muaj sijhawm poob rau daim ntawv thov hauv Kubernetes pawg? PodDisruptionBudget thiab dua PodDisruptionBudget.

Cov pawg tau hloov kho ib ntus thiab cov nodes yog khoob. Tsis muaj dab tsi nyob twj ywm, qhov ntawd yog qhov tseeb. Txhua qhov kev xa tawm nrog ntau dua ib qho piv txwv yuav tsum suav nrog PDB (PodDisruptionBudget). Nws yog tsim nyob rau hauv cov ntaub ntawv yaml yooj yim uas yog siv rau pawg. Qhov kev pab them nqi ntawm ib qho PDB yog txiav txim los ntawm cov neeg xaiv daim ntawv lo.

Nco ntsoov: Cov peev nyiaj PDB raug coj mus rau hauv tus account tsuas yog thaum kev ua txhaum cai peev nyiaj rov qab tau (kev yeem cuam tshuam). Hauv cov xwm txheej zoo li kho vajtse tsis ua haujlwm, PDB yuav tsis ua haujlwm.

Piv txwv li PDB:

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: app-a-pdb
spec:
  minAvailable: 2
  selector:
      matchLabels:
        app: app-a

Ob lub ntsiab parameter yog matchLabels ΠΈ minAvailable. Thawj qhov ntsuas qhia tau hais tias qhov kev siv nyiaj txiag siv rau. Piv txwv li, yog tias kuv muaj kev xa mus nrog cov ntawv sau app: app-a ΠΈ app: app-b, ces PDB no tsuas yog siv rau thawj tus xwb.

Parameter minAvailable coj mus rau hauv tus account thaum tshem tawm (ntxuav) lub node. Piv txwv li, hauv peb qhov piv txwv, thaum lub sij hawm nchuav tag, txhua yam raug tshem tawm app: app-a,ex ob.

Qhov no tso cai rau koj los tswj pes tsawg zaus ntawm daim ntawv thov yuav tsum tau khiav ntawm lub sijhawm twg los tau.

Daim ntawv thov kev saib xyuas kev noj qab haus huv

Kev soj ntsuam zoo li no tuaj yeem ua tau ob txoj hauv kev: siv Kev Ntsuas Kev Ntsuas lossis Kev Ntsuas Kev Ua Neej.

Thawj qhov kev sojntsuam (kev npaj) txiav txim siab lub thawv ntim kom tau txais kev thauj mus los.

Qhov thib ob (liveness) qhia seb lub thawv puas noj qab nyob zoo lossis yuav tsum tau rov pib dua.

Cov kev teeb tsa cuam tshuam tsuas yog ntxiv rau yaml rau kev xa tawm. Nyob ntawd koj tuaj yeem qhia lub sijhawm ncua sijhawm, ncua sij hawm thiab tus lej ntawm kev rov sim dua. Saib cov ntsiab lus ntxiv txog lawv Kubernetes cov ntaub ntawv.

Cov cim muaj nyob txhua qhov chaw

Cov ntawv lo yog ib lub ntsiab lus tseem ceeb hauv Kubernetes. Lawv tso cai rau cov khoom sib txuas lus ywj pheej, nrog rau tsim cov lus nug raws li cov ntawv sau. Hauv Kubernetes, koj tuaj yeem mus rau tus neeg siv khoom thiab saib cov xwm txheej rau cov cim tshwj xeeb.

Koj tuaj yeem ua txhua yam nrog cov cim npe, tab sis qhov piv txwv zoo yuav tsim ntau qhov chaw los khiav cov kev pab cuam ntawm tib pawg.

Wb hais tias koj siv tib pawg rau dev ΠΈ qa. Qhov no txhais tau tias koj tuaj yeem muaj daim ntawv thov app-a, ib txhij ua hauj lwm nyob rau hauv ob qho tib si ib puag ncig qa ΠΈ dev. Hauv qhov no, peb tuaj yeem cais nkag mus rau hauv daim ntawv thov piv txwv hauv ib puag ncig tshwj xeeb los ntawm kev qhia qhov tsim nyog environmentCov. Piv txwv app: app-a ΠΈ environment: dev rau ib puag ncig, thiab app: app-a ΠΈ environment: qa rau qhov thib ob.

Qhov no tso cai rau koj nkag mus rau ob qho xwm txheej ntawm daim ntawv thov, piv txwv li, ua kev sim ib txhij.

Npaj kom txhij

Kubernetes yog lub kaw lus muaj zog heev, tab sis txhua qhov system tuaj yeem ua rau muaj kev cuam tshuam nrog ntau cov txheej txheem. Kubelet khiav tag nrho cov txheej txheem thiab xyuas koj qhia, nrog rau nws tus kheej.

Tau kawg, ib qho kev pabcuam menyuam ntsuag yuav tsis ua rau lub cev ua haujlwm qeeb, thiab Kubernetes yog tsim los ntsuas los ntawm av. Tab sis yog tias tsis yog ib qho kev pab cuam ib lab tshwm sim, kubelet pib choke.

Yog tias vim li cas koj rho tawm kev xa tawm (lub thawv, duab, txawm li cas los xij), tsuas yog ua kom tiav kev tu kom tiav.

Ntsib Mus

Peb khaws cov lus qhia tseem ceeb rau zaum kawg. Kawm Go programming lus.

Kubernetes yog tsim nyob rau hauv Go, txhua qhov txuas ntxiv tau sau rau hauv Go, thiab cov neeg siv khoom mus rau lub tsev qiv ntawv kuj tau txais kev txhawb nqa.

Nws tuaj yeem siv rau cov khoom sib txawv thiab nthuav. Piv txwv li, kom nthuav dav Kubernetes system rau koj saj. Yog li, koj tuaj yeem siv koj tus kheej cov kev pabcuam los sau cov ntaub ntawv, xa cov ntawv thov, lossis tsuas yog ntxuav cov thawv.

Kawm Go programming lus thiab kev paub cov neeg siv-mus yog tej zaum cov lus qhia tseem ceeb tshaj plaws uas koj tuaj yeem muab rau cov neeg siv Kubernetes tshiab.

Txhais nrog kev txhawb nqa ntawm Mail.ru Huab Solutions

Dab tsi ntxiv nyeem:

  1. Peb theem ntawm autoscaling hauv Kubernetes thiab yuav siv lawv li cas.
  2. Cov neeg ua haujlwm Kubernetes: ntau qhov me me lossis ob peb qhov loj?
  3. 25 Cov cuab yeej siv tau zoo rau kev xa tawm thiab tswj Kubernetes.

Tau qhov twg los: www.hab.com

Ntxiv ib saib