په عموم ډول مهالویش کونکی پدې نه پوهیږي چې چیرې د CSI ډرایور به حجم رامینځته کړي. د مهالویش کونکي لپاره هیڅ لاره هم شتون نلري چې د دې معلوماتو غوښتنه کولو لپاره مستقیم له ډرایور سره اړیکه ونیسي. له همدې امله، مهالویش کوونکی تر هغه وخته پورې ټولپوښتنه کوي تر څو چې یو داسې ونه موندل شي چې په کومو حجمونو ته لاسرسی پیدا کیدی شي (ناوخته پابند) یا د ځای انتخاب په بشپړه توګه ډرایور ته پریږدي (سمدستي پابند).
نوی APICSIStorageCapacity، کوم چې په الفا مرحله کې دی ، اړین معلومات په etcd کې زیرمه کولو ته اجازه ورکوي ترڅو دا مهالویش کونکي ته شتون ولري. د عمومي هدف لنډمهاله حجمونو لپاره د ملاتړ برخلاف ، کله چې تاسو ډرایور ځای په ځای کړئ ، تاسو باید د ذخیره کولو ظرفیت تعقیب فعال کړئ: external-provisioner باید د ډرایور څخه ترلاسه شوي ظرفیت معلومات په نورمال ډول خپاره کړي GetCapacity.
که مهالویش کونکی اړتیا ولري د پوډ لپاره یو نوډ غوره کړي چې د غیر محدود حجم سره وي چې ناوخته پابندۍ کاروي ، او ډرایور د بیرغ په ترتیب کولو سره د ځای په ځای کولو پرمهال دا خصوصیت فعال کړی. CSIDriver.storageCapacity، بیا نوډونه چې د ذخیره کولو کافي ظرفیت نلري په اوتومات ډول له مینځه وړل کیږي. دا دواړه د عمومي هدف لنډمهاله او دوامداره حجمونو لپاره کار کوي ، مګر د CSI لنډمهاله حجمونو لپاره نه ځکه چې د دوی پیرامیټرې د کوبرنیټس لخوا نشي لوستل کیدی.
د معمول په څیر، سمدلاسه تړل شوي حجمونه مخکې له دې چې پوډونه مهالویش شي رامینځته کیږي، او د دوی ځای پرځای کول د ذخیره ډرایور لخوا غوره کیږي، نو کله چې تنظیم کول external-provisioner د ډیفالټ په واسطه، د سمدستي پابندۍ سره د ذخیره کولو ټولګي پریښودل شوي، ځکه چې دا ډاټا به په هیڅ صورت کې نه کارول کیږي.
څرنګه چې د کبرنیټس مهالویش کونکی مجبور دی چې د احتمالي تاریخ څخه تیر شوي معلوماتو سره کار وکړي ، هیڅ تضمین شتون نلري چې ظرفیت به په هر حالت کې شتون ولري کله چې حجم رامینځته کیږي ، مګر دا چانس چې دا به د بیا تکرار پرته رامینځته شي بیا هم ډیر شوي.
NB تاسو کولی شئ نور تفصيلي معلومات ترلاسه کړئ، په بیله بیا په خوندي توګه "د پیشوګانو په موقف کې تمرین وکړئ"، او د بشپړ نه پوهیدو وړ وضعیت په صورت کې، په جدي کورسونو کې د وړ تخنیکي مالتړ مرستې ترلاسه کړئ - د کوبرنیټس بیس به د سپتمبر په 28-30 کې ترسره شي، او د نورو پرمختللو متخصصینو لپاره Kubernetes Mega د اکتوبر 14-16
امنیت
CSISstorageCapacity
د CSIStorageCapacity توکي په نوم ځایونو کې اوسیږي؛ کله چې هر CSI ډرایور په خپل نوم ځای کې راوباسي، نو سپارښتنه کیږي چې په هغه ځای کې د CSIStorageCapacity لپاره د RBAC حقونه محدود کړي، ځکه چې دا څرګنده ده چې ډاټا له کوم ځای څخه راځي. Kubernetes په هرصورت د دې لپاره نه ګوري، او معمولا ډرایورونه په ورته نوم ځای کې ایښودل کیږي، نو بالاخره له ډرایورانو څخه تمه کیږي چې کار وکړي او غلط معلومات خپاره نه کړي (او دا هغه ځای دی چې زما کارت ناکام شو، نږدې ژباړن د ږیرې ټوکې پر بنسټ)
عمومي هدف لنډمهاله حجمونه
که چیرې کاروونکي د پوډ رامینځته کولو حق ولري (مستقیم یا غیر مستقیم) ، دوی به وکولی شي د عمومي هدف لنډیز حجمونه رامینځته کړي حتی که دوی په حجم کې د غوښتنې رامینځته کولو حق نلري. دا ځکه چې د RBAC اجازې چیکونه په کنټرولر کې پلي کیږي چې PVC رامینځته کوي ، نه کارونکي ته. دا د اضافه کولو اصلي بدلون دی ستاسو حساب ته, مخکې له دې چې دا فیچر په کلسترونو کې فعال کړئ چیرې چې بې باوره کاروونکي باید د حجمونو جوړولو حق ونه لري.
په یو مناسب ماشین کې (لینکس، یو عادي کاروونکي کولی شي کار واخلي ډاکر، وګوره دلته توضیحات) دا کمانډونه به کلستر راوړي او د 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
وروسته له دې چې هرڅه کار کوي، محصول به د کارولو لپاره لارښوونې ولري:
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 -
د CSISstorageCapacity توکي د دې لپاره ندي چې د انسانانو لخوا لوستل شي، نو ځینې پروسس کولو ته اړتیا ده. د ګولنګ ټیمپلیټ فلټرونه به د ذخیره کولو ټولګي وښیې، دا مثال به نوم، ټوپولوژي او ظرفیت وښيي:
$ 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