ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅, Π₯Π°Π±ΡΠΎΠ°ΡΠ΅Π»ΠΈ! Kubernetes Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°ΡΠ° ΠΎΠ±Π»Π°ΡΠ½Π° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°. Π’Π°Π·ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ, ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½Π°ΡΠ° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΆΠΎΠ½ ΠΡΡΠ½Π΄Π΅Π» ΠΈ ΠΠΆΡΡΡΠΈΠ½ ΠΠΎΠΌΠΈΠ½Π³ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡ Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° Kubernetes ΠΈ ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π²Π°Ρ Ρ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. Π‘ΡΡΠΏΠΊΠ° ΠΏΠΎ ΡΡΡΠΏΠΊΠ° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ ΠΎΠ±Π»Π°ΡΠ½ΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π·Π° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΠ΅ ΡΡΠ΅Π΄Π° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π²ΠΈ Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π°Π΄ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
β’ Π©Π΅ Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ Kubernetes ΠΎΡ Π½ΡΠ»Π°ΡΠ°: Π½Π΅ Π΅ Π½ΡΠΆΠ΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΠΎΠΏΠΈΡ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΌΠ°ΡΠ°. β’ Π©Π΅ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ ΡΠ΅ ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° Π½Π° Kubernetes ΠΎΡ Amazon, Google ΠΈ Π΄Ρ. β’ Π©Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ Kubernetes Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΡΠ» Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈ. β’ Π©Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠΈΡΠ΅ ΠΏΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π° ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ, ΠΌΠΎΡΠ½ΠΎΡΡ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ. β’ Π©Π΅ Π½Π°ΡΡΠΈΡΠ΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. β’ Π©Π΅ ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΡ Π°ΠΊΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΈΠ½Π΄ΡΡΡΡΠΈΠ°Π»Π½ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ». β’ Π©Π΅ Π²Π½Π΅Π΄ΡΠΈΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° DevOps Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅, Π·Π° Π΄Π° ΡΡΠ°Π½Π°Ρ Π΅ΠΊΠΈΠΏΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π²ΠΈ, Π±ΡΡΠ·ΠΈ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ.
ΠΠ° ΠΊΠΎΠ³ΠΎ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ°
ΠΠ½ΠΈΠ³Π°ΡΠ° Π΅ Π½Π°ΠΉ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΡΡΠ°, ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΡΡΡΠ²ΡΡΠΈ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ»ΡΠ³ΠΈ, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Ρ Π½ΠΎΠ²ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈΠ»ΠΈ ΠΌΠΈΠ³ΡΠΈΡΠ°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Kubernetes ΠΈ ΠΎΠ±Π»Π°ΠΊΠ°. ΠΠ΅ ΡΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π°ΠΉΡΠ΅, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠΌΠ΅Π΅ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ Kubernetes ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ - Π½ΠΈΠ΅ ΡΠ΅ Π²ΠΈ Π½Π°ΡΡΠΈΠΌ Π½Π° Π²ΡΠΈΡΠΊΠΎ.
ΠΠΏΠΈΡΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π° Kubernetes ΡΡΡΠΎ ΡΠ΅ Π½Π°ΠΌΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅: ΡΡΠΊ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎ ΡΠ΅ΠΌΠΈ ΠΊΠ°ΡΠΎ RBAC, Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡ. ΠΠ°Π΄ΡΠ²Π°ΠΌΠ΅ ΡΠ΅, ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π΅ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΈ Π·Π° Π²Π°Ρ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π²Π°ΡΠΈΡΠ΅ ΡΠΌΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠΈΡ.
ΠΠ° ΠΊΠ°ΠΊΠ²ΠΈ Π²ΡΠΏΡΠΎΡΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ ΠΊΠ½ΠΈΠ³Π°ΡΠ°
ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ° ΠΎΠ±ΡΡΠ΄ΠΈΡ ΠΌΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Kubernetes Ρ Ρ ΠΈΠ»ΡΠ΄ΠΈ Ρ ΠΎΡΠ°, Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΌΠ΅ ΠΊΠ°ΠΊΡΠΎ Ρ Π»ΠΈΠ΄Π΅ΡΠΈ ΠΈ Π΅ΠΊΡΠΏΠ΅ΡΡΠΈ Π² ΠΈΠ½Π΄ΡΡΡΡΠΈΡΡΠ°, ΡΠ°ΠΊΠ° ΠΈ Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½ΠΎΠ²Π°ΡΠΈ. ΠΠΎ-Π΄ΠΎΠ»Ρ ΡΠ° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π²ΡΠΏΡΠΎΡΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΠΈΡ Π° ΠΈΡΠΊΠ°Π»ΠΈ Π΄Π° Π²ΠΈΠ΄ΡΡ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π² ΡΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅.
- "ΠΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π° ΠΌΠ΅ Π·Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΎΡΠ΄Π΅Π»ΡΠΌ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ°Π·ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ. ΠΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ΅ ΡΠ΅ΡΠΈ ΡΡ Π·Π° ΠΌΠ΅Π½ ΠΈ ΠΌΠΎΡ Π΅ΠΊΠΈΠΏ?"
- "Kubernetes ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½, Π½ΠΎ ΠΈΠΌΠ° Π΄ΠΎΡΡΠ° Π²ΠΈΡΠΎΠΊ ΠΏΡΠ°Π³ Π½Π° Π²Π»ΠΈΠ·Π°Π½Π΅. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ Π΅ ΡΡΡΠ΄Π½Π°, Π½ΠΎ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½ΠΎΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½ΠΈ ΠΏΠ»Π°ΡΠΈ. Π©Π΅ ΡΠ΅ ΡΠ°Π΄Π²Π°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΡΡΠ²Π΅ΡΠΈ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Ρ ΠΎΡΠ°ΡΠ° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Π² ΡΠ΅Π°Π»Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈ Ρ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°ΠΌΠ΅."
- "ΠΠΈ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΡΠ±Π΅ΠΊΡΠΈΠ²Π½ΠΈ ΡΡΠ²Π΅ΡΠΈ. ΠΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° Kubernetes ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΈ Π·Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ Π΅ΠΊΠΈΠΏΠΈ. ΠΠΎΠ³Π°ΡΠΎ Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ Π½Π΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ, ΠΊΠ°ΠΊ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠΎΠΉ ΠΎΡ ΡΡΡ Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΡ? ΠΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ·Π±ΠΎΡΠ°?"
Π, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡΡ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠΏΡΠΎΡΠΈ:
- "ΠΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Kubernetes, Π±Π΅Π· Π΄Π° Π½Π°ΡΡΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° ΠΌΠΈ?"
ΠΠ·ΡΠ΅Π·ΠΊΠ°. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Secret
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Kubernetes ΠΎΡ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ (Ρ.Π΅. ΠΎΡ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ) Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°. ΠΡΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° ΡΡΠ΅Π΄Π°, DNS Π°Π΄ΡΠ΅ΡΠΈ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ Π·Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡ.
Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΊΠΎΠ΄Π°, Π½ΠΎ ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π³ΡΠ²ΠΊΠ°Π². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΡΠ΅ ΡΡΡΠ±Π²Π° ΠΎΡΠ½ΠΎΠ²ΠΎ Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΡΠ΅ ΠΈ ΡΠ°Π·Π³ΡΡΡΠ°ΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈ. ΠΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΎΡ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅ ΠΎΡ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°.
Kubernetes ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°. ΠΡΡΠ²ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π°ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, ΡΠΊΠ°Π·Π°Π½ΠΈ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° pod ΡΠ΅ΡΡΠΏΠΊΠ°ΡΠ° (Π²ΠΈΠΆΡΠ΅ ΠΏΠΎΠ΄Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ "ΠΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°" Π½Π° ΡΡΡ. 192). ΠΡΠΎΡΠΎ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² Kubernetes, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ConfigMap ΠΈ Secret.
Π ΡΠ°Π·ΠΈ Π³Π»Π°Π²Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠ΅Π·ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ ΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π½ΡΠΊΠΎΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΈ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° pod-ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°
ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ, ΡΠ΅ Π²ΡΠ² Π²Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΈΠΌΠ° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½ΡΠΊΠΎΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² Π½Π΅Π³ΠΎΠ²ΠΈΡ ConfigMap. ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Helm ΡΠ°ΡΡ (Π²ΠΆ. ΡΠ°Π·Π΄Π΅Π»Π° βHelm: ΠΏΠ°ΠΊΠ΅ΡΠ΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π·Π° Kubernetesβ Π½Π° ΡΡΡ. 102), ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ΡΠ΅ ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΈ Π΄Π° ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π²Π°ΡΠΈΡΠ΅ pod-ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ ΠΈΠ·ΡΡΠ΅Π½ ΡΡΠΈΠΊ. ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° Π°Π½ΠΎΡΠ°ΡΠΈΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° Π²Π°ΡΠ΅ΡΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") .
| sha256sum }}Π‘Π΅Π³Π° ΡΠ°Π±Π»ΠΎΠ½ΡΡ Π·Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π° ΡΡΠΌΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ: ΠΏΡΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΠΌΠ°ΡΠ° ΡΠ΅ ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°. ΠΠΊΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° helm upgrade, Helm ΡΠ΅ ΠΎΡΠΊΡΠΈΠ΅, ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π° ΠΈ ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ pod-ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ.
ΠΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² Kubernetes
ΠΠ΅ΡΠ΅ Π·Π½Π°Π΅ΠΌ, ΡΠ΅ ΠΎΠ±Π΅ΠΊΡΡΡ ConfigMap ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π³ΡΠ²ΠΊΠ°Π² ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π΅ ΡΠ΅ΠΊΡΠ΅ΡΠ½Π° ΠΈ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½Π°: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ°ΡΠΎΠ»ΠΈ ΠΈΠ»ΠΈ API ΠΊΠ»ΡΡΠΎΠ²Π΅. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΈ Π² ConfigMap, Π½ΠΎ ΡΠ°ΠΊΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΅ ΠΈΠ΄Π΅Π°Π»Π½ΠΎ.
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° Kubernetes ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΎΠ±Π΅ΠΊΡ ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΡΠΈΠΏ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ: Secret. Π ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΠ°ΡΡ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΡΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ Π² Π½Π°ΡΠ΅ΡΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΡΠ²ΠΎ, ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΉΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° Π½Π° Kubernetes Π·Π° ΠΎΠ±Π΅ΠΊΡΠ° Secret (Π²ΠΆ. hello-secret-env/k8s/secret.yaml):
apiVersion: v1
kind: Secret
metadata:
name: demo-secret
stringData:
magicWord: xyzzy
Π ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈΡΡ ΠΊΠ»ΡΡ magicWord ΠΈΠΌΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ xyzzy (en.wikipedia.org/wiki/Xyzzy_(computing)). ΠΡΠΌΠ°ΡΠ° xyzzy Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² ΡΠ²Π΅ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠΈΡΠ΅. ΠΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ ConfigMap, Π² ΠΎΠ±Π΅ΠΊΡΠ° Secret ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠ° ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ ΡΡΠΊ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° Π΄Π²ΠΎΠΉΠΊΠ° βΠΊΠ»ΡΡ β ΡΡΠΎΠΉΠ½ΠΎΡΡβ.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ Secret ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°
ΠΠ°ΠΊΡΠΎ ΠΈ ConfigMap, ΠΎΠ±Π΅ΠΊΡΡΡ Secret ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ Π΄ΠΈΡΠΊ. Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠΈΠΌ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΎΡ Secret:
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ:
- ΠΈΠΌΠ΅: Π΄Π΅ΠΌΠΎΠ½
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅: cloudnatived/demo:hello-secret-env
ΠΏΠΎΡΡΠΎΠ²Π΅:
- ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅Π½ΠΠΎΡΡ: 8888
ΡΡΠ΅Π΄Π°:
- ΠΈΠΌΠ΅: ΠΠ ΠΠΠΠ’Π‘Π’ΠΠΠ
ΡΡΠΎΠΉΠ½ΠΎΡΡΠΡ:
secretKeyRef:
ΠΈΠΌΠ΅: demo-secret
ΠΊΠ»ΡΡ: magicWordΠΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ demo, Π·Π° Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈΡΠ΅:
kubectl apply -f hello-secret-env/k8s/
ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅.ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ "Π΄Π΅ΠΌΠΎΠ½" ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΎ
ΡΠ΅ΠΊΡΠ΅Ρ "demo-secret" ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΠ°ΠΊΡΠΎ ΠΏΡΠ΅Π΄ΠΈ, ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ΅ΡΠ΅ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΠΏΠΎΡΡ ΠΊΡΠΌ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ, Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π² Π±ΡΠ°ΡΠ·ΡΡΠ° ΡΠΈ:
kubectl port-forward deploy/demo 9999:8888
ΠΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ ΠΎΡ 127.0.0.1:9999 -> 8888
ΠΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ ΠΎΡ [::1]:9999 -> 8888ΠΡΠΈ ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° Π°Π΄ΡΠ΅ΡΠ° :9999/ ΡΡΡΠ±Π²Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ:
Π’Π°ΠΉΠ½Π°ΡΠ° Π΄ΡΠΌΠ° Π΅ "xyzzy"
ΠΠ°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ Secret Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅
Π ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΠΌ ΠΎΠ±Π΅ΠΊΡ Secret Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠ°ΠΉΠ». ΠΠΎΠ΄ΡΡ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° hello-secret-file Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ demo.
ΠΠ° Π΄Π° ΡΠ²ΡΡΠΆΠ΅ΠΌ Secret ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠ°ΠΉΠ», ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅:
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ:
- ΠΈΠΌΠ΅: Π΄Π΅ΠΌΠΎΠ½
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅: cloudnatived/demo:hello-secret-file
ΠΏΠΎΡΡΠΎΠ²Π΅:
- ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅Π½ΠΠΎΡΡ: 8888
volumeMounts:
- ΠΈΠΌΠ΅: demo-secret-volume
mountPath: "/secrets/"
ΡΠ°ΠΌΠΎΠΠ°Π§Π΅ΡΠ΅Π½Π΅: true
ΠΎΠ±Π΅ΠΌΠΈ:
- ΠΈΠΌΠ΅: demo-secret-volume
secret:
secretName: demo-secretΠΠ°ΠΊΡΠΎ Π² ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π° Β«Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ ΠΎΠ±Π΅ΠΊΡΠΈ ConfigMapΒ» Π½Π° Ρ. 240, ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΠΎΠΌ (Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ demo-secret-volume) ΠΈ Π³ΠΎ ΡΠ²ΡΡΠ·Π²Π°ΠΌΠ΅ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π² ΡΠ΅ΠΊΡΠΈΡΡΠ° Π·Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ volumeMounts. Π ΠΏΠΎΠ»Π΅ΡΠΎ mountPath Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ /secrets, ΡΠ°ΠΊΠ° ΡΠ΅ Kubernetes ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π² ΡΠ°Π·ΠΈ ΠΏΠ°ΠΏΠΊΠ° ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠ» Π·Π° Π²ΡΡΠΊΠ° Π΄Π²ΠΎΠΉΠΊΠ° βΠΊΠ»ΡΡ β ΡΡΠΎΠΉΠ½ΠΎΡΡβ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² ΠΎΠ±Π΅ΠΊΡΠ° Secret.
Π Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° Π΄Π²ΠΎΠΉΠΊΠ° βΠΊΠ»ΡΡ β ΡΡΠΎΠΉΠ½ΠΎΡΡβ Ρ ΠΈΠΌΠ΅ magicWord, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠ» /secrets/magicWord Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅.
ΠΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠΎΠ·ΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π·ΡΠ»ΡΠ°ΡΡΡ ΡΡΡΠ±Π²Π° Π΄Π° Π΅ ΡΡΡΠΈΡΡ:
Π’Π°ΠΉΠ½Π°ΡΠ° Π΄ΡΠΌΠ° Π΅ "xyzzy"
Π§Π΅ΡΠ΅Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ Secret
Π ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΡΠ°Π·Π΄Π΅Π» ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° kubectl describe, Π·Π° Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ConfigMap. ΠΠΎΠΆΠ΅ Π»ΠΈ ΡΡΡΠΎΡΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΈ Ρ Secret?
kubectl describe secret/demo-secret
ΠΠΌΠ΅: demo-secret
Namespace: default
ΠΡΠΈΠΊΠ΅ΡΠΈ:
ΠΠ½ΠΎΡΠ°ΡΠΈΠΈ:
Π’ΠΈΠΏ: Opaque
ΠΠ°Π½Π½ΠΈ
====
magicWord: 5 Π±ΠΈΡΠ°ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΡΠ°ΠΌΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π΅ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ. ΠΠ±Π΅ΠΊΡΠΈΡΠ΅ Secret Π² Kubernetes ΠΈΠΌΠ°Ρ ΡΠΈΠΏ Opaque: ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡΡ Π½ΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π΅ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° Π² ΠΈΠ·Π²ΠΎΠ΄Π° Π½Π° kubectl describe, Π² ΠΆΡΡΠ½Π°Π»ΠΈΡΠ΅ ΠΈ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π°ΠΉΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ°Π·ΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ YAML, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° kubectl get:
kubectl get secret/demo-secret -o yaml
apiVersion: v1
data:
magicWord: eHl6enk=
kind: Secret
metadata:
...
type: Opaquebase64
ΠΠ°ΠΊΠ²ΠΎ Π΅ eHl6enk=, ΡΡΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ? ΠΡΡΡΠ½ΠΎΡΡ, ΡΠΎΠ²Π° Π΅ ΠΎΠ±Π΅ΠΊΡ Secret, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π² base64 ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°. Base64 Π΅ ΡΡ Π΅ΠΌΠ° Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π½ΠΈΠ· ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π±ΠΈΠ½Π°ΡΠ½Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π° Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠ»ΡΡΠ°Ρ Ρ ΠΊΠ»ΡΡΠ° Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ TLS), ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Secret Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² base64 ΡΠΎΡΠΌΠ°Ρ.
Π’Π΅ΠΊΡΡΡΡ beHl6enk= ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π½Π°ΡΠ°ΡΠ° ΡΠ°ΠΉΠ½Π° Π΄ΡΠΌΠ° xyzzy, Π·Π°ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π° Π² base64. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΠΈΡΠ΅ Π² ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° base64 βdecode:
echo "eHl6enk=" | base64 --decode
xyzzyΠ’Π°ΠΊΠ°, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Kubernetes Π²ΠΈ ΠΏΡΠ΅Π΄ΠΏΠ°Π·Π²Π° ΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΈΠ»ΠΈ Π»ΠΎΠ³ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΠΏΡΠ°Π²Π° Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Secret Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ°, ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈ Π² base64 ΡΠΎΡΠΌΠ°Ρ ΠΈ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ.
ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π² base64 Π½ΡΠΊΠ°ΠΊΡΠ² ΡΠ΅ΠΊΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π² Secret), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° base64 Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ:
echo xyzzy | base64
eHl6enkKΠΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Secret
ΠΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΈΡΠ° ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Secret? Π’ΠΎΠ²Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΎΡ RBAC β ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ° (ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π² ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π° βΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΠΎΠ»ΠΈβ Π½Π° Ρ. 258). ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠ»ΡΡΡΡΡ, Π² ΠΊΠΎΠΉΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° RBAC Π΅ ΠΎΡΡΡΡΡΠ²Π°ΡΠ° ΠΈΠ»ΠΈ Π½Π΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π°, Π²ΡΠΈΡΠΊΠΈΡΠ΅ Π²ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Secret ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ (ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ ΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΈΠΌ, ΡΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ Π½ΠΈΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ ΠΊΠ»ΡΡΡΡΡ Π±Π΅Π· RBAC).
ΠΠ°ΡΠΈΠ²Π½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ
Π ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΠ°Π²Π° Ρ ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ etcd, Π² ΠΊΠΎΡΡΠΎ Kubernetes ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΡΠ»Π°ΡΠ° ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ? ΠΠΎΠ³Π°Ρ Π»ΠΈ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, Π±Π΅Π· Π΄Π° ΠΈΠΌΠ°Ρ ΠΏΡΠ°Π²Π° Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Secret ΠΏΡΠ΅Π· API?
Π‘ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π²Π΅ΡΡΠΈΡ 1.7, Kubernetes ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΠ°ΡΠΈΠ²Π½ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΡΡΡΠ΅ Π² etcd ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π½Π° Π΄ΠΈΡΠΊΠ° Π² Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΡΠ΅ΡΠ΅Π½Π° Π΄ΠΎΡΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. ΠΠ° Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΡΠ°Π·ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠ»ΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΡΠ΅ΠΆΠ°Π²Π° ΡΠ°ΠΌΠΎ ΡΡΡΠ²ΡΡΡΡ API Π½Π° Kubernetes. Π ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΏΠ°ΡΠΈΠ²Π½ΠΎΡΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π΄Π°Π»ΠΈ ΠΏΠ°ΡΠΈΠ²Π½ΠΎΡΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ Π²ΡΠ² Π²Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:
kubectl describe pod -n kube-system -l component=kube-apiserver | grep encryption
--experimental-encryption-provider-config=...ΠΠΊΠΎ Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΡΠ΅ ΡΠ»Π°Π³Π° experimental-encryption-provider-config, ΠΏΠ°ΡΠΈΠ²Π½ΠΎΡΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ Π½Π΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ. ΠΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Google Kubernetes Engine ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Kubernetes Π²Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΡΠΈΡΡΠΎΠ²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠ΅ΡΠΎ ΡΠ»Π°Π³ΡΡ ΡΠ΅ Π»ΠΈΠΏΡΠ²Π°. Π Π°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΎΡ Π²Π°ΡΠΈΡ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ Π½Π° Kubernetes Π΄Π°Π»ΠΈ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° etcd Π΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ.
Π‘ΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ
ΠΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π° Kubernetes, ΠΊΠΎΠΈΡΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π±ΠΈΠ²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΡΡΠΈΠ²Π°Π½ΠΈ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ°: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π²Π°ΠΆΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Secret. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΡΠΈΡΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠ° ΠΎΡ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π°Π½ΠΎΡΠ°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° ΠΎΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Helm:
kind: Secret
metadata:
annotations:
"helm.sh/resource-policy": keepΠ‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ Secret
Π ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΡ ΠΏΡΠ΅Π΄Ρ ΠΎΠ΄Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π» ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π±ΡΡ Π° Π·Π°ΡΠΈΡΠ΅Π½ΠΈ ΠΎΡ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½ Π΄ΠΎΡΡΡΠΏ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ΡΠΎ ΡΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΠΎ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ Π±ΡΡ Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠ΅ΠΊΡΡ.
ΠΠΈΠΊΠΎΠ³Π° Π½Π΅ Π±ΠΈΠ²Π° Π΄Π° ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅. ΠΠ°ΠΊ Π΄Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°ΡΠ΅ ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΡΠ°ΠΊΠ°Π²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΠΊΡΠΌ ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kubernetes?
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΈΠ»ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠΈ, Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΠ΅ Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ½Π΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π²ΡΠΏΡΠΎΡΠΈ.
- ΠΡΠ΄Π΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ Ρ Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ?
- ΠΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Π²Π°ΡΠΈΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ?
- ΠΠ°ΠΊΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ Ρ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ?
ΠΠ° Π°Π²ΡΠΎΡΠΈΡΠ΅
ΠΠΆΠΎΠ½ ΠΡΡΠ½Π΄Π΅Π» Π΅ ΠΊΠΎΠ½ΡΡΠ»ΡΠ°Π½Ρ Ρ 30-Π³ΠΎΠ΄ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ Π² ΠΊΠΎΠΌΠΏΡΡΡΡΠ½Π°ΡΠ° ΠΈΠ½Π΄ΡΡΡΡΠΈΡ. ΠΠ°ΠΏΠΈΡΠ°Π» Π΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΠ°Π½ΠΈ, ΠΊΠΎΠ½ΡΡΠ»ΡΠΈΡΠ°ΠΉΠΊΠΈ Π³ΠΈ Π² ΠΎΠ±Π»Π°ΡΡΡΠ° Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½Π°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΈ Kubernetes. Π ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΡΠΎ ΡΠΈ Π²ΡΠ΅ΠΌΠ΅ ΠΎΠ±ΠΈΡΠ° ΡΡΡΡΠΈΠ½Π³, ΡΡΡΠ΅Π»Ρ Ρ ΠΏΠΈΡΡΠΎΠ»Π΅Ρ ΠΈ Π»ΡΠ±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΠ²ΠΈΡΠΈ Π½Π° ΠΏΠΈΠ°Π½ΠΎ. ΠΠΈΠ²Π΅Π΅ Π² ΠΏΡΠΈΠΊΠ°Π·Π½Π° ΠΊΡΡΠ° Π² ΠΠΎΡΠ½ΡΠΎΠ», ΠΠ½Π³Π»ΠΈΡ.
ΠΠΆΡΡΡΠΈΠ½ ΠΠΎΠΌΠΈΠ½Π³ΡΠ΅Ρ β ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΏΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅, ΡΠ°Π±ΠΎΡΠ΅Ρ Π² ΡΡΠ΅Π΄Π° DevOps Ρ Kubernetes ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π₯Π°ΡΠ΅ΡΠ²Π° Π΄Π° ΠΏΡΠ΅ΠΊΠ°ΡΠ²Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠΈ Π½Π° ΠΎΡΠΊΡΠΈΡΠΎ, Π΄Π° ΠΏΠΈΠ΅ ΠΊΠ°ΡΠ΅, Π΄Π° Π»ΠΎΠ²ΠΈ ΡΠ°ΡΠΈ ΠΈ Π΄Π° ΡΠ΅Π΄ΠΈ ΠΏΡΠ΅Π΄ ΠΊΠΎΠΌΠΏΡΡΡΡΠ°. ΠΠΈΠ²Π΅Π΅ Π² Π‘ΠΈΠ°ΡΡΠ», ΡΠ°Ρ ΠΠ°ΡΠΈΠ½Π³ΡΠΎΠ½, Π·Π°Π΅Π΄Π½ΠΎ Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ ΠΊΠΎΡΠΊΠ° ΠΈ ΠΎΡΠ΅ ΠΏΠΎ-ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½Π° ΡΡΠΏΡΡΠ³Π°, ΠΊΠΎΡΡΠΎ Π΅ ΠΈ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΡ ΠΌΡ ΠΏΡΠΈΡΡΠ΅Π» ΠΠ΄ΡΠΈΡΠ½.
Β» ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Ρ ΠΊΠ½ΠΈΠ³Π°ΡΠ° Π½Π°
Β»
Β»
ΠΠ° Π₯Π°Π±ΡΠΎΠΆΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΎΡΡΡΡΠΏΠΊΠ° 25% Ρ ΠΊΡΠΏΠΎΠ½Π° β Kubernetes
Π‘Π»Π΅Π΄ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ»Π°ΡΠ°Π½Π΅ΡΠΎ Π·Π° Ρ
Π°ΡΡΠΈΠ΅Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ°, Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½Π° Π½Π° e-mail.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
