ProHoster > Blog > Tsamaiso > Li-Volumes tsa Ephemeral tse nang le Ts'ebetso ea Bokhoni ba ho Boloka: EmptyDir ho Steroids
Li-Volumes tsa Ephemeral tse nang le Ts'ebetso ea Bokhoni ba ho Boloka: EmptyDir ho Steroids
Lisebelisoa tse ling le tsona li hloka ho boloka data, empa li phutholohile ka taba ea hore data e ke ke ea bolokoa kamora ho qala bocha.
Mohlala, lits'ebeletso tsa caching li lekanyelitsoe ke RAM, empa hape li ka tsamaisa data e sa sebelisoeng hangata ho boloka e liehang ho feta RAM, e nang le tšusumetso e nyane ts'ebetsong ka kakaretso. Lisebelisoa tse ling li hloka ho elelloa hore ho ka ba le ho kenya feela lifaeleng, joalo ka li-setting kapa linotlolo tsa lekunutu.
Kubernetes e se e na le mefuta e mengata meqolo ea ephemeral, empa tshebetso ya tsona e lekanyeditswe ho tse kenngwa tshebetsong ho K8s.
Ephemeral Litefiso tsa CSI e lumelletse Kubernetes hore e atolosoe le bakhanni ba CSI ho fana ka tšehetso bakeng sa meqolo e bobebe ea lehae. Ka tsela ena e ka sebelisoa meaho e se nang mabaka: litlhophiso, liphiri, lintlha tsa boitsebiso, mefuta-futa, joalo-joalo. Bakhanni ba CSI ba tlameha ho fetoloa ho tšehetsa tšobotsi ena ea Kubernetes, kaha ho nahanoa hore bakhanni ba tloaelehileng ba tloaelehileng ba ke ke ba sebetsa - empa ho nahanoa hore mefuta e joalo e ka sebelisoa ho node leha e le efe e khethiloeng bakeng sa pod.
Sena e ka 'na ea e-ba bothata bakeng sa li-volumes tse jang lisebelisoa tsa bohlokoa tsa baeti kapa bakeng sa polokelo e fumanehang feela ho batho ba bang. Ke ka lebaka leo Kubernetes 1.19 e hlahisang likarolo tse peli tse ncha tsa tlhahlobo ea alpha tse ts'oanang le meqolo ea EmptyDir:
sepheo se akaretsang meqolo ea ephemeral;
Tlhokomelo ea bokhoni ba polokelo ea CSI.
Melemo ea mokhoa o mocha:
polokelo e ka ba ea lehae kapa ea hokahanngoa ka marang-rang;
meqolo e ka ba le boholo bo boletsoeng bo ke keng ba fetisoa ke kopo;
e sebetsa le bakhanni leha e le bafe ba CSI ba tšehetsang phano ea melumo e tsitsitseng le (ho tšehetsa ho lateloa ha bokhoni) ho kenya tšebetsong mohala. GetCapacity;
meqolo e kanna ea ba le data ea pele ho latela mokhanni le litlhophiso;
lits'ebetso tsohle tse tloaelehileng tse nang le molumo (ho etsa setšoantšo, ho fetola boholo, joalo-joalo) lia tšehetsoa;
meqolo e ka sebelisoa le molaoli ofe kapa ofe oa kopo o amohelang mojule kapa litlhaloso tsa molumo;
Sehlophisi sa Kubernetes se ikhethela li-node tse loketseng ka botsona, ka hona ha ho sa na tlhoko ea ho fana le ho hlophisa likeketso tsa kemiso kapa ho fetola li-webhooks.
Likhetho tsa kopo
Ka hona, li-ephemeral volume volumes li loketse linyeoe tse latelang tsa tšebeliso:
Memori e tsitsitseng e le sebaka sa RAM bakeng sa memcached
Litokollo tsa morao-rao tsa memcached tlatsetso ya tshehetso ho sebelisa mohopolo o tsitsitseng (Intel Optane, joalo-joalo, hoo e ka bang. mofetoleli) sebakeng sa RAM e tloaelehileng. Ha o tsamaisa memcached ka molaoli oa ts'ebeliso, o ka sebelisa li-volumes tsa ephemeral tsa sepheo se akaretsang ho kopa hore boholo bo fanoeng bo abeloe ho tsoa ho PMEM ho sebelisoa mokhanni oa CSI, mohlala. PMEM-CSI.
LVM polokelo ea lehae e le sebaka sa ho sebetsa
Lisebelisoa tse sebetsang ka data e kholo ho feta RAM li ka hloka polokelo ea lehae e nang le boholo kapa metrics ea ts'ebetso eo melumo e tloaelehileng ea EmptyDir e tsoang ho Kubernetes e ke keng ea fana ka eona. Ka mohlala, ka morero ona ho ne ho ngotsoe TopoLVM.
Ho fihlella ho bala feela bakeng sa meqolo ea data
Kabo ea molumo e ka etsa hore ho thehoe molumo o felletseng ha:
Meqolo ena e ka kenngoa ka mokhoa oa ho bala feela.
Joang mosebetsing ona
Kakaretso ea Ephemeral Volumes
Karolo e ka sehloohong ea sepheo se akaretsang sa li-ephemeral volumes ke mohloli o mocha oa molumo, EphemeralVolumeSource, e nang le likarolo tsohle tsa ho etsa kopo ea molumo (eo pele e neng e bitsoa kopo ea molumo o tsitsitseng, PVC). Mookameli e mocha ka kube-controller-manager e sheba li-pods tse hlahisang mohloli o joalo oa molumo, ebe o etsa PVC bakeng sa li-pods tseo. Bakeng sa mokhanni oa CSI, kopo ena e shebahala e tšoana le tse ling, kahoo ha ho na tšehetso e khethehileng e hlokahalang mona.
Ha feela li-PVC tse joalo li ntse li le teng, li ka sebelisoa joalo ka likopo tse ling tsa molumo. Haholo-holo, li ka hlalosoa e le mohloli oa data ha u kopitsa molumo kapa u etsa setšoantšo se tsoang ho molumo. Ntho ea PVC e boetse e na le boemo ba hona joale ba molumo.
Mabitso a li-PVC tse entsoeng ka boits'oaro a hlalositsoe esale pele: ke motsoako oa lebitso la pod le lebitso la molumo, a arohanngoa ke hyphen. Mabitso a boletsoeng esale pele a etsa hore ho be bonolo ho sebelisana le PVC hobane ha ho hlokahale hore u e batle haeba u tseba lebitso la pod le lebitso la molumo. Taba e nyahamisang ke hore e kanna eaba lebitso le se le ntse le sebelisoa, le bonoang ke Kubernetes mme ka lebaka leo pod e thibetsoe ho qala.
Ho etsa bonnete ba hore molumo o tlosoa hammoho le pod, molaoli o etsa kopo ho molumo tlas'a mong'a lona. Ha pod e hlakotsoe, mokhoa o tloaelehileng oa ho bokella litšila o sebetsa, o hlakola kopo le molumo.
Likōpo li tsamaisana le mokhanni oa polokelo ka mochine o tloaelehileng oa sehlopha sa polokelo. Leha litlelase li na le tlamo ea hang-hang le ea morao-rao (aka WaitForFirstConsumer) li tšehetsoa, bakeng sa meqolo ea ephemeral hoa utloahala ho sebelisoa WaitForFirstConsumer, joale mohlophisi a ka nahana ka tšebeliso ea li-node le ho fumaneha ha polokelo ha a khetha node. Karolo e ncha e hlaha mona.
Pokello ea Bokhoni ba polokelo
Ka tloaelo mohlophisi ha a tsebe hore na mokhanni oa CSI o tla etsa molumo hokae. Hape ha ho na mokhoa oa hore mohlophisi a iteanye le mokhanni ka kotloloho ho kopa tlhahisoleseling ena. Ka hona, li-node tsa mohlophisi oa likhetho ho fihlela a fumana e 'ngoe eo ho eona ho ka fihleloang meqolo (e tlamang ka morao ho nako) kapa e siea khetho ea sebaka ka ho feletseng ho mokhanni (ho tlama hang-hang).
E ncha APICSIStorageCapacity, e leng sethaleng sa alpha, e lumella data e hlokahalang hore e bolokoe ho joalo-joalo e le hore e fumanehe ho mohlophisi. Ho fapana le ts'ehetso ea merero e akaretsang ea ephemeral, ha o tsamaisa mokhanni, o tlameha ho etsa hore ho latele bokhoni ba polokelo: external-provisioner e lokela ho phatlalatsa tlhahisoleseding ya bokgoni e fumanweng ho tswa ho mokganni ka tsela e tlwaelehileng GetCapacity.
Haeba mohlophisi a hloka ho khetha node bakeng sa pod e nang le molumo o sa tlamisoeng o sebelisang ho tlama ha morao, 'me mokhanni o nolofalitse tšobotsi ena nakong ea ho tsamaisoa ka ho beha folakha. CSIDriver.storageCapacity, joale li-node tse se nang matla a lekaneng a ho boloka li tla lahloa ka bohona. Sena se sebetsa molemong oa kakaretso oa li-ephemeral le tse phehellang, empa eseng bakeng sa li-volumes tsa CSI ephemeral hobane li-parameter tsa tsona li ke ke tsa baloa ke Kubernetes.
Joalo ka tloaelo, li-volumes tse hokahantsoeng hang-hang li bōptjoa pele li-pods li reriloe, 'me ho beoa ha tsona ho khethoa ke mokhanni oa polokelo, kahoo ha ho etsoa litokisetso. external-provisioner Ka mokhoa o ts'oanelang, litlelase tsa polokelo tse tlamang hanghang lia tloloa, kaha data ena e ke ke ea sebelisoa.
Kaha mohlophisi oa kubernetes o qobelloa ho sebetsa ka boitsebiso bo ka 'nang ba e-ba teng, ha ho na tiiso ea hore bokhoni bo tla ba teng maemong ohle ha molumo o bōptjoa, empa menyetla ea hore e tla bōptjoa ntle le ho leka hape e ntse e eketseha.
NB U ka fumana lintlha tse qaqileng haholoanyane, hammoho le ho "itloaetsa holima likatse" ka mokhoa o sireletsehileng, 'me haeba boemo bo sa utloisisoe ka ho feletseng, fumana thuso e tšoanelehang ea tšehetso ea tekheniki lithutong tse matla - Kubernetes Base e tla tšoaroa ka la 28-30 Loetse, le bakeng sa litsebi tse tsoetseng pele Kubernetes Mega October 14-16.
Tshireletso
CSIstorageCapacity
Lintho tsa CSIStorageCapacity li lula libakeng tsa mabitso; ha o tsamaisa mokhanni e mong le e mong oa CSI sebakeng sa hae sa mabitso, ho khothaletsoa ho thibela litokelo tsa RBAC ho CIStorageCapacity sebakeng seo kaha ho hlakile hore na data e tsoa hokae. Kubernetes ha e hlahlobe sena, 'me hangata bakhanni ba beoa sebakeng se le seng sa mabitso, kahoo qetellong bakhanni ba lebelletsoe ho sebetsa le ho se phatlalatse data e fosahetseng (mme ke moo karete ea ka e hlolehileng, hoo e ka bang. mofetoleli e thehiloeng motlae oa litelu)
Kakaretso ea Ephemeral Volumes
Haeba basebelisi ba na le litokelo tsa ho etsa pod (ka ho toba kapa ka tsela e sa tobang), ba tla boela ba khone ho etsa merero e akaretsang ea ephemeral esita le haeba ba se na litokelo tsa ho etsa kopo ka molumo. Lebaka ke hobane licheke tsa tumello ea RBAC li sebelisoa ho molaoli ea etsang PVC, eseng mosebelisi. Ena ke phetoho e kholo ea ho eketsa akhaonteng ya hao, pele o nolofalletsa tšobotsi ena ho lihlopha moo basebelisi ba sa tšepahaleng ba sa lokelang ho ba le litokelo tsa ho etsa meqolo.
Mohlala:
Arohane lekala PMEM-CSI e na le liphetoho tsohle tse hlokahalang ho tsamaisa sehlopha sa Kubernetes 1.19 ka har'a mechini ea sebele ea QEMU e nang le likarolo tsohle tse sethaleng sa alpha. Khoutu ea mokhanni ha e so fetohe, ho romelloa feela ho fetohile.
Mochineng o loketseng (Linux, mosebelisi ea tloaelehileng a ka o sebelisa Docker, sheba mona lintlha) litaelo tsena li tla hlahisa sehlopha le ho kenya mokhanni oa PMEM-CSI:
git clone --branch=kubernetes-1-19-blog-post https://github.com/intel/pmem-csi.git
cd pmem-csi
export TEST_KUBERNETES_VERSION=1.19 TEST_FEATURE_GATES=CSIStorageCapacity=true,GenericEphemeralVolume=true TEST_PMEM_REGISTRY=intel
make start && echo && test/setup-deployment.sh
Ka mor'a hore ntho e 'ngoe le e' ngoe e sebetse, tlhahiso e tla ba le litaelo tsa tšebeliso:
The test cluster is ready. Log in with [...]/pmem-csi/_work/pmem-govm/ssh.0, run
kubectl once logged in. Alternatively, use kubectl directly with the
following env variable:
KUBECONFIG=[...]/pmem-csi/_work/pmem-govm/kube.config
secret/pmem-csi-registry-secrets created
secret/pmem-csi-node-secrets created
serviceaccount/pmem-csi-controller created
...
To try out the pmem-csi driver ephemeral volumes:
cat deploy/kubernetes-1.19/pmem-app-ephemeral.yaml |
[...]/pmem-csi/_work/pmem-govm/ssh.0 kubectl create -f -
CSIStorageCapacity lintho ha lia rereloa ho baloa ke batho, kahoo ts'ebetso e itseng ea hlokahala. Li-filters tsa template tsa Golang li tla bontša lihlopha tsa polokelo, mohlala ona o tla bontša lebitso, topology le bokhoni:
Ha re leke ho theha sesebelisoa sa demo se nang le sepheo se le seng se akaretsang sa molumo oa ephemeral. Litaba tsa faele pmem-app-ephemeral.yaml:
# This example Pod definition demonstrates
# how to use generic ephemeral inline volumes
# with a PMEM-CSI storage class.
kind: Pod
apiVersion: v1
metadata:
name: my-csi-app-inline-volume
spec:
containers:
- name: my-frontend
image: intel/pmem-csi-driver-test:v0.7.14
command: [ "sleep", "100000" ]
volumeMounts:
- mountPath: "/data"
name: my-csi-volume
volumes:
- name: my-csi-volume
ephemeral:
volumeClaimTemplate:
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 4Gi
storageClassName: pmem-csi-sc-late-binding
Kamora ho bopa, joalo ka ha ho bonts'itsoe litaelong tse kaholimo, joale re na le pod le PVC e eketsehileng:
$ kubectl get pods/my-csi-app-inline-volume -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
my-csi-app-inline-volume 1/1 Running 0 6m58s 10.36.0.2 pmem-csi-pmem-govm-worker1 <none> <none>
$ kubectl get pvc/my-csi-app-inline-volume-my-csi-volume
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
my-csi-app-inline-volume-my-csi-volume Bound pvc-c11eb7ab-a4fa-46fe-b515-b366be908823 4Gi RWO pmem-csi-sc-late-binding 9m21s
Haeba sesebelisoa se seng se hloka ho feta 26620Mi, mohlophisi a ke ke a e ela hloko pmem-csi-pmem-govm-worker1 boemong ba ka.
Ke'ng e latelang?
Likarolo tseo ka bobeli li ntse li ntlafatsoa. Lisebelisoa tse 'maloa li ile tsa buloa nakong ea tlhahlobo ea alpha. Tlhahiso ea ntlafatso e hokahanya tokomane ea mosebetsi o lokelang ho etsoa ho ea sethaleng sa beta, hammoho le hore na ke mekhoa efe e meng e seng e nahanoe le ho hanoa: