ΠΡΠΊΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΡΠ΅ ΡΠ° Π΄ΠΎΡΡΠ° ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΈ Ρ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ ΡΠ»Π΅Π΄ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ ΠΎΡ RAM, Π½ΠΎ ΠΌΠΎΠ³Π°Ρ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠ΄ΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ, Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΎΡ RAM, Ρ ΠΌΠ°Π»ΠΊΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΡΡ Ρ ΡΡΠ»ΠΎΡΡΠ½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. ΠΡΡΠ³ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ° Π½Π°ΡΡΠ½ΠΎ, ΡΠ΅ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π²Ρ ΠΎΠ΄ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅, ΠΊΠ°ΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅.
Kubernetes Π²Π΅ΡΠ΅ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΠΈΠ΄Π°
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ
Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π·Π° ΡΠΎΠΌΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ Ρ ΠΎΡΡ ΡΠ΅ΡΡΡΡΠΈ ΠΈΠ»ΠΈ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠ°ΠΌΠΎ Π½Π° Π½ΡΠΊΠΎΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅. ΠΡΠΎ Π·Π°ΡΠΎ Kubernetes 1.19 Π²ΡΠ²Π΅ΠΆΠ΄Π° Π΄Π²Π΅ Π½ΠΎΠ²ΠΈ Π°Π»ΡΠ° ΡΠ΅ΡΡΠΎΠ²ΠΈ ΠΎΠ±Π΅ΠΌΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° ΡΠΎΠΌΠΎΠ²Π΅ΡΠ΅ EmptyDir:
-
Π΅ΡΠΈΠΌΠ΅ΡΠ½ΠΈ ΡΠΎΠΌΠΎΠ²Π΅ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅;
-
CSI ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅.
ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π½Π° Π½ΠΎΠ²ΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄:
-
ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈΠ»ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΎ ΡΡΠ΅Π· ΠΌΡΠ΅ΠΆΠ°;
-
ΠΎΠ±Π΅ΠΌΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠΌΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°Π΄Π²ΠΈΡΠ΅Π½ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ;
-
ΡΠ°Π±ΠΎΡΠΈ Ρ Π²ΡΠΈΡΠΊΠΈ CSI Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ ΠΎΠ±Π΅ΠΌΠΈ ΠΈ (Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅Ρ) ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ
GetCapacity
; -
ΠΎΠ±Π΅ΠΌΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°Ρ Π½ΡΠΊΠΎΠΈ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅;
-
ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΎΠ±Π΅ΠΌ (ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ½Π° ΡΠ½ΠΈΠΌΠΊΠ°, ΠΏΡΠ΅ΠΎΡΠ°Π·ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ Π΄Ρ.);
-
ΠΎΠ±Π΅ΠΌΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Ρ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΌΠΎΠ΄ΡΠ» ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΎΠ±Π΅ΠΌ;
-
ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ Π½Π° Kubernetes ΠΈΠ·Π±ΠΈΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π²ΡΠ·Π»ΠΈ ΡΠ°ΠΌ, ΡΠ°ΠΊΠ° ΡΠ΅ Π²Π΅ΡΠ΅ Π½ΡΠΌΠ° Π½ΡΠΆΠ΄Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΈΠ»ΠΈ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅Π± ΠΊΡΠΊΠΈΡΠΊΠΈ.
ΠΠΏΡΠΈΠΈ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π΅ΡΠΈΠΌΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠΎΠΌΠΎΠ²Π΅ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π·Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°:
ΠΠΎΡΡΠΎΡΠ½Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΠΊΠ°ΡΠΎ Π·Π°ΠΌΠ΅ΡΡΠΈΡΠ΅Π» Π½Π° RAM Π·Π° memcached
ΠΠ°ΠΉ-Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° memcached
LVM Π»ΠΎΠΊΠ°Π»Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Ρ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΡ RAM, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π»ΠΎΠΊΠ°Π»Π½ΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ ΡΠΎΠΌΠΎΠ²Π΅ EmptyDir ΠΎΡ Kubernetes Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΡΠ°Π·ΠΈ ΡΠ΅Π» Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ
ΠΠΎΡΡΡΠΏ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π·Π° ΠΎΠ±Π΅ΠΌΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ
Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ»Π΅Π½ ΡΠΎΠΌ, ΠΊΠΎΠ³Π°ΡΠΎ:
-
Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅
ΠΎΠ±Π΅ΠΌΠ½Π° ΡΠ½ΠΈΠΌΠΊΠ° ; -
ΡΡΠ·Π΄Π°Π²Π°Π½Π΅
ΠΎΠ±Π΅ΠΌΠ½ΠΈ ΠΊΠΎΠΏΠΈΡ ; -
ΡΠ°Π±ΠΎΡΠ°
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ .
Π’Π΅Π·ΠΈ ΡΠΎΠΌΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ°Ρ Π² ΡΠ΅ΠΆΠΈΠΌ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ
ΠΡΠ΅ΠΌΠ΅ΡΠ½ΠΈ ΡΠΎΠΌΠΎΠ²Π΅ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠ»ΡΡΠΎΠ²Π° Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° Π΅ΡΠ΅ΠΌΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠΎΠΌΠΎΠ²Π΅ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΅ Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΡΠΎΠΌΠΎΠ²Π΅, EphemeralVolumeSource
, ΡΡΠ΄ΡΡΠΆΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΎΠ±Π΅ΠΌ (ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΠΈΡΠ°Π½Π° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ ΠΎΠ±Π΅ΠΌ, PVC). ΠΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π² kube-controller-manager
ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Ρ ΡΠ°ΠΊΡΠ² ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΎΠ±Π΅ΠΌ, ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΠ·Π΄Π°Π²Π° PVC Π·Π° ΡΠ΅Π·ΠΈ ΠΊΠ°ΠΏΡΡΠ»ΠΈ. ΠΠ° CSI Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½ ΠΊΠ°ΡΠΎ Π΄ΡΡΠ³ΠΈΡΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΠΊ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°.
ΠΠΎΠΊΠ°ΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΡΠ°ΠΊΠΈΠ²Π° PVC, ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ Π΄ΡΡΠ³ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΎΠ±Π΅ΠΌΠ°. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠΌ ΠΈΠ»ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ½Π° ΡΠ½ΠΈΠΌΠΊΠ° ΠΎΡ ΡΠΎΠΌ. PVC ΠΎΠ±Π΅ΠΊΡΡΡ ΡΡΠ΄ΡΡΠΆΠ° ΠΈ ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΌΠ°.
ΠΠΌΠ΅Π½Π°ΡΠ° Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ PVC ΡΠ° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ: ΡΠ΅ ΡΠ° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π³ΡΡΠΏΠ°ΡΠ° ΠΈ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠΎΠΌΠ°, ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Ρ ΡΠΈΡΠ΅. ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΠ»Π΅ΡΠ½ΡΠ²Π°Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Ρ PVC, Π·Π°ΡΠΎΡΠΎ Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° Π³ΠΎ ΡΡΡΡΠΈΡΠ΅, Π°ΠΊΠΎ Π·Π½Π°Π΅ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠ°ΠΏΡΡΠ»Π°ΡΠ° ΠΈ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠΎΠΌΠ°. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π΅, ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π²Π΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΎΡΠΊΡΠΈΠ²Π° ΠΎΡ Kubernetes ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΏΠΎΠ΄ΡΡ Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ ΠΎΡ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅.
ΠΠ° Π΄Π° ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΡΠΎΠΌΡΡ Π΅ ΠΈΠ·ΡΡΠΈΡ Π·Π°Π΅Π΄Π½ΠΎ Ρ Π³ΡΡΠΏΠ°ΡΠ°, ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈ Π·Π°ΡΠ²ΠΊΠ° ΠΊΡΠΌ ΡΠΎΠΌΠ° ΠΏΠΎΠ΄ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ°. ΠΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ΄ΡΡ Π±ΡΠ΄Π΅ ΠΈΠ·ΡΡΠΈΡ, ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΠΏΠ°Π΄ΡΡΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΡΡΠΈΠ²Π° ΠΊΠ°ΠΊΡΠΎ Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, ΡΠ°ΠΊΠ° ΠΈ ΡΠΎΠΌΠ°.
ΠΠ°ΡΠ²ΠΊΠΈΡΠ΅ ΡΠ΅ ΡΡΠΏΠΎΡΡΠ°Π²ΡΡ ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π· Π½ΠΎΡΠΌΠ°Π»Π½ΠΈΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ Π½Π° ΠΊΠ»Π°ΡΠ° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΊΠ»Π°ΡΠΎΠ²Π΅ Ρ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈ ΠΊΡΡΠ½ΠΎ ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½Π΅ (ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΎΡΠ΅ ΠΊΠ°ΡΠΎ WaitForFirstConsumer
) ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ, Π·Π° Π΅ΡΠΈΠΌΠ΅ΡΠ½ΠΈ ΡΠΎΠΌΠΎΠ²Π΅ ΠΈΠΌΠ° ΡΠΌΠΈΡΡΠ» Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° WaitForFirstConsumer
, ΡΠΎΠ³Π°Π²Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΊΠ°ΠΊΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ·Π΅Π»Π°, ΡΠ°ΠΊΠ° ΠΈ Π½Π°Π»ΠΈΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·Π±ΠΈΡΠ° Π²ΡΠ·Π΅Π». Π’ΡΠΊ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ.
ΠΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ Π½ΡΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊΡΠ΄Π΅ CSI Π΄ΡΠ°ΠΉΠ²Π΅ΡΡΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ ΠΎΠ±Π΅ΠΌΠ°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π½ΡΠΌΠ° Π½Π°ΡΠΈΠ½ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Ρ Π²ΠΎΠ΄Π°ΡΠ°, Π·Π° Π΄Π° ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ ΠΏΡΠΎΡΡΠ²Π° Π²ΡΠ·Π»ΠΈ, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π°ΠΌΠ΅ΡΠΈ ΡΠ°ΠΊΡΠ², Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΎΠΌΠΎΠ²Π΅ (ΠΊΡΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅) ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π²Ρ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΡΡΠ»ΠΎ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° (Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅).
ΠΠΎΠ² CSIStorageCapacity
, ΠΊΠΎΠΉΡΠΎ Π΅ Π² Π°Π»ΡΠ° Π΅ΡΠ°ΠΏ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π΄Π° ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ Π² etcd, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΠΊΡΠ°ΡΠΊΠΎΡΡΠ°ΠΉΠ½ΠΈ ΡΠΎΠΌΠΎΠ²Π΅ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΡΡΡΠ±Π²Π° Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠ° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅: external-provisioner
ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠ°, ΠΏΠΎΠ»ΡΡΠ΅Π½Π° ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΡΠ΅Π· Π½ΠΎΡΠΌΠ°Π»Π΅Π½ GetCapacity
.
ΠΠΊΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ Π²ΡΠ·Π΅Π» Π·Π° ΠΏΠΎΠ΄ Ρ Π½Π΅ΠΎΠ±Π²ΡΡΠ·Π°Π½ ΡΠΎΠΌ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΡΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅, ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡΡ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π» ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ, ΠΊΠ°ΡΠΎ Π΅ Π·Π°Π΄Π°Π» ΡΠ»Π°Π³Π° CSIDriver.storageCapacity
, ΡΠΎΠ³Π°Π²Π° Π²ΡΠ·Π»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π½ΡΠΌΠ°Ρ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅Ρ Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΠ΅ Π±ΡΠ΄Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡΡ
Π²ΡΡΠ»Π΅Π½ΠΈ. Π’ΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΠΊΡΠΎ Π·Π° Π΅ΡΠΈΠΌΠ΅ΡΠ½ΠΈ ΡΠΎΠΌΠΎΠ²Π΅ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ ΡΠΎΠΌΠΎΠ²Π΅, Π½ΠΎ Π½Π΅ ΠΈ Π·Π° Π΅ΡΠΈΠΌΠ΅ΡΠ½ΠΈ ΡΠΎΠΌΠΎΠ²Π΅ Π½Π° CSI, Π·Π°ΡΠΎΡΠΎ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΈ ΠΎΡ Kubernetes.
ΠΠ°ΠΊΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ ΡΠΎΠΌΠΎΠ²Π΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΏΡΠ΅Π΄ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΈ ΠΈ ΡΡΡ
Π½ΠΎΡΠΎ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ° ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ external-provisioner
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΊΠ»Π°ΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Ρ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ°ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ Π½Π° kubernetes Π΅ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΎΡΡΠ°ΡΡΠ»Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½ΡΠΌΠ° Π³Π°ΡΠ°Π½ΡΠΈΡ, ΡΠ΅ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΡΡ ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠΎΠΌΡΡ Π±ΡΠ΄Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½, Π½ΠΎ Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π° ΡΠ°Π½ΡΠΎΠ²Π΅ΡΠ΅ ΡΠΎΠΉ Π΄Π° Π±ΡΠ΄Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π±Π΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΈ ΠΎΠΏΠΈΡΠΈ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Ρ.
NB ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄Π° βΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠΎΠΉΠΊΠ°ΡΠ° Π·Π° ΠΊΠΎΡΠΊΠΈβ ΠΈ Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π½Π°ΠΏΡΠ»Π½ΠΎ Π½Π΅ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠ° ΡΠΈΡΡΠ°ΡΠΈΡ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠ°Π½Π° ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠ° ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½ΠΈ ΠΊΡΡΡΠΎΠ²Π΅ -
ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ
CSIStorageCapacity
ΠΠ±Π΅ΠΊΡΠΈΡΠ΅ CSIStorageCapacity ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π°; ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΡΠΊΠ°ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ CSI Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°, ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ RBAC ΠΏΡΠ°Π²Π°ΡΠ° Π΄ΠΎ CSIStorageCapacity Π² ΡΠΎΠ²Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΎΡΠΊΡΠ΄Π΅ ΠΈΠ΄Π²Π°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅. Kubernetes ΡΠ°ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π·Π° ΡΠΎΠ²Π° ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΡ Π² Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°, ΡΠ°ΠΊΠ° ΡΠ΅ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ ΠΈ Π΄Π° Π½Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈ Π΄Π°Π½Π½ΠΈ (ΠΈ ΡΡΠΊ ΠΊΠ°ΡΡΠ°ΡΠ° ΠΌΠΈ ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»ΠΈ, ΠΏΡΠΈΠ±Π». ΠΏΡΠ΅Π²ΠΎΠ΄Π°Ρ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Π±ΡΠ°Π΄Π°Ρ Π²ΠΈΡ)
ΠΡΠ΅ΠΌΠ΅ΡΠ½ΠΈ ΡΠΎΠΌΠΎΠ²Π΅ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠΊΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΈΠΌΠ°Ρ ΠΏΡΠ°Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΏΠΎΠ΄ (ΠΏΡΡΠΊΠΎ ΠΈΠ»ΠΈ Π½Π΅ΠΏΡΡΠΊΠΎ), ΡΠ΅ ΡΡΡΠΎ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°Ρ Π΅ΡΠΈΠΌΠ΅ΡΠ½ΠΈ ΡΠΎΠΌΠΎΠ²Π΅ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ Π½ΡΠΌΠ°Ρ ΠΏΡΠ°Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°Ρ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΠΎΠΌΠ°. Π’ΠΎΠ²Π° Π΅ ΡΠ°ΠΊΠ°, Π·Π°ΡΠΎΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ΅ Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° RBAC ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΡΠ·Π΄Π°Π²Π° PVC, Π° Π½Π΅ ΠΊΡΠΌ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΏΡΠΎΠΌΡΠ½Π°, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ΄Π΅Π»Π½ΠΎ
ΠΠ° ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ° ΠΌΠ°ΡΠΈΠ½Π° (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 ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ ΠΊΠ»Π°ΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΠΈΠΌΠ΅ΡΠΎ, ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° ΠΈ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠ°:
$ 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
Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉ.
ΠΠ°ΠΊΠ²Π° Π΅ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ°?
Π Π΄Π²Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Ρ. ΠΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΡ Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π°Π»ΡΠ° ΡΠ΅ΡΡΠ²Π°Π½Π΅. ΠΡΡΠ·ΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΊΡΠΌ Π±Π΅ΡΠ° Π΅ΡΠ°ΠΏΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΊΠΎΠΈ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈ Π²Π΅ΡΠ΅ ΡΠ° Π±ΠΈΠ»ΠΈ ΡΠ°Π·Π³Π»Π΅Π΄Π°Π½ΠΈ ΠΈ ΠΎΡΡ Π²ΡΡΠ»Π΅Π½ΠΈ:
-
KEP-1698: ΡΠΎΠ΄ΠΎΠ²ΠΈ Π΅ΡΠΈΠΌΠ΅ΡΠ½ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΎΠΌΠΎΠ²Π΅ -
KEP-1472: ΠΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com