β’ ΠΠ°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΈ Kubernetes ΠΎΡ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅: Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΠΎΠΏΠΈΡ, Π·Π° Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠ°. β’ Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½Π° ΡΡΠ»ΡΠ³Π° Kubernetes ΠΎΡ Amazon, Google ΠΈ Π΄Ρ. β’ ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Kubernetes Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΡΠ» Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈ. β’ ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠΈΡΠ΅ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅Π½Π°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ, ΠΌΠΎΡΠ½ΠΎΡΡ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ. β’ ΠΠ°ΡΡΠ΅ΡΠ΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅, ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. β’ ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π½Π°ΡΡΠΎΡΡΠΈΡΠ΅ ΠΈΠ½Π΄ΡΡΡΡΠΈΠ°Π»Π½ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, Π·Π° Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ». β’ ΠΡΠΈΠ»ΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° DevOps Π²ΡΠ² Π²Π°ΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΅ΠΊΠΈΠΏΠΈΡΠ΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΄Π΅ΠΉΡΡΠ²Π°Ρ ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π²ΠΎ, Π±ΡΡΠ·ΠΎ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
ΠΠ° ΠΊΠΎΠ³ΠΎ Π΅ ΠΊΠ½ΠΈΠ³Π°ΡΠ°?
ΠΠ½ΠΈΠ³Π°ΡΠ° Π΅ Π½Π°ΠΉ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΈ ΠΎΡΠ΄Π΅Π»ΠΈ, ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΡΡΡΠ²ΡΡΠΈ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΡΡΠ°ΡΡΠ²Π°ΡΠΈ ΠΈΠ»ΠΈ Π² ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΈΠ»ΠΈ Π² ΠΌΠΈΠ³ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΡΠΌ Kubernetes ΠΈ ΠΎΠ±Π»Π°ΠΊΠ°. ΠΠ΅ ΡΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π°ΠΉΡΠ΅, Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ Kubernetes ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ - Π½ΠΈΠ΅ ΡΠ΅ Π²ΠΈ Π½Π°ΡΡΠΈΠΌ Π½Π° Π²ΡΠΈΡΠΊΠΎ.
ΠΠΏΠΈΡΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π° Kubernetes ΡΡΡΠΎ ΡΠ΅ ΠΎΡΠΊΡΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΡΡΡ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎ ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ Π½Π° ΡΠ΅ΠΌΠΈ ΠΊΠ°ΡΠΎ RBAC, Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅. ΠΠ°Π΄ΡΠ²Π°ΠΌΠ΅ ΡΠ΅, ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ° ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π½Π΅ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π·Π° Π²Π°Ρ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π²Π°ΡΠΈΡΠ΅ ΡΠΌΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠΈΡ.
ΠΠ° ΠΊΠ°ΠΊΠ²ΠΈ Π²ΡΠΏΡΠΎΡΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ ΠΊΠ½ΠΈΠ³Π°ΡΠ°?
ΠΠΎΠΊΠ°ΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°Ρ ΠΌΠ΅ ΠΈ ΠΏΠΈΡΠ΅Ρ ΠΌΠ΅ ΠΊΠ½ΠΈΠ³Π°ΡΠ°, ΠΎΠ±ΡΡΠΆΠ΄Π°Ρ ΠΌΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Kubernetes ΡΡΡ ΡΡΠΎΡΠΈΡΠΈ Ρ ΠΎΡΠ°, Π³ΠΎΠ²ΠΎΡΠ΅ΠΉΠΊΠΈ Ρ Π»ΠΈΠ΄Π΅ΡΠΈ ΠΈ Π΅ΠΊΡΠΏΠ΅ΡΡΠΈ Π² ΠΈΠ½Π΄ΡΡΡΡΠΈΡΡΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ. ΠΠΎ-Π΄ΠΎΠ»Ρ ΡΠ° ΠΈΠ·Π±ΡΠ°Π½ΠΈ Π²ΡΠΏΡΠΎΡΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ Π±ΠΈΡ Π° ΠΈΡΠΊΠ°Π»ΠΈ Π΄Π° Π²ΠΈΠ΄ΡΡ ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π² ΡΠ°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ.
- βΠΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΠΌ ΡΠ΅ Π·Π°ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠ΄Π΅Π»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ°Π·ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ. ΠΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° ΠΌΠ΅Π½ ΠΈ ΠΌΠΎΡ Π΅ΠΊΠΈΠΏ Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ?β
- βKubernetes ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½, Π½ΠΎ ΠΈΠΌΠ° Π΄ΠΎΡΡΠ° Π²ΠΈΡΠΎΠΊΠ° Π±Π°ΡΠΈΠ΅ΡΠ° Π·Π° Π½Π°Π²Π»ΠΈΠ·Π°Π½Π΅. ΠΠΎΠ΄Π³ΠΎΡΠ²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ Π΅ ΡΡΡΠ΄Π½ΠΎ, Π½ΠΎ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½ΠΎΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π΅ ΠΏΠ»Π°ΡΠ΅ΡΠΎ. ΠΠΈΡ ΠΌΠ΅ ΠΈΡΠΊΠ°Π»ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΡΡΠ²Π΅ΡΠΈ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Ρ ΠΎΡΠ°ΡΠ° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΊΠ»ΡΡΡΠ΅ΡΠΈΡΠ΅ Π½Π° Kubernetes Π² ΡΠ΅Π°Π»Π½ΠΈΡ ΡΠ²ΡΡ ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΄Π° ΡΡΠ΅ΡΠ½Π΅ΠΌ."
- βΠ‘ΡΠ±Π΅ΠΊΡΠΈΠ²Π½ΠΈΡΡ ΡΡΠ²Π΅Ρ Π±ΠΈ Π±ΠΈΠ» ΠΏΠΎΠ»Π΅Π·Π΅Π½. ΠΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° Kubernetes Π΄Π°Π²Π° Π½Π° Π½ΠΎΠ²ΠΈΡΠ΅ Π΅ΠΊΠΈΠΏΠΈ ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΈΠ·Π±ΠΎΡ. ΠΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π°ΡΠΈΠ½Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ Π½Π΅ΡΠΎ, ΠΊΠ°ΠΊ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠΉ Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΡ? ΠΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ·Π±ΠΎΡ?
Π ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡΡ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠΏΡΠΎΡΠΈ:
- βΠΠ°ΠΊ ΠΌΠΎΠ³Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Kubernetes, Π±Π΅Π· Π΄Π° Π½Π°ΡΡΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° ΡΠΈ?β
ΠΠ·Π²Π°Π΄ΠΊΠ°. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Kubernetes ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ (Ρ.Π΅. ΠΎΡ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ) Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΡΡΠ΅Π΄Π°ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, DNS Π°Π΄ΡΠ΅ΡΠΈ Π½Π° ΡΡΠ»ΡΠ³ΠΈ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅.
Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΊΠΎΠ΄Π°, Π½ΠΎ ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π³ΡΠ²ΠΊΠ°Π². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΎΡ Π²Π°Ρ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ ΠΈ Π²Π½Π΅Π΄ΡΠΈΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ. ΠΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΎΡ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠ΅ ΠΎΡ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°.
Kubernetes ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°. ΠΡΡΠ²ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π°ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ° Π½Π° pod (Π²ΠΈΠΆΡΠ΅ βΠΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°β Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ° 192). ΠΡΠΎΡΠΎ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² Kubernetes Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ConfigMap ΠΈ Secret ΠΎΠ±Π΅ΠΊΡΠΈ.
Π ΡΠ°Π·ΠΈ Π³Π»Π°Π²Π° Π½ΠΈΠ΅ ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°ΠΌΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ΅Π·ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π½ΡΠΊΠΎΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π½Π° ΠΏΠΎΠ΄ ΠΏΡΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°
ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π²ΡΠ² Π²Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½ΡΠΊΠΎΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ConfigMap. ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° Helm (Π²ΠΈΠΆΡΠ΅ βHelm: ΠΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° Kubernetesβ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ° 102), ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ΡΠ΅ ΠΏΡΠΎΠΌΡΠ½Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΈ Π΄Π° ΠΏΡΠ΅Π·Π°ΡΠ΅Π΄ΠΈΡΠ΅ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈΡΠ΅ Π½Π° pod Ρ Π΅Π΄ΠΈΠ½ ΡΠΈΡΡ ΡΡΠΈΠΊ. ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° Π°Π½ΠΎΡΠ°ΡΠΈΡ ΠΊΡΠΌ Π²Π°ΡΠ°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") .
| sha256sum }}
Π¨Π°Π±Π»ΠΎΠ½ΡΡ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π²Π΅ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π° ΡΡΠΌΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ: Π°ΠΊΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ, ΡΡΠΌΠ°ΡΠ° ΡΠ΅ ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°. ΠΠΊΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½Π°Π΄Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Helm, Helm ΡΠ΅ ΠΎΡΠΊΡΠΈΠ΅, ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π° ΠΈ ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ.
Π§ΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² 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 ΠΎΠ±Π΅ΠΊΡ. Π’ΡΠΊ Π·Π° ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° Π΄Π²ΠΎΠΉΠΊΠ° ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ConfigMap, Secret ΠΎΠ±Π΅ΠΊΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ ΡΠ°ΠΉΠ» Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ Π΄ΠΈΡΠΊ. Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠΈΠΌ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΎΡ Secret:
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-secret-env
ports:
- containerPort: 8888
env:
- name: GREETING
valueFrom:
secretKeyRef:
name: demo-secret
key: magicWord
ΠΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² Π΄Π΅ΠΌΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ, Π·Π° Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈΡΠ΅:
kubectl apply -f hello-secret-env/k8s/
deployment.extensions "demo" configured
secret "demo-secret" created
ΠΠ°ΠΊΡΠΎ ΠΏΡΠ΅Π΄ΠΈ, ΠΏΡΠ΅ΠΏΡΠ°ΡΠ΅ΡΠ΅ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΠΏΠΎΡΡ ΠΊΡΠΌ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ, Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π²ΡΠ² Π²Π°ΡΠΈΡ Π±ΡΠ°ΡΠ·ΡΡ:
kubectl port-forward deploy/demo 9999:8888
Forwarding from 127.0.0.1:9999 -> 8888
Forwarding from [::1]:9999 -> 8888
ΠΡΠΈ ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° Π°Π΄ΡΠ΅Ρ
The magic word is "xyzzy"
ΠΠ°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅
Π ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ ΠΏΡΠΈΠΊΠ°ΡΠΈΠΌ Secret ΠΎΠ±Π΅ΠΊΡΠ° ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΊΠ°ΡΠΎ ΡΠ°ΠΉΠ». ΠΠΎΠ΄ΡΡ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° hello-secret-file Π½Π° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
ΠΠ° Π΄Π° ΡΠ²ΡΡΠΆΠ΅ΠΌ Secret ΠΊΠ°ΡΠΎ ΡΠ°ΠΉΠ», ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅:
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-secret-file
ports:
- containerPort: 8888
volumeMounts:
- name: demo-secret-volume
mountPath: "/secrets/"
readOnly: true
volumes:
- name: demo-secret-volume
secret:
secretName: demo-secret
ΠΠ°ΠΊΡΠΎ Π² ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π° βΠ‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ ConfigMap ΠΎΠ±Π΅ΠΊΡΠΈβ Π½Π° ΡΡΡ. 240, Π½ΠΈΠ΅ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΠΎΠΌ (Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ demo-secret-volume) ΠΈ Π³ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°ΠΌΠ΅ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π² ΡΠ°Π·Π΄Π΅Π»Π° volumeMounts Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ°. ΠΠΎΠ»Π΅ΡΠΎ mountPath Π΅ /secrets, ΡΠ°ΠΊΠ° ΡΠ΅ Kubernetes ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠ» Π² ΡΠ°Π·ΠΈ ΠΏΠ°ΠΏΠΊΠ° Π·Π° Π²ΡΡΠΊΠ° Π΄Π²ΠΎΠΉΠΊΠ° ΠΊΠ»ΡΡ/ΡΡΠΎΠΉΠ½ΠΎΡΡ, Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° Π² Secret ΠΎΠ±Π΅ΠΊΡΠ°.
Π Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Ρ ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° Π΄Π²ΠΎΠΉΠΊΠ° ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ, Π½Π°ΡΠ΅ΡΠ΅Π½Π° magicWord, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π΅Π΄ΠΈΠ½ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ ΡΠ°ΠΉΠ» /secrets/magicWord ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Ρ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠΎΠ·ΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ:
The magic word is "xyzzy"
Π§Π΅ΡΠ΅Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ
Π ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΡΠ°Π·Π΄Π΅Π» ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° kubectl describe, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ConfigMap. ΠΠΎΠΆΠ΅ Π»ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΡΡΠΎΡΠΎ Ρ Secret?
kubectl describe secret/demo-secret
Name: demo-secret
Namespace: default
Labels: <none>
Annotations:
Type: Opaque
Data
====
magicWord: 5 bytes
ΠΠΎΠ»Ρ, ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΡΠ°ΠΌΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π΅ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ. Π’Π°ΠΉΠ½ΠΈΡΠ΅ ΠΎΠ±Π΅ΠΊΡΠΈ Π² Kubernetes ΡΠ° ΠΎΡ ΡΠΈΠΏ Opaque, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ ΠΈΠΌ Π½Π΅ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° Π² ΠΈΠ·Ρ ΠΎΠ΄Π° Π½Π° kubectl describe, Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π² ΠΆΡΡΠ½Π°Π»Π° ΠΈΠ»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΡΠΎ ΡΠ°Π·ΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π° YAML Π²Π΅ΡΡΠΈΡ Π½Π° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° kubectl get:
kubectl get secret/demo-secret -o yaml
apiVersion: v1
data:
magicWord: eHl6enk=
kind: Secret
metadata:
...
type: Opaque
base64
ΠΠ°ΠΊΠ²ΠΎ Π΅ eHl6enk=, Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ ΠΎΡ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π°ΡΠ° Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ? Π’ΠΎΠ²Π° Π²ΡΡΡΠ½ΠΎΡΡ Π΅ Secret ΠΎΠ±Π΅ΠΊΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π² ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ base64. Base64 Π΅ ΡΡ Π΅ΠΌΠ° Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ Π½ΠΈΠ· ΠΎΡ Π·Π½Π°ΡΠΈ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π΄Π²ΠΎΠΈΡΠ½Π° ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° (ΠΊΠ°ΠΊΡΠ²ΡΠΎ Π΅ ΡΠ»ΡΡΠ°ΡΡ Ρ TLS ΠΊΠ»ΡΡ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅), Secret ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ base64.
Π’Π΅ΠΊΡΡΡΡ beHl6enk= Π΅ base64 ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π½Π°ΡΠ°ΡΠ° ΡΠ°ΠΉΠ½Π° Π΄ΡΠΌΠ° xyzzy. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ ΡΠΎΠ²Π°, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° base64 βdecode Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°:
echo "eHl6enk=" | base64 --decode
xyzzy
Π ΡΠ°ΠΊΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ Kubernetes Π²ΠΈ ΠΏΡΠ΅Π΄ΠΏΠ°Π·Π²Π° ΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°, ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Π±Π°Π·Π° 64 ΠΈ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ.
ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ base64 Π½ΡΠΊΠ°ΠΊΡΠ² ΡΠ΅ΠΊΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π² Secret), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° base64 Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ:
echo xyzzy | base64
eHl6enkK
ΠΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ
ΠΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ΡΠ΅ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ° ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ? Π’ΠΎΠ²Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΎΡ RBAC, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ° (ΡΠ΅ Π³ΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π° βΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠΎΠ»Π΅Π²ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ°β Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ° 258). ΠΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ ΠΊΠ»ΡΡΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Π½ΡΠΌΠ° RBAC ΠΈΠ»ΠΈ Π½Π΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½, Π²ΡΠΈΡΠΊΠΈ Π²Π°ΡΠΈ Secret ΠΎΠ±Π΅ΠΊΡΠΈ ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ (ΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΈΠΌ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ, ΡΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Π±Π΅Π· RBAC).
ΠΠ°ΡΠΈΠ²Π½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ etcd, ΠΊΡΠ΄Π΅ΡΠΎ Kubernetes ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΡΠ»Π°ΡΠ° ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ? ΠΠΎΠ³Π°Ρ Π»ΠΈ Π΄Π° ΡΠ΅ΡΠ°Ρ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, Π±Π΅Π· Π΄Π° ΠΈΠΌΠ°Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π° ΡΠ΅ΡΠ°Ρ Secret ΠΎΠ±Π΅ΠΊΡΠΈ ΡΡΠ΅Π· API?
ΠΡ Π²Π΅ΡΡΠΈΡ 1.7 Kubernetes ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΠ°ΡΠΈΠ²Π½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² etcd ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π° Π½Π° Π΄ΠΈΡΠΊ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΡΠ΅ΡΠ΅Π½Π° Π΄ΠΎΡΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. ΠΠ° Π΄Π° Π³ΠΎ Π΄Π΅ΡΠΈΡΡΠΈΡΠ°ΡΠ΅, ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΊΠ»ΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Kubernetes API ΡΡΡΠ²ΡΡΡΡ. Π ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΏΠ°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π΄Π°Π»ΠΈ ΠΏΠ°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ Π²ΡΠ² Π²Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:
kubectl describe pod -n kube-system -l component=kube-apiserver |grep encryption
--experimental-encryption-provider-config=...
ΠΠΊΠΎ Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΡΠ΅ ΡΠ»Π°Π³Π° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ Π½Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π΅, ΠΏΠ°ΡΠΈΠ²Π½ΠΎΡΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ Π½Π΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ. ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Google Kubernetes Engine ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Kubernetes, Π²Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΠΊΡΠΈΠΏΡΠΈΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ»Π°Π³ΡΡ Π½ΡΠΌΠ° Π΄Π° ΠΏΡΠΈΡΡΡΡΠ²Π°. ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ ΠΏΡΠΈ Π²Π°ΡΠΈΡ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ Π½Π° Kubernetes Π΄Π°Π»ΠΈ etcd ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ.
Π‘ΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ
ΠΠΌΠ° Π½ΡΠΊΠΎΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π° Kubernetes, ΠΊΠΎΠΈΡΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Ρ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠ»Π½ΠΎ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΡΠΈΡΠΈΡΠ΅ ΡΠ΅ΡΡΡΡ ΠΎΡ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π°Π½ΠΎΡΠ°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° ΠΎΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° Helm:
kind: Secret
metadata:
annotations:
"helm.sh/resource-policy": keep
Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΉΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ
Π ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΡΠ°Π·Π΄Π΅Π» ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π±ΡΡ Π° Π·Π°ΡΠΈΡΠ΅Π½ΠΈ ΠΎΡ Π½Π΅ΠΎΡΠΎΡΠΈΠ·ΠΈΡΠ°Π½ Π΄ΠΎΡΡΡΠΏ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π±ΡΡ Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΠΎ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° ΡΠ΅ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠ΅ΠΊΡΡ.
ΠΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΡΠ°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΠΊΡΠΌ Π²Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ Kubernetes?
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΈΠ»ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π²ΡΠ² Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ½Π΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π²ΡΠΏΡΠΎΡΠΈ.
- ΠΡΠ΄Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ?
- ΠΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Π²Π°ΡΠΈΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ?
- ΠΠ°ΠΊΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ Ρ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΡΠ΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ?
ΠΠ° Π°Π²ΡΠΎΡΠΈΡΠ΅
ΠΠΆΠΎΠ½ ΠΡΡΠ½Π΄Π΅Π» Π΅ ΠΊΠΎΠ½ΡΡΠ»ΡΠ°Π½Ρ Ρ 30 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΎΠΏΠΈΡ Π² ΠΊΠΎΠΌΠΏΡΡΡΡΠ½Π°ΡΠ° ΠΈΠ½Π΄ΡΡΡΡΠΈΡ. Π’ΠΎΠΉ Π΅ Π½Π°ΠΏΠΈΡΠ°Π» Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΠ°Π½ΠΈ, ΠΊΠ°ΡΠΎ Π³ΠΈ ΡΡΠ²Π΅ΡΠ²Π° ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΎΠ±Π»Π°ΡΠ½Π°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΈ Kubernetes. Π ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΡΠΎ ΡΠΈ Π²ΡΠ΅ΠΌΠ΅ ΠΎΠ±ΠΈΡΠ° Π΄Π° ΠΊΠ°ΡΠ° ΡΡΡΡ, ΡΡΡΠ΅Π»Ρ Π΄ΠΎΠ±ΡΠ΅ Ρ ΠΏΠΈΡΡΠΎΠ»Π΅Ρ ΠΈ ΡΠ²ΠΈΡΠΈ Π»ΡΠ±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π½Π° ΠΏΠΈΠ°Π½ΠΎ. ΠΠΈΠ²Π΅Π΅ Π² ΠΏΡΠΈΠΊΠ°Π·Π½Π° Π²ΠΈΠ»Π° Π² ΠΠΎΡΠ½ΡΠΎΠ», ΠΠ½Π³Π»ΠΈΡ.
ΠΠΆΡΡΡΠΈΠ½ ΠΠΎΠΌΠΈΠ½Π³ΡΡ β ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΏΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΡ, ΡΠ°Π±ΠΎΡΠ΅Ρ Π² DevOps ΡΡΠ΅Π΄Π° Ρ Kubernetes ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π’ΠΎΠΉ ΠΎΠ±ΠΈΡΠ° Π΄Π° ΠΏΡΠ΅ΠΊΠ°ΡΠ²Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠΈ Π½Π° ΠΎΡΠΊΡΠΈΡΠΎ, Π΄Π° ΠΏΠΈΠ΅ ΠΊΠ°ΡΠ΅, Π΄Π° Π»ΠΎΠ²ΠΈ ΡΠ°ΡΠΈ ΠΈ Π΄Π° ΡΠ΅Π΄ΠΈ ΠΏΡΠ΅Π΄ ΠΊΠΎΠΌΠΏΡΡΡΡΠ°. ΠΠΈΠ²Π΅Π΅ Π² Π‘ΠΈΠ°ΡΡΠ», ΠΠ°ΡΠΈΠ½Π³ΡΠΎΠ½, Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½Π° ΠΊΠΎΡΠΊΠ° ΠΈ ΠΎΡΠ΅ ΠΏΠΎ-ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½Π° ΡΡΠΏΡΡΠ³Π° ΠΈ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ° ΠΏΡΠΈΡΡΠ΅Π»ΠΊΠ° ΠΠ΄ΡΠΈΠ΅Π½.
Β» ΠΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΊΠ½ΠΈΠ³Π°ΡΠ°, ΠΌΠΎΠ»Ρ ΠΏΠΎΡΠ΅ΡΠ΅ΡΠ΅
Β»
Β»
ΠΠ° Khabrozhiteli 25% ΠΎΡΡΡΡΠΏΠΊΠ° ΠΎΡ ΠΊΡΠΏΠΎΠ½Π° - Kubernetes
ΠΡΠΈ Π·Π°ΠΏΠ»Π°ΡΠ°Π½Π΅ Π½Π° Ρ
Π°ΡΡΠΈΠ΅Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ°, Π½Π° Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½Π°ΡΠ° ΠΏΠΎΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½Π° ΠΊΠ½ΠΈΠ³Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com