ΠšΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚ Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, прослСдявани Π΅Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΈ ΠΎΠ±Π΅ΠΌΠΈ: EmptyDir Π½Π° стСроиди

ΠšΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚ Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, прослСдявани Π΅Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΈ ΠΎΠ±Π΅ΠΌΠΈ: EmptyDir Π½Π° стСроиди

Някои прилоТСния ΡΡŠΡ‰ΠΎ трябва Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ Ρ‚Π΅ са доста спокойни с Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅ няма Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ слСд рСстартиранС.

НапримСр услугитС Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ са ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ ΠΎΡ‚ RAM, Π½ΠΎ ΠΌΠΎΠ³Π°Ρ‚ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° прСмСстват Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ рядко сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚, Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΎΡ‚ RAM, с ΠΌΠ°Π»ΠΊΠΎ влияниС Π²ΡŠΡ€Ρ…Ρƒ цялостната производитСлност. Π”Ρ€ΡƒΠ³ΠΈ прилоТСния трябва Π΄Π° са наясно, Ρ‡Π΅ във Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π²Ρ…ΠΎΠ΄ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅, ΠΊΠ°Ρ‚ΠΎ настройки ΠΈΠ»ΠΈ сСкрСтни ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅.

Kubernetes Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° няколко Π²ΠΈΠ΄Π° Π΅Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅, Π½ΠΎ тяхната функционалност Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π΄ΠΎ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΎ Π² K8s.

Π•Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΎ CSI Ρ‚ΠΎΠΌΠΎΠ²Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Kubernetes Π΄Π° бъдС Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ с CSI Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ, Π·Π° Π΄Π° осигури ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π»Π΅ΠΊΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Π΅ възмоТно Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ структури: настройки, Ρ‚Π°ΠΉΠ½ΠΈ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ Ρ‚.Π½. CSI Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈΡ‚Π΅ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Ρ‚Π°Π·ΠΈ функция Π½Π° Kubernetes, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ сС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°, Ρ‡Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ стандартизирани Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ няма Π΄Π° работят - Π½ΠΎ сС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°, Ρ‡Π΅ Ρ‚Π°ΠΊΠΈΠ²Π° Ρ‚ΠΎΠΌΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½Π° всСки възСл, ΠΈΠ·Π±Ρ€Π°Π½ Π·Π° pod.

Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π·Π° Ρ‚ΠΎΠΌΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ консумират Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ хост рСсурси ΠΈΠ»ΠΈ Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎ само Π½Π° някои хостовС. Π•Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ Kubernetes 1.19 въвСТда Π΄Π²Π΅ Π½ΠΎΠ²ΠΈ Π°Π»Ρ„Π° тСстови ΠΎΠ±Π΅ΠΌΠ½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° Ρ‚ΠΎΠΌΠΎΠ²Π΅Ρ‚Π΅ EmptyDir:

  • Π΅Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅;

  • CSI прослСдяванС Π½Π° ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅.

ΠŸΡ€Π΅Π΄ΠΈΠΌΡΡ‚Π²Π° Π½Π° новия ΠΏΠΎΠ΄Ρ…ΠΎΠ΄:

  • ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈΠ»ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ Ρ‡Ρ€Π΅Π· ΠΌΡ€Π΅ΠΆΠ°;

  • ΠΎΠ±Π΅ΠΌΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠΌΠ°Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС надвишСн ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ;

  • Ρ€Π°Π±ΠΎΡ‚ΠΈ с всички CSI Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ осигуряванС Π½Π° постоянни ΠΎΠ±Π΅ΠΌΠΈ ΠΈ (Π·Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅ Π½Π° прослСдяванС Π½Π° ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚) Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ GetCapacity;

  • ΠΎΠ±Π΅ΠΌΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°Ρ‚ някои ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² зависимост ΠΎΡ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΈ настройкитС;

  • ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС всички стандартни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΎΠ±Π΅ΠΌ (създаванС Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½Π° снимка, прСоразмСряванС ΠΈ Π΄Ρ€.);

  • ΠΎΠ±Π΅ΠΌΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ с всСки ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΌΠΎΠ΄ΡƒΠ» ΠΈΠ»ΠΈ спСцификация Π½Π° ΠΎΠ±Π΅ΠΌ;

  • ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ Π½Π° Kubernetes ΠΈΠ·Π±ΠΈΡ€Π° подходящи възли сам, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π²Π΅Ρ‡Π΅ няма Π½ΡƒΠΆΠ΄Π° Π΄Π° прСдоставятС ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΠ° ΠΈΠ»ΠΈ Π΄Π° промСнятС ΡƒΠ΅Π± ΠΊΡƒΠΊΠΈΡ‡ΠΊΠΈ.

ΠžΠΏΡ†ΠΈΠΈ Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ Π΅Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΠΌΠΎΠ²Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ са подходящи Π·Π° слСднитС случаи Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°:

ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΊΠ°Ρ‚ΠΎ замСститСл Π½Π° RAM Π·Π° memcached

Най-Π½ΠΎΠ²ΠΈΡ‚Π΅ вСрсии Π½Π° memcached Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° постоянна ΠΏΠ°ΠΌΠ΅Ρ‚ (Intel Optane ΠΈ Π΄Ρ€., ΠΏΡ€ΠΈΠ±Π». ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡) вмСсто ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° RAM. ΠšΠΎΠ³Π°Ρ‚ΠΎ внСдряватС memcached Ρ‡Ρ€Π΅Π· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ Π½Π° прилоТСния, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π΅Ρ„Π΅ΠΌΠ΅Ρ€Π½ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π·Π° Π΄Π° поискатС ΠΎΠ±Π΅ΠΌ с Π΄Π°Π΄Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π° бъдС Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΎΡ‚ PMEM, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ CSI Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° PMEM-CSI.

LVM Π»ΠΎΠΊΠ°Π»Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ пространство

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ работят с Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΡ‚ RAM, ΠΌΠΎΠΆΠ΅ Π΄Π° изискват Π»ΠΎΠΊΠ°Π»Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ с ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π·Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ»ΠΈ производитСлност, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΠΌΠΎΠ²Π΅ EmptyDir ΠΎΡ‚ Kubernetes Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° прСдоставят. НапримСр, Π·Π° Ρ‚Π°Π·ΠΈ Ρ†Π΅Π» Π΅ написано TopoLVM.

Π”ΠΎΡΡ‚ΡŠΠΏ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π·Π° ΠΎΠ±Π΅ΠΌΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ

РазпрСдСлянСто Π½Π° Ρ‚ΠΎΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ създаванС Π½Π° пълСн Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ:

Π’Π΅Π·ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅.

Как Ρ€Π°Π±ΠΎΡ‚ΠΈ

Π•Ρ„Π΅ΠΌΠ΅Ρ€Π½ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ΠšΠ»ΡŽΡ‡ΠΎΠ²Π° характСристика Π½Π° Π΅Ρ„Π΅ΠΌΠ΅Ρ€Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΠΌΠΎΠ²Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΅ новият ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ Π½Π° Ρ‚ΠΎΠΌΠΎΠ²Π΅, EphemeralVolumeSource, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ всички ΠΏΠΎΠ»Π΅Ρ‚Π° Π·Π° създаванС Π½Π° заявка Π·Π° ΠΎΠ±Π΅ΠΌ (историчСски Π½Π°Ρ€ΠΈΡ‡Π°Π½Π° заявка Π·Π° постоянСн ΠΎΠ±Π΅ΠΌ, PVC). Нов ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ Π² kube-controller-manager Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° капсулитС, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Ρ‚Π°ΠΊΡŠΠ² ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ Π½Π° ΠΎΠ±Π΅ΠΌ, ΠΈ слСд Ρ‚ΠΎΠ²Π° създава PVC Π·Π° Ρ‚Π΅Π·ΠΈ капсули. Π—Π° CSI Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Ρ‚Π°Π·ΠΈ заявка ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½ ΠΊΠ°Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚ΡƒΠΊ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° спСциална ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°.

Π”ΠΎΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° PVC, Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ всички Π΄Ρ€ΡƒΠ³ΠΈ заявки Π·Π° ΠΎΠ±Π΅ΠΌΠ°. По-спСциално, Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ посочСни ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ създаванС Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½Π° снимка ΠΎΡ‚ Ρ‚ΠΎΠΌ. PVC ΠΎΠ±Π΅ΠΊΡ‚ΡŠΡ‚ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΌΠ°.

Π˜ΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΡΡŠΠ·Π΄Π°Π΄Π΅Π½ΠΈΡ‚Π΅ PVC са ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ: Ρ‚Π΅ са комбинация ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠΌΠ°, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ с Ρ‚ΠΈΡ€Π΅. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½Π° улСсняват взаимодСйствиСто с PVC, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° Π³ΠΎ Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅, Π°ΠΊΠΎ Π·Π½Π°Π΅Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° капсулата ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠΌΠ°. ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊΡŠΡ‚ Π΅, Ρ‡Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π²Π΅Ρ‡Π΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° ΠΎΡ‚ Kubernetes ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ΄ΡŠΡ‚ Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ ΠΎΡ‚ стартиранС.

Π—Π° Π΄Π° сС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Ρ‚ΠΎΠΌΡŠΡ‚ Π΅ ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚ Π·Π°Π΅Π΄Π½ΠΎ с Π³Ρ€ΡƒΠΏΠ°Ρ‚Π°, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΡŠΡ‚ ΠΏΡ€Π°Π²ΠΈ заявка към Ρ‚ΠΎΠΌΠ° ΠΏΠΎΠ΄ собствСника. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠΎΠ΄ΡŠΡ‚ бъдС ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚, Ρ€Π°Π±ΠΎΡ‚ΠΈ стандартният ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΡ‚ΠΏΠ°Π΄ΡŠΡ†ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° ΠΊΠ°ΠΊΡ‚ΠΎ заявката, Ρ‚Π°ΠΊΠ° ΠΈ Ρ‚ΠΎΠΌΠ°.

ЗаявкитС сС ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΡ‚ ΠΎΡ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ‡Ρ€Π΅Π· нормалния ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π½Π° класа Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ класовС с Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈ късно ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½Π΅ (извСстСн ΠΎΡ‰Π΅ ΠΊΠ°Ρ‚ΠΎ WaitForFirstConsumer) сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚, Π·Π° Π΅Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅ ΠΈΠΌΠ° смисъл Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° WaitForFirstConsumer, Ρ‚ΠΎΠ³Π°Π²Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° възСла, Ρ‚Π°ΠΊΠ° ΠΈ наличността Π½Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π±ΠΈΡ€Π° възСл. Π’ΡƒΠΊ сС появява Π½ΠΎΠ²Π° функция.

ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅

ОбикновСно ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ няма информация къдС CSI Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΡŠΡ‚ Ρ‰Π΅ създадС ΠΎΠ±Π΅ΠΌΠ°. ОсвСн Ρ‚ΠΎΠ²Π° няма Π½Π°Ρ‡ΠΈΠ½ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с Π²ΠΎΠ΄Π°Ρ‡Π°, Π·Π° Π΄Π° поиска Ρ‚Π°Π·ΠΈ информация. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ ΠΏΡ€ΠΎΡƒΡ‡Π²Π° възли, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΌΠ΅Ρ€ΠΈ Ρ‚Π°ΠΊΡŠΠ², Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ‚ΠΎΠΌΠΎΠ²Π΅ (късно ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅) ΠΈΠ»ΠΈ оставя ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° мСстополоТСниС изцяло Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° (Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅).

Нов API CSIStorageCapacity, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π² Π°Π»Ρ„Π° Π΅Ρ‚Π°ΠΏ, позволява Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² etcd, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° са Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π·Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΠ°. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ инсталиратС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°, трябва Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ прослСдяванС Π½Π° ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅: external-provisioner трябва Π΄Π° ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° информацията Π·Π° ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° ΠΎΡ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Ρ‡Ρ€Π΅Π· Π½ΠΎΡ€ΠΌΠ°Π»Π΅Π½ GetCapacity.

Ако ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ трябва Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ възСл Π·Π° ΠΏΠΎΠ΄ с Π½Π΅ΠΎΠ±Π²ΡŠΡ€Π·Π°Π½ Ρ‚ΠΎΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° късно ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅, ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΡŠΡ‚ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π» Ρ‚Π°Π·ΠΈ функция ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° внСдряванСто, ΠΊΠ°Ρ‚ΠΎ Π΅ Π·Π°Π΄Π°Π» Ρ„Π»Π°Π³Π° CSIDriver.storageCapacity, Ρ‚ΠΎΠ³Π°Π²Π° Π²ΡŠΠ·Π»ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ нямат Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚ Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈ. Π’ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° Π΅Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° постоянни Ρ‚ΠΎΠΌΠΎΠ²Π΅, Π½ΠΎ Π½Π΅ ΠΈ Π·Π° Π΅Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅ Π½Π° CSI, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Π½ΠΈ ΠΎΡ‚ Kubernetes.

ΠšΠ°ΠΊΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΠΌΠΎΠ²Π΅ сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΏΡ€Π΅Π΄ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΈ ΠΈ тяхното Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ сС ΠΈΠ·Π±ΠΈΡ€Π° ΠΎΡ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΏΡ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ external-provisioner По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ класовСтС Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ с Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½Π΅ сС пропускат, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Ρ‚Π°ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ няма Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ.

Въй ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π·Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π΅ Π½Π° kubernetes Π΅ ΠΏΡ€ΠΈΠ½ΡƒΠ΄Π΅Π½Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ остаряла информация, няма гаранция, Ρ‡Π΅ ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚ΡŠΡ‚ Ρ‰Π΅ бъдС Π½Π°Π»ΠΈΡ‡Π΅Π½ във всСки случай, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚ΠΎΠΌΡŠΡ‚ бъдС създадСн, Π½ΠΎ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° ΡˆΠ°Π½ΡΠΎΠ²Π΅Ρ‚Π΅ Ρ‚ΠΎΠΉ Π΄Π° бъдС създадСн Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΈ ΠΎΠΏΠΈΡ‚ΠΈ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚.

NB ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° информация, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ бСзопасно Π΄Π° β€žΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠ²Π°Ρ‚Π΅ Π½Π° стойката Π·Π° ΠΊΠΎΡ‚ΠΊΠΈβ€œ ΠΈ Π² случай Π½Π° напълно Π½Π΅Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌΠ° ситуация Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π° тСхничСска ΠΏΠΎΠΌΠΎΡ‰ Π½Π° ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π½ΠΈ курсовС - Π‘Π°Π·Π° Kubernetes Ρ‰Π΅ сС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ Π½Π° 28-30 сСптСмври, Π° Π·Π° ΠΏΠΎ-Π½Π°ΠΏΡ€Π΅Π΄Π½Π°Π»ΠΈ спСциалисти Kubernetes Mega 14–16 ΠΎΠΊΡ‚ΠΎΠΌΠ²Ρ€ΠΈ.

сигурност

CSIStorageCapacity

ΠžΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ CSIStorageCapacity сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π² пространства ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°; ΠΊΠΎΠ³Π°Ρ‚ΠΎ пускатС всСки CSI Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π² собствСното пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°, сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅ RBAC ΠΏΡ€Π°Π²Π°Ρ‚Π° Π΄ΠΎ CSIStorageCapacity Π² Ρ‚ΠΎΠ²Π° пространство, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΎΡ‚ΠΊΡŠΠ΄Π΅ ΠΈΠ΄Π²Π°Ρ‚ Π΄Π°Π½Π½ΠΈΡ‚Π΅. Kubernetes Ρ‚Π°ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ Π½Π΅ провСрява Π·Π° Ρ‚ΠΎΠ²Π° ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈΡ‚Π΅ сС поставят Π² Π΅Π΄Π½ΠΎ ΠΈ ΡΡŠΡ‰ΠΎ пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка сС ΠΎΡ‡Π°ΠΊΠ²Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π΄Π° работят ΠΈ Π΄Π° Π½Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ Π΄Π°Π½Π½ΠΈ (ΠΈ Ρ‚ΡƒΠΊ ΠΊΠ°Ρ€Ρ‚Π°Ρ‚Π° ΠΌΠΈ сС ΠΏΡ€ΠΎΠ²Π°Π»ΠΈ, ΠΏΡ€ΠΈΠ±Π». ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π±Ρ€Π°Π΄Π°Ρ‚ Π²ΠΈΡ†)

Π•Ρ„Π΅ΠΌΠ΅Ρ€Π½ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Ако ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΈΠΌΠ°Ρ‚ ΠΏΡ€Π°Π²Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΏΠΎΠ΄ (пряко ΠΈΠ»ΠΈ нСпряко), Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Ρ‰Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π΅Ρ„ΠΈΠΌΠ΅Ρ€Π½ΠΈ Ρ‚ΠΎΠΌΠΎΠ²Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ нямат ΠΏΡ€Π°Π²Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ заявка Π·Π° Ρ‚ΠΎΠΌΠ°. Π’ΠΎΠ²Π° Π΅ Ρ‚Π°ΠΊΠ°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° RBAC сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ към ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€Π°, ΠΊΠΎΠΉΡ‚ΠΎ създава PVC, Π° Π½Π΅ към потрСбитСля. Π’ΠΎΠ²Π° Π΅ основната промяна, която трябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ към вашия Π°ΠΊΠ°ΡƒΠ½Ρ‚, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ Ρ‚Π°Π·ΠΈ функция Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π½Π΅ трябва Π΄Π° ΠΈΠΌΠ°Ρ‚ ΠΏΡ€Π°Π²Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Ρ‚ΠΎΠΌΠΎΠ²Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠžΡ‚Π΄Π΅Π»Π½ΠΎ ΠΊΠ»ΠΎΠ½ PMEM-CSI ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π·Π° стартиранС Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Kubernetes 1.19 във Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини QEMU с всички Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π°Π»Ρ„Π° Π΅Ρ‚Π°ΠΏΠ°. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π½Π΅ Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½, само Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΎ.

На подходяща машина (Linux, Π½ΠΎΡ€ΠΌΠ°Π»Π΅Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄ΠΎΠΊΠ΅Ρ€, Π²ΠΈΠΆ Ρ‚ΡƒΠΊ подробности) Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ‰Π΅ ΠΈΠ·Π²Π΅Π΄Π°Ρ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΈ Ρ‰Π΅ инсталират Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° 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 Π½Π΅ са ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ‡Π΅Ρ‚Π΅Π½ΠΈ ΠΎΡ‚ Ρ…ΠΎΡ€Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° извСстна ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ‚Π΅ Π·Π° шаблон Π½Π° Golang Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ‚ класовСтС Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΠΈΠΌΠ΅Ρ‚ΠΎ, топологията ΠΈ ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚Π°:

$ 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

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ създадСм, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² инструкциитС ΠΏΠΎ-Π³ΠΎΡ€Π΅, Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° капсула ΠΈ 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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€