ProHoster > Блог > Nchịkwa > Mpịakọta Ephemeral nwere Nleba Ike Nchekwa: EmptyDir na Steroid
Mpịakọta Ephemeral nwere Nleba Ike Nchekwa: EmptyDir na Steroid
Ụfọdụ ngwa chọkwara ịchekwa data, mana ha nwere ntụsara ahụ na eziokwu ahụ bụ na agaghị echekwa data ahụ mgbe ịmalitegharịa.
Dịka ọmụmaatụ, ọrụ caching na-ejedebe site na RAM, mana ọ nwekwara ike ibugharị data nke a na-ejikarị eme ihe na nchekwa nke dị nwayọọ karịa RAM, na-enwe mmetụta dị nta na arụmọrụ zuru ezu. Ngwa ndị ọzọ kwesịrị ịma na enwere ike ịnwe ntinye naanị ọgụgụ na faịlụ, dị ka ntọala ma ọ bụ igodo nzuzo.
Kubernetes enweelarị ụdị dị iche iche mpịakọta ọnụ, mana ọrụ ha bụ naanị ihe etinyere na K8.
Ephemeral Mpịakọta CSI kwere ka ịgbatị Kubernetes na ndị ọkwọ ụgbọ ala CSI iji nye nkwado maka mpịakọta mpaghara dị fechaa. N'ụzọ dị otú a, ọ ga-ekwe omume iji ihe owuwu aka ike: ntọala, ihe nzuzo, data njirimara, mgbanwe, na ndị ọzọ. A ga-agbanwerịrị ndị ọkwọ ụgbọ ala CSI iji kwado atụmatụ Kubernetes a, ebe ọ bụ na a na-eche na ndị ọkwọ ụgbọ ala na-ahazi oge niile agaghị arụ ọrụ - mana a na-eche na enwere ike iji mpịakọta dị otú ahụ na ọnụ ọ bụla ahọpụtara maka pọd.
Nke a nwere ike ịbụ nsogbu maka mpịakọta na-eri akụrụngwa nnabata ma ọ bụ maka nchekwa nke dị naanị na ụfọdụ ndị ọbịa. Ọ bụ ya mere Kubernetes 1.19 ji ewebata njirimara olu ule alfa ọhụrụ abụọ nke yiri mpịakọta EmptyDir:
ebumnobi izugbe ọnụnụ ephemeral;
Nyocha ikike nchekwa CSI.
Uru nke ụzọ ọhụrụ a:
nchekwa nwere ike ịbụ mpaghara ma ọ bụ jikọọ site na netwọk;
mpịakọta nwere ike ịnwe oke a kapịrị ọnụ nke ngwa a enweghị ike gafere;
na-arụ ọrụ na ndị ọkwọ ụgbọ ala CSI ọ bụla na-akwado ịnye akwụkwọ mpịakọta na-adịgide adịgide yana (iji kwado ike nsuso) mejuputa oku a GetCapacity;
mpịakọta nwere ike ịnwe ụfọdụ data mbụ dabere na ọkwọ ụgbọ ala na ntọala;
A na-akwado ọrụ ọkọlọtọ niile nwere olu (ịmepụta foto, mezie nha, wdg);
enwere ike iji mpịakọta na njikwa ngwa ọ bụla na-anabata modul ma ọ bụ nkọwapụta olu;
Onye nhazi oge Kubernetes na-ahọrọ ọnụ ụzọ kwesịrị ekwesị n'onwe ya, yabụ na ọ dịghịzi mkpa ịnye na ịhazi ndọtị nhazi oge ma ọ bụ gbanwee webhooks.
Nhọrọ ngwa
Ya mere, mpịakọta ephemeral ebumnuche izugbe dabara adaba maka ikpe ojiji ndị a:
Ebe nchekwa na-adịgide adịgide dị ka nnọchi RAM maka memcached
Mwepụta kacha ọhụrụ nke memcached nkwado agbakwunyere iji ebe nchekwa na-adịgide adịgide (Intel Optane, wdg., ihe ruru. onye ntụgharị okwu) kama RAM oge niile. Mgbe ị na-ebuga memcached site na onye na-ahụ maka ngwa, ị nwere ike iji mpịakọta ephemeral ebumnuche izugbe na-arịọ ka ekenye oke nke nha enyere site na PMEM site na iji onye ọkwọ ụgbọ ala CSI, dịka ọmụmaatụ. PMEM-CSI.
Nchekwa mpaghara LVM dị ka oghere ọrụ
Ngwa ndị na-arụ ọrụ na data buru ibu karịa RAM nwere ike ịchọ nchekwa mpaghara nwere nha ma ọ bụ metrik arụmọrụ nke mpịakọta EmptyDir oge niile sitere na Kubernetes enweghị ike inye. Dịka ọmụmaatụ, maka ebumnuche a ka e dere ya TopoLVM.
Nweta naanị ọgụgụ maka mpịakọta data
Ekekọrịta olu nwere ike ime ka ịmepụta olu zuru oke mgbe:
Enwere ike itinye mpịakọta ndị a na ọnọdụ naanị ọgụgụ.
Olee otú nke a na-arụ ọrụ
Mpịakọta Ephemeral Nzube Izugbe
Akụkụ bụ isi nke mkpokọta mkpokọta ebumnuche izugbe bụ isi iyi olu ọhụrụ, EphemeralVolumeSource, nwere mpaghara niile iji mepụta arịrịọ olu (nke a na-akpọ arịrịọ olu na-adịgide adịgide, PVC). Onye njikwa ọhụrụ na kube-controller-manager na-ele anya na pọd ndị na-emepụta ụda olu dị otú ahụ, wee mepụta PVC maka pọd ndị ahụ. Maka onye ọkwọ ụgbọ ala CSI, arịrịọ a yiri nke ndị ọzọ, yabụ enweghị nkwado pụrụ iche achọrọ ebe a.
Ọ bụrụhaala na PVC ndị dị otú ahụ dị, enwere ike iji ha dị ka arịrịọ ọ bụla ọzọ na olu. Karịsịa, enwere ike ịkọwa ha dị ka isi iyi data mgbe ị na-edegharị olu ma ọ bụ na-emepụta foto site na olu. Ihe PVC nwekwara ọnọdụ olu ugbu a.
A kọwapụta aha PVC ndị emepụtara na-akpaghị aka: ha bụ nchikota nke aha pọd na aha olu, nke ejiri akara kewapụrụ. Aha ndị eburu ụzọ na-eme ka ọ dịrị gị mfe ịmekọrịta na PVC n'ihi na ịkwesighi ịchọ ya ma ọ bụrụ na ị maara aha pod na aha olu. Ihe dị ala bụ na aha ahụ nwere ike na-eji ya eme ihe, nke Kubernetes chọpụtara na n'ihi ya, a na-egbochi pods ịmalite.
Iji hụ na ehichapụ olu ya na pod, onye njikwa na-arịọ arịrịọ maka olu n'okpuru onye nwe ya. Mgbe ehichapụrụ pọd ahụ, usoro nchịkọta ihe mkpofu ọkọlọtọ na-arụ ọrụ, nke na-ehichapụ ma arịrịọ na olu.
Arịrịọ dakọtara site na ọkwọ ụgbọala nchekwa site na usoro nkịtị nke klaasị nchekwa ahụ. Agbanyeghị klaasị nwere njikọ ozugbo na mbubreyo (aka WaitForFirstConsumer) na-akwado, n'ihi na ephemeral mpịakọta ọ bụ ihe ezi uche na-eji WaitForFirstConsumer, mgbe ahụ, onye nhazi oge nwere ike ịtụle ma ojiji ọnụ na nnweta nchekwa mgbe ị na-ahọrọ ọnụ. Njirimara ọhụrụ pụtara ebe a.
Ndepụta ikike nchekwa
Na-emekarị onye nhazi oge amaghị ebe onye ọkwọ ụgbọ ala CSI ga-emepụta olu. Enweghịkwa ụzọ onye nhazi oge ga-esi kpọtụrụ onye ọkwọ ụgbọ ala ozugbo ịrịọ ozi a. Ya mere, onye na-eme nhazi na-eme ntuli aka ruo mgbe ọ chọtara otu nke enwere ike ịnweta mpịakọta (njide mbubreyo) ma ọ bụ hapụ nhọrọ nke ọnọdụ kpamkpam nye onye ọkwọ ụgbọ ala (njide ozugbo).
ọhụrụ APICSIStorageCapacity, nke dị na ọkwa alfa, na-enye ohere ka echekwara data dị mkpa na wdgd ka o wee dịrị onye nhazi oge. N'adịghị ka nkwado maka mkpokọta mkpokọta ebumnuche izugbe, mgbe ị na-ebuga onye ọkwọ ụgbọ ala, ị ga-emerịrị ike nsuso ikike nchekwa: external-provisioner kwesịrị ibipụta ozi ikike natara n'aka onye ọkwọ ụgbọ ala site na nkịtị GetCapacity.
Ọ bụrụ na onye nhazi oge kwesịrị ịhọrọ ọnụ maka pọd nwere olu na-adịghị agwụ agwụ nke na-eji njide mbubreyo, onye ọkwọ ụgbọ ala nyere aka n'oge a na-ebuga ya site na ịtọ ọkọlọtọ. CSIDriver.storageCapacity, mgbe ahụ a ga-atụfu ọnụ ọnụ ndị na-enweghị ikike nchekwa zuru oke na-akpaghị aka. Nke a na-arụ ọrụ maka ebumnuche izugbe na mpịakọta na-adịgide adịgide, mana ọ bụghị maka mpịakọta ephemeral CSI n'ihi na Kubernetes enweghị ike ịgụpụta paramịkọ ha.
Dị ka ọ dị na mbụ, a na-emepụta mpịakọta njikọ ozugbo tupu ahazi pods, onye ọkwọ ụgbọ ala na-ahọrọ ebe ha ga-edebe ya, yabụ mgbe ị na-ahazi ya. external-provisioner Site na ndabara, a na-amafe klaasị nchekwa nwere njide ozugbo, ebe ọ bụ na agaghị eji data a agbanyeghị.
Ebe ọ bụ na a na-amanye onye nhazi kubernetes ka ọ rụọ ọrụ na ozi nwere ike ịpụ, ọ nweghị nkwa na ikike ga-adị n'ọnọdụ ọ bụla mgbe a na-emepụta olu, mana ohere ọ ga-emepụta na-enweghị mbigharị na-abawanye.
NB Ị nwere ike nweta ozi zuru ezu karị, yana n'enweghị nsogbu "omume na nwamba guzoro", ma ọ bụrụ na ọnọdụ enweghị nghọta zuru oke, nweta enyemaka nkwado teknụzụ ruru eru na nkuzi kpụ ọkụ n'ọnụ - Kubernetes Base a ga-eme ya na Septemba 28-30, yana maka ndị ọkachamara dị elu karịa Kubernetes Mega Ọktoba 14–16.
Nche
Ike nchekwa CSIS
Ihe CSIStorageIke bi na oghere aha; mgbe ị na-atụgharị onye ọkwọ ụgbọ ala CSI ọ bụla n'aha nke ya, a na-atụ aro ka amachibido ikike RBAC na CSIStorageCapacity na oghere ahụ ebe ọ bụ na o doro anya na ebe data si abịa. Kubernetes anaghị enyocha nke a na agbanyeghị, a na-etinyekarị ndị ọkwọ ụgbọ ala n'otu aha aha, yabụ n'ikpeazụ a na-atụ anya na ndị ọkwọ ụgbọ ala ga-arụ ọrụ ma ghara ibipụta data ezighi ezi (na nke a bụ ebe kaadị m dara, ihe ruru. onye ntụgharị dabere na njakịrị afụ ọnụ)
Mpịakọta Ephemeral Nzube Izugbe
Ọ bụrụ na ndị ọrụ nwere ikike ịmepụta pọd (n'ụzọ ziri ezi ma ọ bụ na-apụtaghị ìhè), ha ga-enwekwa ike ịmepụta mkpokọta ephemeral ebumnuche izugbe ọbụlagodi na ha enweghị ikike ịmepụta arịrịọ na olu. Nke a bụ n'ihi na a na-etinye nlele ikike RBAC na njikwa na-emepụta PVC, ọ bụghị maka onye ọrụ. Nke a bụ isi mgbanwe ịgbakwunye na akaụntụ gị, tupu ị nweta njirimara a na ụyọkọ ebe ndị ọrụ enweghị ntụkwasị obi ekwesịghị inwe ikike ịmepụta mpịakọta.
Ihe nlele:
Kewapụ iche alaka PMEM-CSI nwere mgbanwe niile dị mkpa iji mee ụyọkọ Kubernetes 1.19 n'ime igwe mebere QEMU nwere njirimara niile dị na ọkwa alfa. Koodu ọkwọ ụgbọ ala agbanwebeghị, naanị nbunye gbanwere.
Na igwe dabara adaba (Linux, onye ọrụ nkịtị nwere ike iji Docker, lee ebe a nkọwa) iwu ndị a ga-ebulite ụyọkọ ahụ wee wụnye ọkwọ ụgbọala 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
Mgbe ihe niile na-arụ ọrụ, mmepụta ga-enwe ntụziaka maka ojiji:
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 -
Ihe CSIStorageIke ebughị n'obi ka mmadụ gụọ ya, yabụ achọrọ nhazi ụfọdụ. Ihe nzacha nke Golang ga-egosi klaasị nchekwa, ihe atụ a ga-egosi aha, topology na ikike:
Ka anyị nwaa imepụta ngwa ngosi nwere otu ebumnuche izugbe n'okwu ọnụ. Faịlụ ọdịnaya 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
Mgbe ịmepụtara, dị ka egosiri na ntuziaka ndị dị n'elu, anyị nwere ugbu a ọzọ pod na PVC:
$ 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
Ọ bụrụ na ngwa ọzọ chọrọ karịa 26620Mi, onye nhazi ahụ agaghị echebara ya echiche pmem-csi-pmem-govm-worker1 otu ọ dịla.
Kedu ihe ọzọ?
Atụmatụ abụọ a ka na-emepe emepe. Emeghere ọtụtụ ngwa n'oge ule alfa. Njikọ atụmatụ nkwalite ahụ na-edekọ ọrụ a ga-eme iji gaa na ọkwa beta, yana nke ọzọ echebaralarị ma jụ: