เบ›เบฐเบฅเบดเบกเบฒเบ™ Ephemeral เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ: EmptyDir เปƒเบ™ Steroids

เบ›เบฐเบฅเบดเบกเบฒเบ™ Ephemeral เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ: EmptyDir เปƒเบ™ Steroids

เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™, เปเบ•เปˆเบžเบงเบเป€เบ‚เบปเบฒเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบเบเบฑเบšเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบšเปเปˆเบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบซเบกเปˆ.

เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เป‚เบ”เบ RAM, เปเบ•เปˆเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบ„เปˆเบญเบเปƒเบŠเป‰เบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบŠเป‰เบฒเบเบงเปˆเบฒ RAM, เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเป€เบฅเบฑเบเบ™เป‰เบญเบเบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบฅเบงเบก. เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเปˆเบ™เบญเบทเปˆเบ™เบ•เป‰เบญเบ‡เบฅเบฐเบงเบฑเบ‡เบงเปˆเบฒเบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เปƒเบ™เป„เบŸเบฅเปŒ เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ เบซเบผเบทเบเบฐเปเบˆเบฅเบฑเบš.

Kubernetes เบกเบตเบซเบผเบฒเบเบ›เบฐเป€เบžเบ”เปเบฅเป‰เบง เบ›เบฐเบฅเบดเบกเบฒเบ™ ephemeral, เปเบ•เปˆเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™ K8s.

เบŠเบปเปˆเบงเบ„เบฒเบง เบ›เบฐเบฅเบดเบกเบฒเบ™ CSI เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ Kubernetes เบ‚เบฐเบซเบเบฒเบเบเบฑเบšเป„เบ”เป€เบงเบต CSI เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ›เบฐเบฅเบดเบกเบฒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบตเปˆเบกเบตเบ™เป‰เปเบฒเบซเบ™เบฑเบเป€เบšเบปเบฒ. เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ เป‚เบ„เบ‡โ€‹เบชเป‰เบฒเบ‡โ€‹เป‚เบ”เบโ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹: เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบ„เบงเบฒเบกเบฅเบฑเบš, เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”, เบ•เบปเบงเปเบ›, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เป„เบ”เป€เบงเบต CSI เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” Kubernetes เบ™เบตเป‰, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป„เบ”เป€เบงเบตเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ›เบปเบเบเบฐเบ•เบดเบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ - เปเบ•เปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ›เบฐเบฅเบดเบกเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ—เบธเบ node เบ—เบตเปˆเป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบš pod.

เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบšเบฑเบ™เบซเบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™เบ—เบตเปˆเบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบซเบผเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบกเบตเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบšเบฒเบ‡เป‚เบฎเบ”. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆ Kubernetes 1.19 เปเบ™เบฐเบ™เปเบฒเบชเบญเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš alpha เปƒเบซเบกเปˆเบ—เบตเปˆเบกเบตเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™ EmptyDir:

  • เบ›เบฐเบฅเบดเบกเบฒเบ™ ephemeral เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ›;

  • เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบญเบฒเบ”เบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ CSI.

เบ‚เปเป‰เป„เบ”เป‰เบ›เบฝเบšเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเบกเปˆ:

  • เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเบฒเบกเบฒเบ”เบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบซเบผเบทเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบœเปˆเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ;

  • เบ›เบฐเบฅเบดเบกเบฒเบ™เบชเบฒเบกเบฒเบ”เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบเบตเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ;

  • เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบšโ€‹เบ„เบปเบ™โ€‹เบ‚เบฑเบš CSI เปƒเบ”โ€‹เบ—เบตเปˆโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เบ›เบฐโ€‹เบฅเบดโ€‹เบกเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบ„เบปเบ‡โ€‹เบ„เป‰เบฒเบ‡โ€‹เปเบฅเบฐ (เป€เบžเบทเปˆเบญโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹) เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป‚เบ— GetCapacity;

  • เบ›เบฐเบฅเบดเบกเบฒเบ™เบญเบฒเบ”เบˆเบฐเบกเบตเบ‚เปเป‰เบกเบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบถเป‰เบ™เบเบฑเบšเบ„เบปเบ™เบ‚เบฑเบš เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ;

  • เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ›เบฐโ€‹เบฅเบดโ€‹เบกเบฒเบ™ (เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹, เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹, เปเบฅเบฐโ€‹เบญเบทเปˆเบ™เป†โ€‹) เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹;

  • เบ›เบฐเบฅเบดเบกเบฒเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ”เป†เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเป‚เบกเบ”เบนเบ™เบซเบผเบทเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ›เบฐเบฅเบดเบกเบฒเบ™;

  • เบ•เบปเบงเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ Kubernetes เป€เบฅเบทเบญเบ nodes เบ—เบตเปˆเป€เปเบฒเบฐเบชเบปเบกเบ”เป‰เบงเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡, เบชเบฐเบ™เบฑเป‰เบ™ เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบˆเบฑเบ”เบซเบฒ เปเบฅเบฐเบเบณเบ™เบปเบ”เบ„เปˆเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ เบซเบผเบท เปเบเป‰เป„เบ‚ webhooks.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบชเบฐ เปเบฑเบ

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ›เบฐเบฅเบดเบกเบฒเบ™ ephemeral เบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ„เบปเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบชเปเบฒเบฅเบฑเบš RAM เบชเปเบฒเบฅเบฑเบš memcached

เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบซเบผเป‰เบฒเบชเบธเบ”เบ‚เบญเบ‡ memcached เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ„เบปเบ‡เบ—เบตเปˆ (Intel Optane, เปเบฅเบฐเบญเบทเปˆเบ™เป†, เบ›เบฐเบกเบฒเบ™ เบ™เบฑเบเปเบ›) เปเบ—เบ™ RAM เบ›เบปเบเบเบฐเบ•เบด. เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰ memcached เบœเปˆเบฒเบ™เบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ›เบฐเบฅเบดเบกเบฒเบ™ ephemeral เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ›เป€เบžเบทเปˆเบญเบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบกเบตเบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบ”เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบˆเบฒเบ PMEM เป‚เบ”เบเปƒเบŠเป‰ CSI driver, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡. PMEM-CSI.

LVM เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ

เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒ RAM เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ”เป‰เบงเบเบ‚เบฐเปœเบฒเบ” เบซเบผเบทเบ•เบปเบงเบงเบฑเบ”เปเบ—เบเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบ›เบฐเบฅเบดเบกเบฒเบ™ EmptyDir เบ›เบปเบเบเบฐเบ•เบดเบˆเบฒเบ Kubernetes เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป„เบ”เป‰. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ™เบตเป‰เบกเบฑเบ™เบ–เบทเบเบ‚เบฝเบ™ TopoLVM.

เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบšเบšเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เปเป‰เบกเบนเบ™

เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบ›เบฐเบฅเบดเบกเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบ›เบฐเบฅเบดเบกเบฒเบ™เป€เบ•เบฑเบกเป€เบกเบทเปˆเบญ:

เบ›เบฐเบฅเบดเบกเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป‚เปเบ”เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ™เบตเป‰

เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ› Volumes Ephemeral

เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ›เบฐโ€‹เบฅเบดโ€‹เบกเบฒเบ™ ephemeral เป‚เบ”เบโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹เปเบกเปˆเบ™โ€‹เปเบซเบผเปˆเบ‡โ€‹เบ›เบฐโ€‹เบฅเบดโ€‹เบกเบฒเบ™โ€‹เปƒเบซเบกเปˆโ€‹, EphemeralVolumeSource, เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ›เบฐเบฅเบดเบกเบฒเบ™ (เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ›เบฐเบฅเบดเบกเบฒเบ™เบ„เบปเบ‡เบ—เบตเปˆ, PVC). เบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเปƒเบซเบกเปˆเปƒเบ™ kube-controller-manager เป€เบšเบดเปˆเบ‡เบเบฑเบเบ—เบตเปˆเบชเป‰เบฒเบ‡เปเบซเบผเปˆเบ‡เบ›เบฐเบฅเบดเบกเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเป‰เบฒเบ‡ PVC เบชเปเบฒเบฅเบฑเบšเบเบฑเบเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ‚เบฑเบšเบ‚เบตเปˆ CSI, เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ™เบตเป‰เบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เบปเบ™เบญเบทเปˆเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบดเป€เบชเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰.

เบ•เบฒเบšเปƒเบ”เบ—เบตเปˆ PVCs เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบกเบตเบขเบนเปˆ, เบžเบงเบเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบ„เบทเบเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบญเบทเปˆเบ™เป†เบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบญเป‰เบฒเบ‡เบญเบดเบ‡เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เบฑเบ”เบฅเบญเบเบ›เบฐเบฅเบดเบกเบฒเบ™เบซเบผเบทเบชเป‰เบฒเบ‡เบžเบฒเบšเบ–เปˆเบฒเบเบˆเบฒเบเบ›เบฐเบฅเบดเบกเบฒเบ™. เบงเบฑเบ”เบ–เบธ PVC เบเบฑเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบฐเบ–เบฒเบ™เบฐเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบ›เบฐเบฅเบดเบกเบฒเบ™.

เบŠเบทเปˆเบ‚เบญเบ‡ PVCs เบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒ: เบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡เบŠเบทเปˆเบเบฑเบเปเบฅเบฐเบŠเบทเปˆเบ›เบฐเบฅเบดเบกเบฒเบ™, เปเบเบเบญเบญเบเป‚เบ”เบ hyphen. เบŠเบทเปˆเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบžเบปเบงเบžเบฑเบ™เบเบฑเบš PVC เป€เบžเบฒเบฐเบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบŠเบญเบเบซเบฒเบกเบฑเบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฎเบนเป‰เบŠเบทเปˆเบเบฑเบเปเบฅเบฐเบŠเบทเปˆเบ›เบฐเบฅเบดเบกเบฒเบ™. เบ‚เปเป‰เป€เบชเบเปเบกเปˆเบ™เบงเปˆเบฒเบŠเบทเปˆเบญเบฒเบ”เบˆเบฐเบ–เบทเบเปƒเบŠเป‰เปเบฅเป‰เบง, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบเบงเบ”เบžเบปเบšเป‚เบ”เบ Kubernetes เปเบฅเบฐเป€เบ›เบฑเบ™เบœเบปเบ™เบกเบฒเบˆเบฒเบ pod เป„เบ”เป‰เบ–เบทเบเบชเบฐเบเบฑเบ”เบˆเบฒเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ›เบฐเบฅเบดเบกเบฒเบ™เบ–เบทเบเบฅเบปเบšเบžเป‰เบญเบกเบเบฑเบšเบเบฑเบ, เบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเป€เบฎเบฑเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบ›เบฐเบฅเบดเบกเบฒเบ™เบžเบฒเบเปƒเบ•เป‰เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡. เป€เบกเบทเปˆเบญเบเบฑเบเบ–เบทเบเบฅเบถเบš, เบเบปเบ™เป„เบเบเบฒเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เป€เบŠเบดเปˆเบ‡เบฅเบถเบšเบ—เบฑเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปเบฅเบฐเบ›เบฐเบฅเบดเบกเบฒเบ™.

เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ–เบทเบเบˆเบฑเบšเบ„เบนเปˆเป‚เบ”เบเป„เบ”เป€เบงเบตเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป‚เบ”เบเบœเปˆเบฒเบ™เบเบปเบ™เป„เบเบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบŠเบฑเป‰เบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เปเบฅเบฐเบ—เป‰เบฒเบ (aka WaitForFirstConsumer) เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เบชเปเบฒเบฅเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™ ephemeral เบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰ WaitForFirstConsumer, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบœเบนเป‰เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบชเบฒเบกเบฒเบ”เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ—เบฑเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ node เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฅเบทเบญเบ node. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเปเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเบšเปˆเบญเบ™เบ™เบตเป‰.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ

เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบœเบนเป‰เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบšเปˆเบญเบ™เบ—เบตเปˆเป„เบ”เป€เบงเบต CSI เบˆเบฐเบชเป‰เบฒเบ‡เบ›เบฐเบฅเบดเบกเบฒเบ™. เบเบฑเบ‡เบšเปเปˆเบกเบตเบงเบดเบ—เบตเบ—เบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบ•เปเปˆเบเบฑเบšเบ„เบปเบ™เบ‚เบฑเบšเป‚เบ”เบเบเบปเบ‡เป€เบžเบทเปˆเบญเบฎเป‰เบญเบ‡เบ‚เปเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบœเบนเป‰เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบˆเบฐเบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡เบˆเบปเบ™เบเปˆเบงเบฒเบกเบฑเบ™เบžเบปเบšเบงเปˆเบฒเบ›เบฐเบฅเบดเบกเบฒเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰ (เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบŠเป‰เบฒ) เบซเบผเบทเบ›เปˆเบญเบเปƒเบซเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบซเป‰เบเบฑเบšเบ„เบปเบ™เบ‚เบฑเบš (เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ—เบฑเบ™เบ—เบต).

เปƒเปเปˆ API CSIStorageCapacity, เป€เบŠเบดเปˆเบ‡เบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™ alpha, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ etcd เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡. เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™ ephemeral เบ—เบปเปˆเบงเป„เบ›, เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบ”เป€เบงเบต, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ: external-provisioner เบ„เบงเบ™เป€เบœเบตเบเปเบœเปˆเบ‚เปเป‰เบกเบนเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบˆเบฒเบเบ„เบปเบ™เบ‚เบฑเบšเบœเปˆเบฒเบ™เบ—เบฒเบ‡เบ›เบปเบเบเบฐเบ•เบด GetCapacity.

เบ–เป‰เบฒเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบฅเบทเบญเบ node เบชเปเบฒเบฅเบฑเบš pod เบ—เบตเปˆเบกเบตเบ›เบฐเบฅเบดเบกเบฒเบ™ unbound เบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบŠเป‰เบฒ, เปเบฅเบฐเป„เบ”เป€เบงเบตเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบธเบ‡. CSIDriver.storageCapacity, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ nodes เบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบžเบฝเบ‡เบžเปเบˆเบฐเบ–เบทเบเบเบปเบเป€เบฅเบตเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡เบ›เบฐเบฅเบดเบกเบฒเบ™ ephemeral เปเบฅเบฐเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™ ephemeral CSI เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เป‚เบ”เบ Kubernetes.

เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด, เบ›เบฐเบฅเบดเบกเบฒเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เบ—เบฑเบ™เบ—เบตเปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบเปˆเบญเบ™เบ—เบตเปˆเบเบฑเบเบˆเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”, เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบ–เบทเบเป€เบฅเบทเบญเบเป‚เบ”เบเป„เบ”เป€เบงเบตเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ external-provisioner เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เปเบกเปˆเบ™เบ‚เป‰เบฒเบกเป„เบ›, เป€เบžเบฒเบฐเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบˆเบฐเบšเปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ kubernetes เบ–เบทเบเบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบฅเป‰เบฒเบชเบฐเป„เบซเบก, เบšเปเปˆเบกเบตเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ„เบงเบฒเบกเบญเบฒเบ”เบชเบฒเบกเบฒเบ”เบˆเบฐเบกเบตเบขเบนเปˆเปƒเบ™เบ—เบธเบเบเปเบฅเบฐเบ™เบตเป€เบกเบทเปˆเบญเบ›เบฐเบฅเบดเบกเบฒเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™, เปเบ•เปˆเป‚เบญเบเบฒเบ”เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ retries เปเบกเปˆเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™.

NB เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹, เป€เบŠเบฑเปˆเบ™โ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบเบฑเบš "เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบขเปˆเบฒเบ‡โ€‹เบ›เบญเบ”โ€‹เป„เบžโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบขเบทเบ™โ€‹เปเบกเบงโ€‹"โ€‹, เปเบฅเบฐโ€‹เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡โ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ™เบฐโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เปƒเบˆโ€‹เป„เบ”เป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบชเบปเบกโ€‹เบšเบนเบ™โ€‹, เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบŠเปˆเบงเบโ€‹เป€เบซเบผเบทเบญโ€‹เบ”เป‰เบฒเบ™โ€‹เบงเบดโ€‹เบŠเบฒโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เปƒเบ™โ€‹เบซเบผเบฑเบโ€‹เบชเบนเบ”โ€‹เบชเบธเบก - เบ–เบฒเบ™ Kubernetes เบˆเบฐเบˆเบฑเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบงเบฑเบ™เบ—เบต 28-30 เบเบฑเบ™เบเบฒ, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™เบ—เบตเปˆเบเป‰เบฒเบงเบซเบ™เป‰เบฒ Kubernetes Mega เบงเบฑเบ™เบ—เบต 14โ€“16 เบ•เบธเบฅเบฒ.

เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž

CSIStorage เบ„เบงเบฒเบกเบญเบฒเบ”เบชเบฒเบกเบฒเบ”

เบงเบฑเบ”เบ–เบธ CSIStorageCapacity เบขเบนเปˆเปƒเบ™ namespaces; เป€เบกเบทเปˆเบญเบญเบญเบเป„เบ”เป€เบงเบต CSI เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เปƒเบ™ namespace เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบกเบฑเบ™เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบˆเปเบฒเบเบฑเบ”เบชเบดเบ”เบ—เบด RBAC เบเบฑเบš CSIStorageCapacity เปƒเบ™เบŠเปˆเบญเบ‡เบ™เบฑเป‰เบ™เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบกเบฒเบˆเบฒเบเปƒเบช. Kubernetes เบšเปเปˆเป„เบ”เป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบญเบฑเบ™เบ™เบตเป‰, เปเบฅเบฐเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ„เบปเบ™เบ‚เบฑเบšเบˆเบฐเบ–เบทเบเปƒเบชเปˆเปƒเบ™ namespace เบ”เบฝเบงเบเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™เบ—เบตเปˆเบชเบธเบ”เบ„เบปเบ™เบ‚เบฑเบšเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเบšเปเปˆเป€เบœเบตเบเปเบœเปˆเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ (เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบšเปˆเบญเบ™เบ—เบตเปˆเบšเบฑเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบฅเบปเป‰เบกเป€เบซเบฅเบง, เบ›เบฐเบกเบฒเบ™ เบ™เบฑเบเปเบ›เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป€เบฅเบทเปˆเบญเบ‡เบ•เบฐเบซเบฅเบปเบเบซเบ™เบงเบ”)

เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ› Volumes Ephemeral

เบ–เป‰เบฒเบœเบนเป‰เปƒเบŠเป‰เบกเบตเบชเบดเบ”เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบเบฑเบ (เป‚เบ”เบเบเบปเบ‡เบซเบผเบทเบ—เบฒเบ‡เบญเป‰เบญเบก), เบžเบงเบเป€เบ‚เบปเบฒเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบ›เบฐเบฅเบดเบกเบฒเบ™ ephemeral เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ›เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบกเบตเบชเบดเบ”เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบเป‰เบญเบ™เบงเปˆเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ” RBAC เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเบ—เบตเปˆเบชเป‰เบฒเบ‡ PVC, เบšเปเปˆเปเบกเปˆเบ™เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบก เบเบฑเบšโ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹, เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบšเปเปˆเป€เบŠเบทเปˆเบญเบ–เบทเบšเปเปˆเบ„เบงเบ™เบกเบตเบชเบดเบ”เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบ›เบฐเบฅเบดเบกเบฒเบ™.

เบ•เบปเบงเบขเปˆเบฒเบ‡:

เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ เบชเบฒเบ‚เบฒ PMEM-CSI เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบžเบทเปˆเบญเปเบฅเปˆเบ™เบเบธเปˆเบก Kubernetes 1.19 เบžเบฒเบเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบชเบฐเป€เปเบทเบญเบ™ QEMU เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบญเบฑเบ™เบŸเบฒ. เบฅเบฐเบซเบฑเบ”เบ„เบปเบ™เบ‚เบฑเบšเบšเปเปˆเป„เบ”เป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡, เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเป„เบ”เป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡.

เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก (Linux, เบœเบนเป‰เปƒเบŠเป‰เบ›เบปเบเบเบฐเบ•เบดเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ Docker, เป€เบšเบดเปˆเบ‡ เบ—เบตเปˆเบ™เบตเป‰ เบฅเบฒเบเบฅเบฐเบญเบฝเบ”) เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบ™เปเบฒเป€เบญเบปเบฒเบเบธเปˆเบกเปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบ”เป€เบงเบต 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 -

CSIStorageCapacity objects เบšเปเปˆเป„เบ”เป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เป‚เบ”เบเบกเบฐเบ™เบธเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™. เบ•เบปเบงเบเบญเบ‡เปเบกเปˆเปเบšเบš Golang เบˆเบฐเบชเบฐเปเบ”เบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰เบˆเบฐเบชเบฐเปเบ”เบ‡เบŠเบทเปˆ, 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>

เปƒเบซเป‰เบžเบฐเบเบฒเบเบฒเบกเบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบกเบตเบ›เบฐเบฅเบดเบกเบฒเบ™ ephemeral เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ›เบ”เบฝเบง. เป€เบ™เบทเป‰เบญเปƒเบ™เป„เบŸเบฅเปŒ 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

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบชเป‰เบฒเบ‡, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเบฑเบเปเบฅเบฐ 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 เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เปƒเบ”โ€‹เบเปโ€‹เบ•เบฒเบก.

เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เบ•เปเปˆเป„เบ›?

เบ—เบฑเบ‡เบชเบญเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฑเบ‡เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบซเบผเบฒเบเบญเบฑเบ™เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบญเบฑเบ™เบŸเบฒ. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เปเป‰เบชเบฐเป€เบซเบ™เบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบšเบฑเบ™เบ—เบถเบเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เป€เบžเบทเปˆเบญเบเป‰เบฒเบเป„เบ›เบชเบนเปˆเบ‚เบฑเป‰เบ™เบ•เบญเบ™เป€เบšเบ•เป‰เบฒ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป„เบ”เป‰เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเปเบฅเบฐเบ›เบฐเบ•เบดเป€เบชเบ”เปเบฅเป‰เบง:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™