Книга β€žKubernetes Π·Π° DevOpsβ€œ

Книга β€žKubernetes Π·Π° DevOpsβ€œ Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅ ΠΆΠΈΡ‚Π΅Π»ΠΈ Π½Π° Π₯Π°Π±Ρ€ΠΎ! Kubernetes Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ‚Π° ΠΎΠ±Π»Π°Ρ‡Π½Π° СкосистСма. Π’Π°Π·ΠΈ тСхнология осигурява надСТдност, мащабируСмост ΠΈ устойчивост Π½Π° виртуализация Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. Π”ΠΆΠΎΠ½ ΠΡ€ΡŠΠ½Π΄Π΅Π» ΠΈ Π”ΠΆΡŠΡΡ‚ΠΈΠ½ Π”ΠΎΠΌΠΈΠ½Π³ΡŠΡ говорят Π·Π° СкосистСмата Kubernetes ΠΈ прСдставят Π΄ΠΎΠΊΠ°Π·Π°Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Π‘Ρ‚ΡŠΠΏΠΊΠ° ΠΏΠΎ ΡΡ‚ΡŠΠΏΠΊΠ° Ρ‰Π΅ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ своС собствСно ΠΎΠ±Π»Π°Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ‰Π΅ ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ инфраструктурата, която Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°, Ρ‰Π΅ настроитС срСда Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ внСдряванС, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΡŠΡ€Ρ…Ρƒ слСдващитС си прилоТСния.

β€’ Π—Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ 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

ΠŸΡ€ΠΈ отварянС Π½Π° адрСс Localhost:9999/ трябва Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ слСдното:

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

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