Π Π°Π΄Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Β«Π€Π»Π°Π½ΡΒ» ΠΏΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² Open Source-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Kubernetes, Π²ΡΠΏΡΡΡΠΈΠ²
ΠΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π΄Π΅ΡΠ°Π»ΡΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΡΠ²Π΅ΡΠΈΠΌ Π½Π° Π²ΠΎΠΏΡΠΎΡ, Π·Π°ΡΠ΅ΠΌ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ Π―Π½Π΄Π΅ΠΊΡΠ° ΡΠΆΠ΅ Π΅ΡΡΡ ΡΡΠ»ΡΠ³Π°
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ?
ΠΠ½ΡΡΡΠΈ Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π΅ΡΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ Kubernetes Π² production (Ρ.Π΅. ΡΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ), ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ (deckhouse), ΠΊΠΎΡΠΎΡΡΠΉ, ΠΊΡΡΠ°ΡΠΈ, ΠΌΡ ΡΠΎΠΆΠ΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ Π² ΡΠΊΠΎΡΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΠΊΠ°ΠΊ Open Source-ΠΏΡΠΎΠ΅ΠΊΡ. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π²ΡΠ΅ ΡΠ²ΠΎΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΡ, Π° Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡ ΡΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ 100, ΠΏΡΠΈΡΡΠΌ Π½Π° ΡΠ°ΠΌΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ ΠΆΠ΅Π»Π΅Π·Π° ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ .
ΠΠ»Π°ΡΡΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ deckhouse, ΠΈΠΌΠ΅ΡΡ Π² ΡΠ΅Π±Π΅ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ: Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ Π³ΡΠ°ΡΠΈΠΊΠ°ΠΌΠΈ, ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ Π°Π»Π΅ΡΡΠ°ΠΌΠΈ, Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ΅ΡΠ΅Π· Π²Π½Π΅ΡΠ½ΠΈΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ² Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊΠΎ Π²ΡΠ΅ΠΌ dashboardβΠ°ΠΌ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π’Π°ΠΊΠΎΠΉ Β«ΠΏΡΠΎΠΊΠ°ΡΠ°Π½Π½ΡΠΉΒ» ΠΊΠ»Π°ΡΡΠ΅Ρ Π½Π΅Ρ ΡΠΌΡΡΠ»Π° ΡΡΠ°Π²ΠΈΡΡ Π² managed-ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π°ΡΠ°ΡΡΡΡ ΡΡΠΎ Π»ΠΈΠ±ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
NB: ΠΡΠΎ Π½Π°Ρ ΠΎΠΏΡΡ, ΠΈ ΠΎΠ½ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½. ΠΡ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΠΌ, ΡΡΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΎΠΈΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² Kubernetes Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ. Π ΡΠ»ΠΎΠ²Ρ, ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ Kubernetes ΠΎΡ Π―Π½Π΄Π΅ΠΊΡΠ° Ρ Π½Π°Ρ Π½Π΅Ρ ΠΈ Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΠΎΡΠ΅Π½ΠΊΡ ΡΡΠΎΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ.
Π§ΡΠΎ ΡΡΠΎ ΠΈ Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ?
ΠΡΠ°ΠΊ, ΠΌΡ ΡΠΆΠ΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π»ΠΈ ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π΅ΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π΅ ΠΊ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΠΌ Π² Kubernetes:
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΡΠ»ΡΠ³ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ Β«ΠΎΠ±Π»Π°ΡΠ½ΡΡ Β» Π΄ΠΈΡΠΊΠΎΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Persistent Volume Π² Kubernetes. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Ρ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° Π½Π΅Ρ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· API, ΡΠΎ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠΈΠ»Π°ΠΌΠΈ. Π’Π°ΠΊ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Ρ Π½Π°Ρ Ρ Π―Π½Π΄Π΅ΠΊΡ.ΠΠ±Π»Π°ΠΊΠΎΠΌ.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΡ Π²Π·ΡΠ»ΠΈ Operation
Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΡΡΠ° Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ°). ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ API Π―Π½Π΄Π΅ΠΊΡ.ΠΠ±Π»Π°ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
- ΠΠ°ΠΊΠ°Π· Π΄ΠΈΡΠΊΠΎΠ² Π²ΠΎ Π²ΡΠ΅Ρ Π·ΠΎΠ½Π°Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΡΠ·Π»ΠΎΠ²;
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ Π΄ΠΈΡΠΊΠΎΠ²;
- Offline resize Π΄Π»Ρ Π΄ΠΈΡΠΊΠΎΠ² (Π―Π½Π΄Π΅ΠΊΡ.ΠΠ±Π»Π°ΠΊΠΎ
Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅). Π ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π΄ΠΎΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ resize, ΡΠΌ. Π½ΠΈΠΆΠ΅.
Π Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ½Π°ΠΏΡΠΎΡΠΎΠ² Π΄ΠΈΡΠΊΠΎΠ².
ΠΠ»Π°Π²Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΈ Π΅Ρ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈΠ΅
ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π² API Π―Π½Π΄Π΅ΠΊΡ.ΠΠ±Π»Π°ΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π΄ΠΈΡΠΊΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ β ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ resizeβΠ° Π΄Π»Ρ PV (Persistent Volume): Π²Π΅Π΄Ρ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ pod ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄ΠΈΡΠΊ, Π±ΡΠ» ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, Π° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ VolumeExpansion.OFFLINE
), ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠΊΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΊ:
If the plugin has only
VolumeExpansion.OFFLINE
expansion capability and volume is currently published or available on a node thenControllerExpandVolume
MUST be called ONLY after either:
- The plugin has controller
PUBLISH_UNPUBLISH_VOLUME
capability andControllerUnpublishVolume
has been invoked successfully.OR ELSE
- The plugin does NOT have controller
PUBLISH_UNPUBLISH_VOLUME
capability, the plugin has nodeSTAGE_UNSTAGE_VOLUME
capability, andNodeUnstageVolume
has been completed successfully.OR ELSE
- The plugin does NOT have controller
PUBLISH_UNPUBLISH_VOLUME
capability, nor nodeSTAGE_UNSTAGE_VOLUME
capability, andNodeUnpublishVolume
has completed successfully.
ΠΠΎ ΡΡΡΠΈ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄ΠΈΡΠΊ ΠΎΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ CSI ΡΠ΅ΡΠ΅Π· sidecarβΡ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠΈΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ:
- Π sidecar-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅
csi-attacher
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ, ΠΏΡΠΈ offline-ΡΠ΅ΡΠ°ΠΉΠ·Π΅ ΠΏΠΎΠΏΡΠΎΡΡΡ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π». ΠΠΈΡΠΊΡΡΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π»ΠΈΠ·Π΄Π΅ΡΡ . - Π§ΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ°ΠΊΠΎΠ΅ sidecar-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅? Π‘Π°ΠΌ CSI-ΠΏΠ»Π°Π³ΠΈΠ½ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ Ρ Kubernetes API, Π° Π»ΠΈΡΡ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° gRPC-Π²ΡΠ·ΠΎΠ²Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ»Π°ΡΡ Π΅ΠΌΡ sidecar-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅
ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ Kubernetes.
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ (CSI-ΠΏΠ»Π°Π³ΠΈΠ½) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠΊΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
- ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ gRPC-Π²ΡΠ·ΠΎΠ²
ControllerExpandVolume
; - ΠΡΡΠ°Π΅ΠΌΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π΄ΠΈΡΠΊ Π² API, Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΡΠΈΠ±ΠΊΡ ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΈΡΠΊ ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½;
- Π‘ΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΈΡΠΊΠ° Π² map, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΄ΠΈΡΠΊΠΈ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ. ΠΠ°Π»Π΅Π΅ Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠΎΡ map ΠΊΠ°ΠΊ
volumeResizeRequired
; - ΠΡΡΡΠ½ΡΡ ΡΠ΄Π°Π»ΡΠ΅ΠΌ pod, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄ΠΈΡΠΊ. Kubernetes ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡ Π΅Π³ΠΎ. Π§ΡΠΎΠ±Ρ Π΄ΠΈΡΠΊ Π½Π΅ ΡΡΠΏΠ΅Π» ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ (
ControllerPublishVolume
) Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ Π΄ΠΈΡΠΊ Π²ΡΡ Π΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²volumeResizeRequired
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΠΎΡΠΈΠ±ΠΊΡ; - CSI-Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ resizeβΠ°. ΠΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎ ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π΄ΠΈΡΠΊ ΠΈΠ·
volumeResizeRequired
; - Π’.ΠΊ. ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΈΡΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π²
volumeResizeRequired
,ControllerPublishVolume
ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π΄ΠΈΡΠΊ ΠΌΠΎΠ½ΡΠΈΡΡΠ΅ΡΡΡ, pod Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ.
ΠΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ, Π½ΠΎ ΠΊΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ. Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΈΡΠΊΠΎΠ² Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ
func DefaultControllerRateLimiter() RateLimiter {
return NewMaxOfRateLimiter(
NewItemExponentialFailureRateLimiter(5*time.Millisecond, 1000*time.Second),
// 10 qps, 100 bucket size. This is only for retry speed and its only the overall factor (not per item)
&BucketRateLimiter{Limiter: rate.NewLimiter(rate.Limit(10), 100)},
)
}
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠΊΠ° ΡΠ°ΡΡΡΠ³ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 15+ ΠΌΠΈΠ½ΡΡ ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ podβΠ°.
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π½Π°ΠΌ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠΎΡ, ΡΡΠ°Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ external-resizer Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠΌΠ°ΡΡΠ°
workqueue.NewItemExponentialFailureRateLimiter(5*time.Millisecond, 5*time.Second)
ΠΡ Π½Π΅ ΠΏΠΎΡΡΠΈΡΠ°Π»ΠΈ Π½ΡΠΆΠ½ΡΠΌ ΡΠΊΡΡΡΠ΅Π½Π½ΠΎ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΈΡΠΊΡΡΡΠΈΡ ΠΈ ΠΏΠ°ΡΡΠΈΡΡ external-resizer, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ offline resize Π΄ΠΈΡΠΊΠΎΠ² β Π°ΡΠ°Π²ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΊΠΎΡΠ΅ ΠΏΡΠΎΠΏΠ°Π΄ΡΡ Ρ Π²ΡΠ΅Ρ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ².
ΠΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ?
ΠΡΠ°ΠΉΠ²Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² Kubernetes Π²Π΅ΡΡΠΈΠΈ 1.15 ΠΈ Π²ΡΡΠ΅. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
- Π€Π»Π°Π³
--allow-privileged
ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅true
Π΄Π»Ρ API-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ kubelet; - ΠΠΊΠ»ΡΡΠ΅Π½Ρ
--feature-gates=VolumeSnapshotDataSource=true,KubeletPluginsWatcher=true,CSINodeInfo=true,CSIDriverRegistry=true
Π΄Π»Ρ API-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ kubelet; - Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (
mount propagation ) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ DockerβΠ° Π΄Π΅ΠΌΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (shared mounts).
ΠΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΠΎ ΡΠ°ΠΌΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- Π£ΠΊΠ°Π·Π°ΡΡ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° (
folder-id
) Π―Π½Π΄Π΅ΠΊΡ.ΠΠ±Π»Π°ΠΊΠ° (ΡΠΌ. Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ); - ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ API Π―Π½Π΄Π΅ΠΊΡ.ΠΠ±Π»Π°ΠΊΠ° Π² CSI-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ Π°ΠΊΠΊΠ°ΡΠ½Ρ. Π ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ Secret Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ
Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΎΡ ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°. Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈΠΎΠΏΠΈΡΠ°Π½ΠΎ , ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ Π°ΠΊΠΊΠ°ΡΠ½Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ»ΡΡΠΈ.
Π ΠΎΠ±ΡΠ΅ΠΌ β
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΠΎΠ³Π° Π½Π°ΠΌ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΠΎΡ CSI-Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π»ΠΈ Π½Π΅ ΠΎΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΡΠ°Π·Π²Π»Π΅ΡΡΡΡ Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Go, Π° Π²Π²ΠΈΠ΄Ρ ΠΎΡΡΡΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π°ΠΌ Π½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π―Π½Π΄Π΅ΠΊΡ ΠΏΡΠΎΡΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΈ ΡΠ΅ΡΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΡΠΎ ΠΌΡ Ρ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π² ΠΈΡ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Ρ Π―Π½Π΄Π΅ΠΊΡΠ° Π² managed-ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Kubernetes Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ CSI-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΡΡΡΠΈΡΡ Π² Open Source. Π’Π°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ Π΄Π»Ρ Π½Π°Ρ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΈΠ΄ΠΈΡΡΡ Π±Π»Π°Π³ΠΎΠΏΡΠΈΡΡΠ½ΡΠΌ β ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ ΠΎΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΡΡΠ»ΡΠ³, Π° Π½Π΅ ΠΎΡ ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.
P.S.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
ΠΠ»Π°Π³ΠΈΠ½Ρ ΡΠΎΠΌΠΎΠ² Π΄Π»Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ Π² Kubernetes: ΠΎΡ Flexvolume ΠΊ CSI Β»; - Β«
ΠΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ Container Storage Interface (Π² Kubernetes ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ) Β»; - Β«
ΠΠΎΡΠΎΠ²ΠΈΡΡ Kubernetes-ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ? ΠΠ½ΠΎΠ½ΡΠΈΡΡΠ΅ΠΌ addon-operator Β»; - Β«
Π Π°ΡΡΠΈΡΡΠ΅ΠΌ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Kubernetes (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π°) Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com