Khaws cov ntaub ntawv hauv Kubernetes pawg

Muaj ntau txoj hauv kev los teeb tsa cov ntaub ntawv khaws cia rau cov ntawv thov khiav ntawm Kubernetes pawg. Qee tus ntawm lawv twb dhau los lawm, lwm tus tau tshwm sim tsis ntev los no. Hauv tsab xov xwm no, peb yuav saib lub tswv yim ntawm peb txoj kev xaiv rau kev sib txuas ntawm cov khoom siv cia, suav nrog qhov tsis ntev los no - txuas ntawm Container Storage Interface.

Khaws cov ntaub ntawv hauv Kubernetes pawg

Txoj Kev 1: Qhia PV hauv lub pod manifest

Ib qho kev tshwm sim uas piav qhia txog lub pod hauv Kubernetes pawg:

Khaws cov ntaub ntawv hauv Kubernetes pawg

Qhov chaw ntawm qhov manifest uas piav qhia txog qhov ntim twg txuas thiab qhov twg yog qhov tseem ceeb hauv cov xim.

seem volumeMounts qhia cov ntsiab lus mount (mountPath) - nyob rau hauv uas cov ntawv teev npe hauv lub thawv yuav ntim mus tas li, nrog rau lub npe ntawm lub ntim.

seem x sau tag nrho cov ntim uas siv rau hauv lub plhaub. Qhia meej lub npe ntawm txhua lub ntim, nrog rau hom (hauv peb rooj plaub: awsElasticBlockStore) thiab qhov tsis sib txuas. Dab tsi tsis tau teev nyob rau hauv qhov manifest nyob ntawm qhov ntim hom.

Tib lub ntim tuaj yeem txuas ib txhij hauv ntau lub thawv ntim. Txoj kev no, cov txheej txheem thov sib txawv tuaj yeem nkag mus rau tib cov ntaub ntawv.

Txoj kev sib txuas no tau tsim nyob rau thaum pib, thaum Kubernetes tsuas yog nyob rau hauv nws cov me nyuam mos, thiab niaj hnub no txoj kev yog outdated.

Muaj ntau yam teeb meem thaum siv nws:

  1. tag nrho cov ntim yuav tsum tau tsim manually; Kubernetes tsis tuaj yeem tsim ib yam dab tsi rau peb;
  2. nkag tsis tau rau txhua lub ntim yog tshwj xeeb, thiab lawv yuav tsum tau teev nyob rau hauv manifests ntawm tag nrho cov pods uas siv lub ntim;
  3. hloov lub kaw lus cia (piv txwv li, txav los ntawm AWS rau Google Huab), koj yuav tsum tau hloov cov chaw thiab hom mounted ntim hauv txhua qhov tshwm sim.

Tag nrho cov no tsis yooj yim heev, yog li qhov tseeb no txoj kev siv los txuas tsuas yog qee yam tshwj xeeb ntawm ntim: configMap, zais cia, khoobDir, hostPath:

  • configMap thiab zais cia yog cov kev pabcuam ntim uas tso cai rau koj los tsim ib lub ntim nrog cov ntaub ntawv los ntawm Kubernetes manifests hauv ntim.

  • emptyDir yog ib ntus ntim, tsim tsuas yog rau lub neej ntawm lub pod. Yooj yim siv rau kev sim lossis khaws cov ntaub ntawv ib ntus. Thaum lub plhaub taum pauv, lub ntim khoobDir kuj tseem raug tshem tawm thiab tag nrho cov ntaub ntawv ploj.

  • hostPath - tso cai rau koj los txhim kho cov ntawv teev npe ntawm lub zos disk ntawm lub server uas daim ntawv thov khiav hauv lub thawv nrog daim ntawv thov, suav nrog /etc/kubernetes. Qhov no yog qhov tsis muaj kev nyab xeeb, yog li cov cai tswj kev nyab xeeb feem ntau txwv tsis pub siv cov ntim ntawm hom no. Txwv tsis pub, tus neeg tawm tsam daim ntawv thov yuav tuaj yeem txuas rau HTC Kubernetes cov npe hauv nws lub thawv thiab nyiag tag nrho cov ntawv pov thawj pawg. Feem ntau, hostPath ntim tsuas yog tso cai siv los ntawm cov ntawv thov kaw lus uas khiav hauv kube-system namespace.

Cov kab ke khaws cia uas Kubernetes ua haujlwm nrog tawm ntawm lub thawv tau muab rau hauv cov ntaub ntawv.

Txoj Kev 2. Kev sib txuas rau SC/PVC/PV hearths

Lwm txoj kev sib txuas yog lub tswv yim ntawm Chav Kawm Cia, PersistentVolumeClaim, PersistentVolume.

Chav kawm khaws cia khaws cov kev sib txuas tsis sib xws rau cov ntaub ntawv khaws cia.

PersistentVolumeClaim piav qhia txog qhov yuav tsum tau ua rau qhov kev thov xav tau.
PersistentVolume khw muag khoom nkag tsis tau thiab ntim raws li txoj cai.

Lub ntsiab lus ntawm lub tswv yim: nyob rau hauv lub pod manifest lawv qhia ib ntim ntawm hom PersistentVolumeClaim thiab qhia lub npe ntawm qhov chaw no nyob rau hauv lub claimName parameter.

Khaws cov ntaub ntawv hauv Kubernetes pawg

Lub PersistentVolumeClaim manifest piav qhia txog qhov yuav tsum tau muaj rau ntim cov ntaub ntawv uas daim ntawv thov xav tau. Xws li:

  • disk loj;
  • txoj kev nkag mus: ReadWriteOnce lossis ReadWriteMany;
  • txuas rau Chav Kawm Cia - nyob rau hauv uas cov ntaub ntawv khaws cia peb xav tsim lub ntim.

Cov chav kawm Storage manifest khaws cov hom thiab qhov tsis sib xws ntawm kev sib txuas rau lub kaw lus cia. Lub cubelet xav kom lawv mount lub ntim ntawm nws cov node.

PersistentVolume manifests qhia cov chav cia khoom thiab nkag tsis tau rau ib lub ntim tshwj xeeb (ntim ID, kab, thiab lwm yam).

Thaum tsim cov PVC, Kubernetes saib seb qhov ntim loj npaum li cas thiab qhov chaw khaws cia yuav tsum muaj, thiab xaiv qhov PersistentVolume dawb.

Yog tias cov PVs zoo li no tsis muaj, Kubernetes tuaj yeem tsim ib qho kev pabcuam tshwj xeeb - Tus Muab Kev Pabcuam (nws lub npe tau qhia hauv chav kawm Cia). Qhov kev pab cuam no txuas mus rau lub kaw lus cia, tsim ib lub ntim ntawm qhov yuav tsum tau muaj, tau txais ib tug identifier thiab tsim ib tug PersistentVolume manifest nyob rau hauv lub Kubernetes pawg, uas yog txuam nrog cov PersistentVolumeClaim.

Tag nrho cov txheej txheem no tso cai rau koj tshem tawm cov ntaub ntawv hais txog qhov chaw khaws cia uas daim ntawv thov ua haujlwm nrog los ntawm daim ntawv thov qhia theem mus rau qib tswj hwm.

Tag nrho cov kev txwv rau kev txuas mus rau cov ntaub ntawv khaws cia yog nyob rau hauv chav kawm Cia, uas cov thawj coj pawg yog lub luag haujlwm. Txhua yam koj yuav tsum tau ua thaum tsiv los ntawm AWS rau Google Huab yog hloov lub npe ntawm chav kawm Storage rau PVC hauv daim ntawv thov manifests. Persistance Volume rau cov ntaub ntawv khaws cia yuav raug tsim nyob rau hauv pawg cia li siv lub Provisioner program.

Txoj Kev 3: Thawv Cia Interface

Tag nrho cov cai uas cuam tshuam nrog ntau lub tshuab khaws cia yog ib feem ntawm Kubernetes core. Kev tso tawm ntawm kev kho kab mob lossis kev ua haujlwm tshiab yog khi rau kev tshaj tawm tshiab; cov cai yuav tsum tau hloov pauv rau txhua qhov kev txhawb nqa ntawm Kubernetes. Tag nrho cov no yog qhov nyuaj rau kev tswj hwm thiab ntxiv cov haujlwm tshiab.

Txhawm rau daws qhov teeb meem, cov tsim tawm los ntawm Cloud Foundry, Kubernetes, Mesos thiab Docker tsim lub Thawv Chaw Sib Tham (CSI) - qhov yooj yim sib koom ua ke uas piav qhia txog kev sib cuam tshuam ntawm lub thawv tswj kev tswj hwm thiab tus tsav tsheb tshwj xeeb (CSI Driver) uas ua haujlwm nrog ib qho tshwj xeeb. cia qhov system. Tag nrho cov cai rau kev sib cuam tshuam nrog cov tshuab khaws cia tau txav los ntawm Kubernetes core mus rau ib qho kev sib cais.

Container Storage Interface Documentation.

Feem ntau, CSI Tsav Tsheb muaj ob yam: Node Plugin thiab Controller plugin.

Node Plugin khiav ntawm txhua lub node thiab yog lub luag haujlwm rau mounting ntim thiab ua haujlwm ntawm lawv. Lub Controller plugin cuam tshuam nrog lub kaw lus cia: tsim lossis tshem tawm ntim, muab txoj cai nkag, thiab lwm yam.

Txog tam sim no, cov tsav tsheb qub tseem nyob hauv Kubernetes kernel, tab sis lawv tsis pom zoo kom siv thiab txhua tus tau qhia rau nruab CSI Driver tshwj xeeb rau cov kab ke uas lawv yuav ua haujlwm.

Kev tsim kho tshiab yuav ntshai cov neeg uas twb tau siv los teeb tsa cov ntaub ntawv khaws cia los ntawm Chav Kawm Cia, tab sis qhov tseeb tsis muaj dab tsi txaus ntshai tau tshwm sim. Rau cov programmers, tsis muaj dab tsi hloov pauv tiag tiag - lawv tau ua haujlwm tsuas yog nrog lub npe Cia chav kawm, thiab tseem yuav ua li ntawd. Rau cov thawj coj, daim duab qhia kev teeb tsa tau ntxiv thiab cov qauv ntawm cov chaw tau hloov pauv. Yog tias yav dhau los cov kev teeb tsa tau nkag ncaj qha rau hauv Chav Kawm Cia, tam sim no lawv yuav tsum xub muab tso rau hauv daim ntawv qhia, thiab tom qab ntawd hauv Chav Kawm Cia. Yog tias koj saib rau hauv nws, tsis muaj dab tsi phem tshwm sim.

Cia peb ua piv txwv los saib cov txiaj ntsig uas koj tuaj yeem tau txais los ntawm kev hloov mus rau kev sib txuas Ceph cia tshuab siv CSI tsav tsheb.

Thaum ua haujlwm nrog Ceph, CSI plugin muab ntau txoj kev xaiv rau kev ua haujlwm nrog cov tshuab cia ntau dua li cov tsav tsheb tsim.

  1. Dynamic disk creation. Feem ntau RBD disks tsuas yog siv hauv RWO hom, tab sis CSI rau Ceph tso cai rau lawv siv hauv RWX hom. Ntau lub pods ntawm cov nodes sib txawv tuaj yeem txhim kho tib lub RDB disk ntawm lawv cov nodes thiab ua haujlwm nrog lawv nyob rau tib lub sijhawm. Yuav kom ncaj ncees, tsis yog txhua yam yog qhov kaj - qhov disk no tsuas yog txuas nrog lub cuab yeej thaiv, uas txhais tau hais tias koj yuav tsum hloov kho daim ntawv thov ua haujlwm nrog nws hauv ntau hom kev nkag.
  2. Tsim snapshots. Hauv Kubernetes pawg, koj tuaj yeem tsim qhov tshwm sim nrog qhov yuav tsum tau ua kom pom cov duab thaij duab. CSI plugin yuav pom nws thiab thaij duab ntawm lub disk. Raws li nws, koj tuaj yeem ua ib qho thaub qab lossis ib daim qauv ntawm PersistentVolume.
  3. Ua kom loj dua disk ntawm kev cia thiab PersistentVolume hauv Kubernetes pawg.
  4. Quotas. Cov CephFS tsav tsheb tsim rau hauv Kubernetes tsis txhawb nqa quotas, tab sis tshiab CSI plugins nrog qhov tseeb Ceph Nautilus tuaj yeem pab tau quotas ntawm CephFS partitions.
  5. Kev ntsuas. Lub CSI plugin tuaj yeem muab Prometheus nrog ntau yam kev ntsuas txog qhov ntim twg txuas, kev sib txuas lus dab tsi tshwm sim, thiab lwm yam.
  6. Topology paub. Tso cai rau koj los qhia meej hauv qhov qhia tau tias pawg pawg tau faib li cas hauv thaj chaw, thiab tsis txhob txuas lub chaw cia khoom nyob hauv Amsterdam rau cov pods khiav hauv London.

Yuav ua li cas txuas Ceph mus rau Kubernetes pawg ntawm CSI, saib nyob rau hauv lub tswv yim ntawm Slurm yav tsaus ntuj tsev kawm ntawv qhuab qhia. Koj tuaj yeem sau npe rau Ceph video course, uas yuav pib rau lub Kaum Hlis 15th.

Tus sau tsab xov xwm: Sergey Bondarev, xyaum architect ntawm Southbridge, Certified Kubernetes Administrator, ib tug ntawm cov developers ntawm kubespray.

Ib me ntsis Post Scriptum tsis yog rau kev tshaj tawm, tab sis rau txiaj ntsig ...

P.S. Sergey Bondarev coj ob chav kawm hnyav: hloov kho Kubernetes Base Cuaj hlis 28-30 thiab nce qib Kubernetes Mega Kaum Hli 14–16.

Khaws cov ntaub ntawv hauv Kubernetes pawg

Tau qhov twg los: www.hab.com

Ntxiv ib saib