á¡áá»áá¯á·áá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬ážááẠáá±áá¬ááᯠááááºážáááºážááẠááá¯á¡ááºáá±á¬áºáááºáž ááŒááºáááºá áááºááŒá®ážáá±á¬áẠáá±áá¬ááᯠááááºážáááºážáááºááá¯ááºááŒá±á¬ááºáž áááºážááá¯á·á á¡áá±á¬áºáá±áž á¡áááºááŒá±áá«áááºá
á¥ááá¬á¡á¬ážááŒáá·áºá áááºááŸáºáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠRAM ááŒáá·áº ááá·áºáááºáá¬ážáá±á¬áºáááºáž RAM ááẠááŸá±ážááœá±ážáá±á¬ ááá¯ááŸá±á¬ááºááŸá¯ááá¯á· á¡áá¯á¶ážááŒá¯áá²áá±á¬ áá±áá¬áá»á¬ážááá¯áááºáž ááœáŸá±á·ááŒá±á¬ááºážááá¯ááºááŒá®áž á¡áá¯á¶ážá á¯á¶á áœááºážáá±á¬ááºáááºá¡áá±á«áº áááºáá±á¬ááºááŸá¯á¡áááºážáááºááŸááááºá áááºáááºáá»á¬áž ááá¯á·ááá¯áẠáá»áŸáá¯á·ááŸááºáá±á¬á·áá»á¬ážáá²á·ááá¯á·áá±á¬ ááá¯ááºáá»á¬ážááœáẠáááºáááºáá¬ááá·áºááœááºážááŸá¯á¡áá»áá¯á·ááŸáááá¯ááºááŒá±á¬ááºáž á¡ááŒá¬ážá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážá áááááŒá¯áááºááá¯á¡ááºáááºá
Kubernetes ááœáẠá¡áá»áá¯ážá¡á
á¬ážáá»á¬ážá
áœá¬ ááŸáááŸáá·áºááŒá®ážááŒá
áºáááºá
áá±á«áºáááº
áááºážááẠáááá¬áááºááŸá¬ážáá±á¬ host áááºážááŒá áºáá»á¬ážááᯠá á¬ážáá¯á¶ážááá·áº volumes á¡ááœáẠááá¯á·ááá¯áẠá¡áá»áá¯á·áá±á¬ host áá»á¬ážááœááºáᬠáááŸáááá¯ááºáá±á¬ ááá¯ááŸá±á¬ááºááŸá¯á¡ááœáẠááŒá¿áá¬áá áºáᯠááŒá áºááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áº Kubernetes 1.19 ááẠEmptyDir volumes ááŸáá·áº ááá±á¬ááá¬ážá¡á áááºáá°ááá·áº alpha testing volume á¡ááºá¹áá«áááºá¡áá áºááŸá áºáá¯ááᯠááááºáááºáá±ážáááº-
-
áá±áá°áá»áááºááœááºáá»áẠááááºá¹áááœá²áá»á¬áž;
-
CSI ááá¯ááŸá±á¬ááºááŸá¯ááá¬á ááŒá±áá¬áá¶ááŒááºážá
áá»ááºážáááºááŸá¯á¡áá áºá á¡á¬ážáá¬áá»ááºáá»á¬áž
-
ááá¯ááŸá±á¬ááºááŸá¯ááᯠáá±áááœááºáž ááá¯á·ááá¯áẠááœááºáááºáá áºáá¯ááŸáá áºááá·áº áá»áááºáááºááá¯ááºáááºá
-
volumes áá»á¬ážááẠapplication á០ááá»á±á¬áºááœááºááá¯ááºáá±á¬ áááºááŸááºáá¬ážáá±á¬ á¡ááœááºá¡á á¬ážááŸáááá¯ááºáááºá
-
á¡ááŒá²ááŸááá±áá±á¬ volumes áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááŒá®áž (á áœááºážáááºááŒá±áá¬áá¶ááŒááºážááᯠáá¶á·ááá¯ážáááº) áá±á«áºááá¯ááŸá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á«áºááá·áº CSI drivers áá»á¬ážááŸáá·áº á¡áá¯ááºáá¯ááºáááº
GetCapacity
; -
volumes áá»á¬ážááẠdriver ááŸáá·áº settings áá±á«áºáá°áááºá áááŠážáá±áá¬á¡áá»áá¯á·ááŸáááá¯ááºáááºá
-
á¡áá¶á¡ááá¯ážá¡áá»ááºáá«ááŸááá±á¬ áá¯á¶ááŸááºáá¯ááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážááᯠ(áá»áŸááºáá áºááŒááºááá¯ááºáá»ááºáááºáá®ážááŒááºážá á¡ááœááºá¡á á¬ážááŒá±á¬ááºážáá²ááŒááºáž á áááºááŒáá·áº) ááᯠáá¶á·ááá¯ážáá¬ážáá«áááºá
-
module ááá¯á·ááá¯áẠvolume specification ááá¯áááºáá¶áá±á¬ áááºááá·áº application controller ááŸáá·áºáááᯠvolumes ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
-
Kubernetes á¡áá»áááºááá¬ážááœá²áá°ááẠááá·áºáá»á±á¬áºáá±á¬ node áá»á¬ážááᯠáá°á·áá¬áá¬áá° ááœá±ážáá±ážáááºá ááá¯á·ááŒá±á¬áá·áº á¡áá»áááºááá¬ážááœá²áá° ááá¯ážáá»á²á·ááŸá¯áá»á¬áž á á®á ááºáááºááŸááºááŒááºáž ááá¯á·ááá¯áẠáááºáá»áááºáá»á¬ážááᯠááŒááºáááºááẠáááá¯á¡ááºáá±á¬á·áá«á
áá»áŸá±á¬ááºááœáŸá¬ááœá±ážáá»ááºá áá¬áá»á¬áž
ááá¯á·ááŒá±á¬áá·áºá áá±áá°áá»áááºááœááºáá»áẠáá±á«áºáááºá¡ááœá²áá»á¬ážááẠá¡á±á¬ááºáá«á¡áá¯á¶ážááŒá¯ááŸá¯ááá á¹á áá»á¬ážá¡ááœáẠááá·áºáá»á±á¬áºáááº-
Memcached á¡ááœáẠRAM á¡ááœáẠá¡á á¬ážááá¯ážá¡ááŒá Ạá¡ááŒá²áááºážááŸááºáá¬ááº
memcached ááá±á¬ááºáá¯á¶ážááœááºááŸááá»ááºáá»á¬áž
á¡áá¯ááºáá±áá¬á¡ááŒá ẠLVM á ááºááœááºážááá¯ááŸá±á¬ááºááŸá¯
RAM áááºááŒá®ážáá±á¬ áá±áá¬ááŸáá·áº á¡áá¯ááºáá¯ááºáá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬ážááẠKubernetes á០áá¯á¶ááŸáẠEmptyDir volumes áá»á¬ážááᯠááá±ážááá¯ááºáá±á¬ á¡ááœááºá¡á
á¬áž ááá¯á·ááá¯áẠá
áœááºážáá±á¬ááºááẠáááºááá
áºáá»á¬ážááŸáá·áºá¡áá° áá±áááœááºáž ááá¯ááŸá±á¬ááºááŸá¯ ááá¯á¡ááºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá á€áááºááœááºáá»ááºá¡ááœááºáá±ážáá¬ážáá²á·áááºá
áá±áá¬ááá¬ááá»á¬ážá¡ááœáẠáááºááŸá¯áááºáᬠáááºáá±á¬ááºááœáá·áº
Volume áá áºáá¯á¡á¬áž ááœá²áá±áá»áá¬ážááŒááºážááŒáá·áº á¡ááŒáá·áºá¡á volume ááᯠáááºáá®ážááá¯ááºáááº-
-
ááŒááºáááºáá°áá±á¬ááºáá±áž
á¡áá¶á¡ááá¯ážá¡áá»ááºáá»áŸááºáá áºááŒáẠ; -
áááºáá®ážááŸá¯
á¡áá¶á¡ááá¯ážá¡áá»áẠáá±á¬áºáá®áá»á¬áž ; -
ÑабПÑе
data placeholder .
á€á¡ááœá²áá»á¬ážááᯠáááºáááºáá®ážááá·áºáá¯ááºááœáẠááá·áºááœááºážááá¯ááºáááºá
áááºááá¯á€áá¯ááºáááºážááá¯áááº
á¡ááœá±ááœá±áááºááœááºáá»áẠáá±á«áºáááºá¡ááœá²áá»á¬áž
áá±áá°áá»áááºááœááºáá»áẠáá±á«áºáááºá¡ááœá²áá»á¬ážáá²á· á¡áááá¡ááºá¹áá«áááºááŸá¬ áá¯áááºá¡áááºážá¡ááŒá
áºá¡áá
áºá EphemeralVolumeSource
á¡áá¶á¡ááá¯ážá¡áá»ááºáá±á¬ááºážááá¯ááŸá¯áá
áºáá¯áááºáá®ážááẠá¡ááœááºá¡á¬ážáá¯á¶ážáá«áááºááẠ(áááá¯ááºážá¡á ááŒá²ááŒá¶áá±á¬ááá¬ááá±á¬ááºážááá¯ááŸá¯á PVC)á ááááºážáá»á¯ááºáááááá¬á¡áá
Ạkube-controller-manager
ááá¯ááá¯á·áá±á¬ááá¬áá¡áááºážá¡ááŒá
áºááá¯áááºáá®ážáá±á¬ pods áá»á¬ážááá¯ááŒáá·áºááŸá¯ááŒá®ážáá±á¬ááºááᯠpods á¡ááœáẠPVC ááá¯áááºáá®ážáá«á CSI áááá¯ááºáá¬á¡ááœááºá á€áá±á¬ááºážááá¯áá»ááºááẠá¡ááŒá¬ážáá°áá»á¬ážááŸáá·áº áá°áá®áá±áá±á¬ááŒá±á¬áá·áº á€áá±áá¬ááœáẠá¡áá°ážáá¶á·ááá¯ážááŸá¯áááá¯á¡ááºáá«á
ááá¯ááá¯á·áá±á¬ PVC áá»á¬ážááŸááá±áááœá±á·á áááºážááá¯á·ááᯠá¡áá¶á¡ááá¯ážá¡áá»ááºááŸá á¡ááŒá¬ážáá±á¬ááºážááá¯ááŸá¯áá»á¬ážáá²á·ááá¯á· á¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá á¡áá°ážáááŒáá·áºá á¡áá¶á¡ááá¯ážá¡áá»ááºááᯠáá°ážáá°ááŒááºáž ááá¯á·ááá¯áẠá¡áá¶á¡ááá¯ážá¡áá»ááºá០áá»áŸááºáá áºááŒááºááá¯ááºáá»ááºáá áºáá¯ááᯠáááºáá®ážááá·áºá¡áá« áááºážááá¯á·á¡á¬áž áá±áá¬á¡áááºážá¡ááŒá áºáá áºáá¯á¡ááŒá ẠáááºááœáŸááºážááá¯ááºáááºá PVC á¡áá¬ááá¹áá¯ááẠáá¯áááºá áááºááŸáá¡ááŒá±á¡áá±áááºáž áá«ááŸááááºá
á¡ááá¯á¡áá»á±á¬ááºáááºáá®ážáá¬ážáá±á¬ PVC áá»á¬ážáá¡áááºáá»á¬ážááᯠááŒáá¯áááºáááºááŸááºáá¬ážáááº- áááºážááá¯á·ááẠáá¯á¶ážá¡áááºááŸáá·áº áá¯áááºá¡áááºá áá±á«ááºážá ááºááŸá¯áá áºáá¯ááŒá áºááŒá®áž áá¯á¶ážááá¯ááŒáá·áº ááá¯ááºážááŒá¬ážáá¬ážáááºá ááŒáá¯áááºáááºááŸááºáá¬ážáá±á¬á¡áááºáá»á¬ážááẠáá°ážá¡áááºááŸáá·áº áá¯áááºá¡áááºááá¯áááá«á áááºážááá¯ááŸá¬ááœá±áááºáááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº PVC ááŸáá·áº á¡ááŒááºá¡ááŸááºáááºááœááºááẠááá¯ááá¯ááœááºáá°á á±áááºá á¡á¬ážáááºážáá»ááºááŸá¬ Kubernetes ááŸááŸá¬ááœá±ááœá±á·ááŸááá±á¬á¡áááºááá¯á¡áá¯á¶ážááŒá¯áá¬ážááŒá®ážááŒá áºááá¯ááºááŒá®ážááááºá¡áá±ááŒáá·áº pod ááá¯á áááºááŒááºážááŸááááºááá¯á·áá¬ážáááºá
pod ááŸáá·áºá¡áá° á¡áá¶á¡ááá¯ážá¡áá»ááºááᯠáá»ááºááŒá±á¬ááºážáá±áá»á¬á á±áááºá ááááºážáá»á¯ááºáááááá¬ááẠááá¯ááºááŸááºá¡á±á¬ááºááŸá á¡áá¶á¡ááá¯ážá¡áá»ááºáá¶ááá¯á· áá±á¬ááºážááá¯áá»ááºáá áºáᯠááŒá¯áá¯ááºáááºá áá°ážááᯠáá»ááºááá¯ááºáá±á¬á¡áá«á áá±á¬ááºážááá¯áá»ááºááŸáá·áº á¡áá¶á¡ááá¯ážá¡áá»áẠááŸá áºáá¯áá¯á¶ážááᯠáá»ááºáá±ážááá·áº á á¶á¡ááŸáá¯áẠá á¯áá±á¬ááºážááŸá¯ ááá¹ááá¬ážááẠá¡áá¯ááºáá¯ááºáááºá
ááá¯ááŸá±á¬ááºááŸá¯á¡áááºážá¡á
á¬ážá áá¯á¶ááŸááºááá¹ááá¬ážááŸáááá·áº áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠááá¯ááŸá±á¬ááºááŸá¯áááá¯ááºáá¬á០ááŸááºááœá²áá¬ážáááºá á¡áááºážáá±á¬ááºáá»áá±á¬áºáááºáž áá»ááºáá»ááºážááŸá±á¬ááºááœááºááŒááºáž (áá±á«áº) WaitForFirstConsumer
) ááẠáá±á«áºáááºá¡ááœá²áá»á¬ážá¡ááœáẠá¡áá¯á¶ážááŒá¯ááẠááá·áºáá»á±á¬áºáááºá WaitForFirstConsumer
ááá¯á·áá±á¬áẠnode áá
áºáá¯ááá¯ááœá±ážáá»ááºááá·áºá¡áá« á¡áá»áááºááá¬ážááœá²áá°ááẠnode á¡áá¯á¶ážááŒá¯ááŸá¯ááŸáá·áº ááá¯ááŸá±á¬ááºááŸá¯áááŸáááá¯ááºááŸá¯ ááŸá
áºáá»áá¯ážáá¯á¶ážááᯠááá·áºááœááºážá
ááºážá
á¬ážááá¯ááºáááºá áááºáá±á¬ááºááŸá¯á¡áá
áºáá
áºáᯠá€áá±áá¬ááœáẠáá±á«áºáá¬áá«áááºá
ááá¯ááŸá±á¬ááºááŸá¯á áœááºážááẠááŒá±áá¬áá¶ááŒááºážá
áá¯á¶ááŸááºá¡á¬ážááŒáá·áº á¡áá»áááºááá¬ážááœá²áá°ááẠCSI áááá¯ááºáá¬ááẠá¡áá¶á¡ááá¯ážá¡áá»ááºááᯠáááºááá·áºáá±áá¬ááœáẠáááºáá®ážáááºááᯠááááá«á á€á¡áá»ááºá¡áááºááᯠáá±á¬ááºážááá¯ááẠá á®á ááºáá°ááẠáá¬ááºáá±á¬ááºážááᯠááá¯ááºááá¯ááºáááºááœááºááẠáááºážáááºážáááŸááá«á ááá¯á·ááŒá±á¬áá·áºá á¡á á®á¡á ááºááœá²áá°ááẠáááºááá·áº volumes ááá¯áááºáá±á¬ááºááá¯ááºááẠ(late binding) ááá¯á·ááá¯áẠáááºáá±áá¬ááœá±ážáá»ááºááŸá¯ááᯠáá¬ááºáá±á¬ááºážáá°áᶠáá¯á¶ážááá»ááºááá¬ážááá»ááºáž á á áºáááºáž node áá»á¬ážááᯠáá±á¬ááºáá°áááºá
á¡áá
áºá CSIStorageCapacity
alpha á¡ááá·áºááœááºááŸááá±á¬á ááá¯á¡ááºáá±á¬áá±áá¬áá»á¬ážááᯠá¡áá»áááºááá¬ážááœá²áá°áá¶áááŸáááá¯ááºá
á±áááºá¡ááœáẠááá¯á¡ááºáá±á¬áá±áá¬áá»á¬ážááᯠetcd ááœááºááááºážáááºážáááºááœáá·áºááŒá¯áááºá áá±áá°áá»áááºááœááºáá»áẠááááºá¹á volumes áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááŸáá·áº ááá°áá²á áááºááẠáááá¯ááºáá¬ááᯠá¡áá¯á¶ážááŒá¯ááá·áºá¡áá«á ááá¯ááŸá±á¬ááºááŸá¯ááá¬á ááŒá±áá¬áá¶ááŒááºážááᯠááœáá·áºáá¬ážááá«áááº- external-provisioner
áá¯á¶ááŸááºá¡á¬ážááŒáá·áº áá¬ááºáá±á¬ááºážáá¶á០áááŸáááá·áº á
áœááºážáááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáá¯ááºááŒááºááá·áºáááºá GetCapacity
.
á¡áá»áááºááá¬ážááœá²áá°ááẠááŸá±á¬ááºážááá¯ááºážá
ááºážááŸá±á¬ááºááŒááºážááá¯á¡áá¯á¶ážááŒá¯ááá·áº áá±á¬ááºááááºáá±á¬á¡áá¶á¡ááá¯ážá¡áá»ááºáá«ááá·áº pod áá
áºáá¯á¡ááœáẠnode áá
áºáá¯ááá¯ááœá±ážáá»ááºáááºááá¯á¡ááºáá«áá áá¬ááºáá±á¬ááºážááẠá¡áá¶ááá¯áááºááŸááºááŒááºážááŒáá·áº ááŒáá·áºáá»ááºá
ááºá¡ááœááºáž á€á¡ááºá¹áá«áááºááá¯ááœáá·áºáá¬ážááẠCSIDriver.storageCapacity
ááá¯á·áá±á¬áẠáá¯á¶áá±á¬ááºáá±á¬ ááá¯ááŸá±á¬ááºááŸá¯ááá¬ááááŸááá±á¬ node áá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬áẠá
áœáá·áºáá
áºáá«áááºá áááºážááẠáá±áá°áá»áááºááœááºáá»áẠáá±á«áºáááºááŸáá·áº áááºááá¯áẠá¡ááœá²áá»á¬áž á¡ááœáẠáá¯ááºáá±á¬ááºáááºá ááá¯á·áá±á¬áº áááºážááá¯á·á ááá·áºáááºáá»ááºáá»á¬ážááᯠKubernetes á០ááááºááá¯ááºáá±á¬ááŒá±á¬áá·áº CSI áá±á«áºááẠá¡ááœá²áá»á¬ážá¡ááœáẠááá¯ááºáá«á
áá¯á¶ážá
á¶á¡ááá¯ááºážá pods áá»á¬ážááᯠáá
á®á
ááºáá® áá»ááºááŒááºážááá·áºááºáá»áááºáá¬ážáá±á¬ volumes áá»á¬ážááᯠáááºáá®ážááŒá®áž áááºážááá¯á·ááá±áá¬áá»áá¬ážááŸá¯ááᯠááá¯ááŸá±á¬ááºááŸá¯áááá¯ááºáá¬á០ááœá±ážáá»ááºáá¬ážáá±á¬ááŒá±á¬áá·áº configure áá¯ááºááá·áºá¡áá«á external-provisioner
áá°áááºážá¡á¬ážááŒáá·áºá á€áá±áá¬ááᯠáááºááá¯á·áááºááŒá
áºá
á± á¡áá¯á¶ážááŒá¯áááºááá¯ááºáá±á¬ááŒá±á¬áá·áºá áá»ááºáá»ááºážáá±á«ááºážá
ááºáá¬ážáá±á¬ ááá¯ááŸá±á¬ááºááŸá¯á¡áááºážáá»á¬ážááᯠáá»á±á¬áºááœá¬ážáá«áááºá
kubernetes á¡áá»áááºááá¬ážááẠááŒá áºááá¯ááºáá»á±ááŸááá±á¬ áá±ááºááá®áá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááŒáá·áº á¡áá¯ááºáá¯ááºááẠááá¯ááºážá á±áá±á¬ááŒá±á¬áá·áºá á¡áá¶á¡ááá¯ážá¡áá»ááºááᯠáááºáá®ážááá·áºá¡áá«ááá¯ááºážááœáẠá áœááºážáááºáááŸáááá¯ááºáááºáᯠá¡á¬ááá¶áá»ááºáááŸááá±á¬áºáááºáž áááºážááᯠáááºáá¶ááŒáá¯ážá á¬ážááŒááºážáááŒá¯áá² áááºáá®ážááá¯ááºááá·áº á¡ááœáá·áºá¡áááºážáá»á¬ážááŸá¬ ááá¯ážáá»á¬ážáá¬áá«áááºá
NB áááºááẠááá¯ááá¯á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáááá¯ááºááá·áºá¡ááŒáẠáá¯á¶ááŒá¯á¶á
áœá¬ "ááŒá±á¬ááºáááºáááºáááºááŒááºážá¡áá±á«áº áá±á·áá»áá·áºááŒááºáž" ááŸáá·áº áá¯á¶ážááá¬ážááááºááá¯ááºáá±á¬ á¡ááŒá±á¡áá±áá»áá¯ážááœááºá á¡áá°ážááŒááºáááºáááºáááºážáá»á¬ážááœáẠá¡áááºá¡áá»ááºážááŒáá·áºáá®áá±á¬ áááºážááá¬áá¶á·ááá¯ážááŸá¯á¡áá°á¡áá®ááᯠááá°áá« -
áá¯á¶ááœá¯á¶ááŸá¯
CSIStorageCapacity
CSIStorageCapacity á¡áá¬ááá¹áá¯áá»á¬ážááẠnamespaces ááœááºáááºááŸááááº; CSI áááá¯ááºáá¬áá áºáá¯á á®ááᯠáááºážáááá¯ááºááá¯áẠnamespace ááœáẠáá¯ááºááŒáá±á¬á¡áá«á áá±áá¬ááẠáááºááá·áºáá±áá¬ááŸáá¬áááºááᯠáááá¬áááºááŸá¬ážáá±á¬ááŒá±á¬áá·áº RBAC áá¯ááºááá¯ááºááœáá·áºáá»á¬ážááᯠááá·áºáááºááẠá¡ááŒá¶ááŒá¯áá¬ážáááºá Kubernetes ááẠáááºážááᯠáááºááá¯á·áááºááá¯á á±áá¬áá° á á áºáá±ážááŒááºážáááŸááá«á á¡áá»á¬ážá¡á¬ážááŒáá·áº áááá¯ááºáá¬áá»á¬ážááᯠáá°áá®áá±á¬ namespace ááœáẠááá·áºááœááºážáá¬ážáá±á¬ááŒá±á¬áá·áº áá±á¬ááºáá¯á¶ážááœáẠáá¬ááºáá±á¬ááºážáá»á¬ážááẠááŸá¬ážááœááºážáá±á¬áá±áá¬ááᯠááá¯ááºáá±ááá¯ááºá á±ááẠáá»áŸá±á¬áºááá·áºáá¬ážáá«ááẠ(áááºážááẠáá»áœááºá¯ááºááááºááœáẠáá¡á±á¬ááºááŒááºáá±á¬áá±áá¬ááœááºá á¡áá®ážá ááºáá¯á¶áž áá¯ááºááááºááœá±áž áá¬áááᯠá¡ááŒá±áá¶ááŒá®áž áá¬áá¬ááŒááºáá°)
á¡ááœá±ááœá±áááºááœááºáá»áẠáá±á«áºáááºá¡ááœá²áá»á¬áž
á¡áááºá á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠpod áá
áºáá¯ááᯠáááºáá®ážááá¯ááºááœáá·áºáá»á¬áž (ááá¯ááºááá¯áẠááá¯á·ááá¯áẠááœááºááá¯ááºáááŒá
áºá
á±)á áááºážááá¯á·ááẠá¡áá¶á¡ááá¯ážá¡áá»ááºá¡ááœáẠáá±á¬ááºážááá¯áá»ááºáá
áºáá¯ááᯠáááºáá®ážááá¯ááºááœáá·áºáááŸááá±á¬áºáááºáž áá±áá¯áá»áááºááœááºáá»áẠáá±á«áºáááºá¡ááœá²áá»á¬ážááᯠáááºáá®ážááá¯ááºáááºááŒá
áºáááºá á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº RBAC ááœáá·áºááŒá¯áá»ááºá
á
áºáá±ážááŸá¯áá»á¬ážááẠá¡áá¯á¶ážááŒá¯áá°á¡ááœááºááá¯ááºáá² PVC áááºáá®ážááá·áº controller ááœáẠáááºáá±á¬ááºáá±á¬ááŒá±á¬áá·áºááŒá
áºáááºá áááºážááẠááá·áºááœááºážááẠá¡ááá ááŒá±á¬ááºážáá²ááŸá¯ ááŒá
áºáááºá
ááá°áá¬
áááºáááº
ááá·áºáá»á±á¬áºáá±á¬á
ááºáá
áºáá¯ááœáẠ(Linuxá áá¯á¶ááŸááºá¡áá¯á¶ážááŒá¯áá°ááẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
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 -
CSIStorageCapacity á¡áá¬ááá¹áá¯áá»á¬ážááᯠáá°áá¬ážáá»á¬ážá áááºááẠááááºááœááºáá«á ááá¯á·ááŒá±á¬áá·áº á¡áá»áá¯á·áá±á¬ áá¯ááºáá±á¬ááºááŸá¯ ááá¯á¡ááºáá«áááºá Golang template á á áºáá¯ááºááŸá¯áá»á¬ážááẠááá¯ááŸá±á¬ááºááŸá¯á¡áááºážáá»á¬ážááᯠááŒááááºááŒá áºááŒá®ážá á€ááá°áá¬ááœáẠá¡áááºá topology ááŸáá·áº á áœááºážáááºááᯠááŒááá«áááº-
$ kubectl get
-o go-template='{{range .items}}{{if eq .storageClassName "pmem-csi-sc-late-binding"}}{{.metadata.name}} {{.nodeTopology.matchLabels}} {{.capacity}}
{{end}}{{end}}'
csistoragecapacities
csisc-2js6n map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker2] 30716Mi
csisc-sqdnt map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker1] 30716Mi
csisc-ws4bv map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker3] 30716Mi
á¡áá¬ááá¹áá¯áá áºáá¯ááœáẠá¡á±á¬ááºáá« á¡ááŒá±á¬ááºážá¡áá¬áá»á¬áž áá«ááŸááááºá
$ kubectl describe csistoragecapacities/csisc-6cw8j
Name: csisc-sqdnt
Namespace: default
Labels: <none>
Annotations: <none>
API Version: storage.k8s.io/v1alpha1
Capacity: 30716Mi
Kind: CSIStorageCapacity
Metadata:
Creation Timestamp: 2020-08-11T15:41:03Z
Generate Name: csisc-
Managed Fields:
...
Owner References:
API Version: apps/v1
Controller: true
Kind: StatefulSet
Name: pmem-csi-controller
UID: 590237f9-1eb4-4208-b37b-5f7eab4597d1
Resource Version: 2994
Self Link: /apis/storage.k8s.io/v1alpha1/namespaces/default/csistoragecapacities/csisc-sqdnt
UID: da36215b-3b9d-404a-a4c7-3f1c3502ab13
Node Topology:
Match Labels:
pmem-csi.intel.com/node: pmem-csi-pmem-govm-worker1
Storage Class Name: pmem-csi-sc-late-binding
Events: <none>
áá±áá°áá»áááºááœááºáá»ááºáá
áºáá¯áááºážááŒáá·áº ááááºá¹áá¡áá¶á¡ááá¯ážá¡áá»ááºááŒáá·áº ááá¯ááºááŒá¡ááá®áá±ážááŸááºážááᯠáááºáá®ážááŒáá«á
áá¯á·á ááá¯ááºá¡ááŒá±á¬ááºážá¡áá¬áá»á¬áž 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
á¡áááºáá±á¬áºááŒáá« ááœáŸááºááŒá¬ážáá»ááºááœáẠááŒáá¬ážááá·áºá¡ááá¯ááºáž áááºáá®ážááŒá®ážáá±á¬ááºá ááᯠáá»áœááºá¯ááºááá¯á·ááœáẠáá±á¬ááºááẠpod ááŸáá·áº 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
PVC ááá¯ááºááŸáẠ- á¡á±á¬ááº
$ kubectl get -o yaml pvc/my-csi-app-inline-volume-my-csi-volume
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
volume.beta.kubernetes.io/storage-provisioner: pmem-csi.intel.com
volume.kubernetes.io/selected-node: pmem-csi-pmem-govm-worker1
creationTimestamp: "2020-08-11T15:44:57Z"
finalizers:
- kubernetes.io/pvc-protection
managedFields:
...
name: my-csi-app-inline-volume-my-csi-volume
namespace: default
ownerReferences:
- apiVersion: v1
blockOwnerDeletion: true
controller: true
kind: Pod
name: my-csi-app-inline-volume
uid: 75c925bf-ca8e-441a-ac67-f190b7a2265f
...
ááœááºážáá¶ááŒááºáááºáá¬ážáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážá¡ááœáẠáá»áŸá±á¬áºááá·áºáá«áááºá pmem-csi-pmem-govm-worker1
:
csisc-2js6n map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker2] 30716Mi
csisc-sqdnt map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker1] 26620Mi
csisc-ws4bv map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker3] 30716Mi
á¡ááŒá¬ážá¡ááá®áá±ážááŸááºážáá
áºáá¯ááẠ26620Mi áááºááá¯ááá¯á¡ááºáá«áá á¡á
á®á¡á
ááºááœá²áá°ááẠááá·áºááœááºážá
ááºážá
á¬ážáááºááá¯ááºáá«á pmem-csi-pmem-govm-worker1
áááºááá¯á¡ááŒá±á¡áá±áá²ááŒá
áºááŒá
áºá
áá¬áááºá·áá¬áá²?
á¡ááºá¹áá«áááºááŸá áºáá¯áá¯á¶ážááẠááœá¶á·ááŒáá¯ážááá¯ážáááºáá²ááŒá áºáááºá alpha á ááºážáááºáá±á ááºá¡ááœááºáž á¡ááá®áá±ážááŸááºážáá»á¬ážá áœá¬ááᯠááœáá·áºáá²á·áááºá ááá¯ážáááºááŸá¯ á¡ááá¯ááŒá¯áá»ááºááá·áºááºáá»á¬ážááẠáá®áá¬á¡ááá·áºááá¯á· ááœáŸá±á·ááẠáá¯ááºáá±á¬ááºáááá·áºá¡áá¯ááºá¡ááŒáẠáááºááá·áºááœá±ážáá»ááºá áá¬áá»á¬ážááᯠááá·áºááœááºážá ááºážá á¬ážáá¬ážááŒá®áž ááŒááºážáááºáá¬ážáááºááᯠááŸááºáááºážáááºáá¬ážáááº-
source: www.habr.com