DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Kubernetes β€” это ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ инструмСнт для запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Docker Π² кластСризованной производствСнной срСдС. Однако ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Kubernetes Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π½Π΅ Π² состоянии. ΠŸΡ€ΠΈ частом Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСдС ΠΌΡ‹ нуТдаСмся Π² ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Blue/Green deployment, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ простоСв Π² Π΄Π°Π½Π½ΠΎΠΌ процСссС, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ внСшниС HTTP-запросы ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ SSL. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с балансировщиком Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ha-proxy. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ являСтся полуавтоматичСскоС ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ самого кластСра Kubernetes ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ срСдС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, частичноС ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° кластСра Π² Π½ΠΎΡ‡Π½ΠΎΠ΅ врСмя.

Π₯отя Kubernetes Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ этими функциями прямо Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ», ΠΎΠ½ прСдоставляСт API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Blue/Green развСртывания ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ кластСра Kubernetes Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Cloud RTI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создавался Π½Π° основС open-source.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ΅ Π²ΠΈΠ΄Π΅ΠΎ, рассказываСтся, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Kubernetes вмСстС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для получСния Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ ΠΊ производству срСды, которая Π±Π΅Π· простоСв Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅ воспринимаСт ΠΊΠΎΠ΄ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ git commit.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 1

Π˜Ρ‚Π°ΠΊ, послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ доступ ΠΊ своим прилоТСниям ΠΈΠ· внСшнСго ΠΌΠΈΡ€Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ настройкС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ довСсти Π΅Π΅ Π΄ΠΎ стадии, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git commit ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ этот git commit заканчиваСтся Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅. ЕстСствСнно, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этих шагов, ΠΏΡ€ΠΈ осущСствлСнии развСртывания, ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с простоями. Π˜Ρ‚Π°ΠΊ, любая автоматизация Π² Kubernetes начинаСтся с API.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Kubernetes Π½Π΅ Ρ‚ΠΎΡ‚ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ «прямо ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ». ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ kubectl ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, Π½ΠΎ всС ΠΆΠ΅ API являСтся самой интСрСсной ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π²Π΅Ρ‰ΡŒΡŽ этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ API ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ практичСски ΠΊΠΎ всСму, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Kubernetes. Π‘Π°ΠΌ ΠΏΠΎ сСбС kubectl Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ REST API.

Π­Ρ‚ΠΎ REST, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим API Π»ΡŽΠ±Ρ‹Π΅ языки ΠΈ инструмСнты, Π½ΠΎ Π²Π°ΡˆΡƒ Тизнь Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Моя ΠΊΠΎΠΌΠ°Π½Π΄Π° написала 2 Ρ‚Π°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ: ΠΎΠ΄Π½Ρƒ для Java / OSGi ΠΈ ΠΎΠ΄Π½Ρƒ для Go. Вторая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ часто, Π½ΠΎ Π² любом случаС Π² вашСм распоряТСнии ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ эти ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ. Они ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой частично Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½Ρ‹ΠΉ open-source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. БущСствуСт мноТСство Ρ‚Π°ΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящиС.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π˜Ρ‚Π°ΠΊ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ развСртывания, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ этот процСсс Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ простоям. НапримСр, наша ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π² сСрСдинС дня, ΠΊΠΎΠ³Π΄Π° люди максимально ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ прилоТСния, поэтому ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π² этом процСссС. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ простоСв, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ 2 способа: blue/green Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ rolling update. Π’ послСднСм случаС, Ссли Ρƒ вас Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ 5 Ρ€Π΅ΠΏΠ»ΠΈΠΊ прилоТСния, ΠΎΠ½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½Π° Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎΡ‚ способ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли Π² процСссС развСртывания Ρƒ вас ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии прилоТСния. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ бэкСнд Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со старой вСрсиСй, ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния программирования Ρ€Π°Π±ΠΎΡ‚Π° Π² Ρ‚Π°ΠΊΠΈΡ… условиях довольно Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°.

Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ blue/green deployment для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ развСртывания своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ способС Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° вСрсия прилоТСния.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ blue/green deployment выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ для своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· ha-proxy, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ направляСт Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°ΠΌ прилоТСния ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ вСрсии.

Когда осущСствляСтся Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Deployer, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΈ ΠΎΠ½ осущСствляСт Π΄Π΅ΠΏΠ»ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ вСрсии. Π”Π΅ΠΏΠ»ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ вСрсии прилоТСния ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ «поднимаСтся» Π½ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ€Π΅ΠΏΠ»ΠΈΠΊ, послС Ρ‡Π΅Π³ΠΎ эти Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ Π½ΠΎΠ²ΠΎΠΉ вСрсии Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ, Π½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ΄Π΅. Однако ha-proxy Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΠ± Π½ΠΈΡ… Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΈ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅ направляСт ΠΈΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ работоспособности Π½ΠΎΠ²Ρ‹Ρ… вСрсий health cheking, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² готовности Ρ€Π΅ΠΏΠ»ΠΈΠΊ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ развСртывания Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Ρ„ΠΎΡ€ΠΌΡƒ health chek. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ совсСм простая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° HTTP Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ΄ со статусом 200, Π»ΠΈΠ±ΠΎ Π±ΠΎΠ»Π΅Π΅ глубокая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ провСряСтС связь Ρ€Π΅ΠΏΠ»ΠΈΠΊ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ сСрвисами, ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ связСй динамичСского окруТСния, всС Π»ΠΈ запускаСтся ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π­Ρ‚ΠΎΡ‚ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ довольно слоТным.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ систСма ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² работоспособности всСх ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠ»ΠΈΠΊ, Deployer ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈ пСрСдаст ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ confd, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСнастроит ha-proxy.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Волько послС этого Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π² ΠΏΠΎΠ΄ с Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°ΠΌΠΈ Π½ΠΎΠ²ΠΎΠΉ вСрсии, Π° старый ΠΏΠΎΠ΄ исчСзнСт.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π½Π΅ являСтся ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Kubernetes. ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ Blue/green deployment сущСствуСт довольно Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя, ΠΈ ΠΎΠ½Π° всСгда использовала балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ направляСтС вСсь Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΊ старой вСрсии прилоТСния, Π° послС обновлСния ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Kubernetes.

БСйчас я ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡŽ Π²Π°ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ развСртывания – Deployer, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ работоспособности, Ρ€Π΅ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ прокси ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π­Ρ‚ΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ относится ΠΊΠΎ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ ΠΌΠΈΡ€Ρƒ ΠΈ сущСствуСт Π²Π½ΡƒΡ‚Ρ€ΠΈ Kubernetes. Π― ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой собствСнный ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ Deployer ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ open-source инструмСнтов.

Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Deployer – это создаСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ RC, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ API Kubernetes. Π­Ρ‚ΠΎΡ‚ API создаСт ΠΏΠΎΠ΄Ρ‹ ΠΈ сСрвисы для дальнСйшСго развСртывания, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ создаСт ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½ΠΎΠ²Ρ‹ΠΉ кластСр для Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ RC убСдится Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ стартовали, ΠΎΠ½ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈΡ… работоспособности Health check. Для этого Π² Deployer ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° GET /health. Она запускаСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ провСряСт всС элСмСнты, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ кластСра.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС ΠΏΠΎΠ΄Ρ‹ сообщили ΠΎ своСм Β«Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅Β», Deployer создаСт Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ – распрСдСлСнноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ etcd, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Kubernetes, Π² Ρ‚ΠΎΠΌ числС для хранСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ΠœΡ‹ записываСм Π΄Π°Π½Π½Ρ‹Π΅ Π² etcd, ΠΈ нСбольшой инструмСнт confd отслСТиваСт etcd Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ появлСния Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Если ΠΎΠ½ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ измСнСния ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» настроСк ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΅Π³ΠΎ ha-proxy. Π’ этом случаС ha-proxy пСрСзагруТаСтся Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ соСдинСний ΠΈ адрСсуСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½ΠΎΠ²Ρ‹ΠΌ services, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½ΠΎΠ²ΠΎΠΉ вСрсии Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π½Π΅ смотря Π½Π° ΠΎΠ±ΠΈΠ»ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², здСсь Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного. Π’Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ большС внимания API ΠΈ etcd. Π― Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΎΠ± open-source Π΄Π΅ΠΏΠ»ΠΎΠ΅Ρ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ сами ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ – это Amdatu Kubernetes Deployer.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π­Ρ‚ΠΎ инструмСнт для оркСстровки Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ Kubernetes, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π°ΠΊΠΈΠΌΠΈ функциями:

  • Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Blue/Green deployment;
  • настройка внСшнСго балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ;
  • ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ дСскрипторами развСртывания;
  • ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ фактичСским Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ;
  • ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности Health checks Π²ΠΎ врСмя развСртывания;
  • Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ΄Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды.

Π­Ρ‚ΠΎΡ‚ Deployer создан Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ Kubernetes API ΠΈ прСдоставляСт собой REST API для управлСния дСскрипторами ΠΈ развСртываниями, Π° Ρ‚Π°ΠΊΠΆΠ΅ Websocket API для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Ρ… Π»ΠΎΠ³ΠΎΠ² Π² процСссС развСртывания.

Он ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² etcd, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ha-proxy с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ «прямо ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ», Π° Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой собствСнный Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ балансировщика. Amdatu Deployer написан Π½Π° Go, ΠΊΠ°ΠΊ ΠΈ сам Kubernetes, ΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ Apache.

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ примСнСния этой вСрсии Π΄Π΅ΠΏΠ»ΠΎΠ΅Ρ€Π° я воспользовался ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ дСскриптором развСртывания, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΌΠ½Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Один ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² этого ΠΊΠΎΠ΄Π° – Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ„Π»Π°Π³Π° Β«useHealthCheckΒ». Нам Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² процСссС развСртывания Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ работоспособности. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π² Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ сторонних Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ. Π’ этом дСскрипторС Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ количСство Ρ€Π΅ΠΏΠ»ΠΈΠΊ ΠΈ URL Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ΅Π½ ha-proxy. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΡƒΠΊΠ°Π·Π°Π½ Ρ„Π»Π°Π³ спСцификации ΠΏΠΎΠ΄Π° Β«podspecΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обращаСтся ΠΊ Kubernetes для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ настройкС ΠΏΠΎΡ€Ρ‚ΠΎΠ², ΠΎΠ±Ρ€Π°Π·Ρƒ ΠΈ Ρ‚.Π΄. Π­Ρ‚ΠΎ достаточно простой дСскриптор Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ open-source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Amdatu, это Deploymentctl. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс UI для конфигурирования развСртывания, Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ развСртывания ΠΈ содСрТит webhooks для ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² сторонними ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ UI, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сам Amdatu Deployer являСтся REST API, Π½ΠΎ этот интСрфСйс ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Π²Π°ΠΌ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π±Π΅Π· привлСчСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ API. Deploymentctl написан Π½Π° OSGi/Vertx с использованиСм Angular 2.

БСйчас я ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π½Π° экранС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π°Ρ€Π°Π½Π΅Π΅ ΡΠ΄Π΅Π»Π°Π½Π½ΡƒΡŽ запись, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ придСтся ΠΆΠ΄Π°Ρ‚ΡŒ. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Go. НС Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡ‚Π΅ΡΡŒ, Ссли Π΄ΠΎ этого Π½Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с Go, это ΠΎΡ‡Π΅Π½ΡŒ простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ всС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ понятно.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создаСм HTTP-сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° /health, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ провСряСт Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ health check ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ большС. Если ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚, задСйствуСтся показанная Π²Π½ΠΈΠ·Ρƒ JSON-структура. Она содСрТит Π²Π΅Ρ€ΡΠΈΡŽ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎ Π΄Π΅ΠΏΠ»ΠΎΠ΅Ρ€ΠΎΠΌ, message, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ„Π°ΠΉΠ»Π°, ΠΈ логичСский Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… boolean β€” работоспособно нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

Π‘ послСднСй строкой я Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ схитрил, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ помСстил Π²Π²Π΅Ρ€Ρ…Ρƒ Ρ„Π°ΠΉΠ»Π° фиксированноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ boolean, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² дальнСйшСм ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ½Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Β«Π½Π΅Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎΠ΅Β» ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ПозТС ΠΌΡ‹ с этим разбСрСмся.

Π˜Ρ‚Π°ΠΊ, приступим. Π‘Π½Π°Ρ‡Π°Π»Π° провСряСм Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ~ kubectl get pods ΠΈ ΠΏΠΎ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΡŽ ΠΎΡ‚Π²Π΅Ρ‚Π° URL Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° убСТдаСмся, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ производится.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π”Π°Π»Π΅Π΅ Π½Π° экранС Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ упомянутый мною интСрфСйс Deploymentctl, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ развСртывания: пространство ΠΈΠΌΠ΅Π½, имя прилоТСния, Π²Π΅Ρ€ΡΠΈΡŽ развСртывания, количСство Ρ€Π΅ΠΏΠ»ΠΈΠΊ, Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-URL, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΎΠ±Ρ€Π°Π·, Π»ΠΈΠΌΠΈΡ‚Ρ‹ рСсурсов, Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ health check ΠΈ Ρ‚.Π΄. Π›ΠΈΠΌΠΈΡ‚Ρ‹ рСсурсов ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ количСство Β«ΠΆΠ΅Π»Π΅Π·Π°Β». Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» развСртывания Deployment log.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Если сСйчас ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ~ kubectl get pods, Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ систСма Β«Π·Π°ΠΌΠΈΡ€Π°Π΅Ρ‚Β» Π½Π° 20 сСкунд, Π² процСссС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… происходит рСконфигурация ha-proxy. ПослС этого ΠΏΠΎΠ΄ запускаСтся, ΠΈ Π½Π°ΡˆΡƒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Π»ΠΎΠ³Π΅ развСртывания.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π― Π²Ρ‹Ρ€Π΅Π·Π°Π» ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ 20-Ρ‚ΠΈ сСкундноС ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅, ΠΈ сСйчас Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π° экранС, Ρ‡Ρ‚ΠΎ пСрвая вСрсия прилоТСния Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Π°. ВсС это Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ UI.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Для этого я измСняю message прилоТСния с Β«Hello, Kubernetes!Β» Π½Π° Β«Hello, Deployer!Β», систСма создаСт этот ΠΎΠ±Ρ€Π°Π· ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² рССстр Docker, послС Ρ‡Π΅Π³ΠΎ ΠΌΡ‹ просто Π΅Ρ‰Π΅ Ρ€Π°Π· Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«DeployΒ» Π² ΠΎΠΊΠ½Π΅ Deploymentctl. ΠŸΡ€ΠΈ этом автоматичСски запускаСтся Π»ΠΎΠ³ развСртывания Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ это происходило ΠΏΡ€ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии прилоТСния.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Команда ~ kubectl get pods ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ 2 вСрсии прилоТСния, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ нас всС Π΅Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ вСрсия 1.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚, ΠΏΠΎΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° health check, послС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Бпустя 20 с ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ Π½Π° curl ΠΈ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Π° 2 вСрсия прилоТСния, Π° пСрвая ΡƒΠ΄Π°Π»Π΅Π½Π°.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Β«Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎΠ³ΠΎΒ» β€” healthy β€” прилоТСния. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли для Π½ΠΎΠ²ΠΎΠΉ вСрсии прилоТСния я измСню Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Healthy с true Π½Π° false, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ unhealthy ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ работоспособности. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Ссли Π½Π° стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ошибки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΈ ΠΎΠ½ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΡΡŒ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ всС Π²Ρ‹ΡˆΠ΅ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ этапы, ΠΈ ~ kubectl get pods ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΎΠ±Π° ΠΏΠΎΠ΄Π°. Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ развСртывания, Π»ΠΎΠ³ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ состояниС timeout. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° health check Π½Π΅ ΠΏΡ€ΠΎΡˆΠ»Π°, новая вСрсия прилоТСния Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Π°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ систСма Π²Π΅Ρ€Π½ΡƒΠ»Π°ΡΡŒ ΠΊ использованию старой вСрсии прилоТСния, Π° новая вСрсия Π±Ρ‹Π»Π° просто ΡƒΠ΄Π°Π»Π΅Π½Π°.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π₯ΠΎΡ€ΠΎΡˆΠΎ Π² этом Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… запросов, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΡ… Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ замСтят простоя Π²ΠΎ врСмя Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ развСртывания. Если ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Gatling, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ посылаСт Π΅ΠΌΡƒ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ количСство запросов, Ρ‚ΠΎ Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих запросов Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ наши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ замСтят обновлСния вСрсий Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Если ΠΎΠ½ΠΎ окончится Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅ΠΉ, Ρ€Π°Π±ΠΎΡ‚Π° продолТится Π½Π° старой вСрсии, Ссли Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ – ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΡƒΡ‚ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.

БущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Π²Π΅Ρ‰ΡŒ, которая ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅ – Ссли ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° health check ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π»ΠΎ сбой, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π½Π΅Π³ΠΎ поступила рабочая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ коллапс наступит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ развСртывания. Π’ этом случаС Π²Π°ΠΌ придСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ Π½Π° ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Kubernetes с ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ для Π½Π΅Π³ΠΎ open-source инструмСнтами. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° развСртывания Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ссли Π²Ρ‹ встроитС эти инструмСнты Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹ создания/развСртывания Build/Deploy pipelines. ΠŸΡ€ΠΈ этом для запуска развСртывания Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот процСсс, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ², ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, commit to master.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Наш сСрвСр сборки Build Server создаст Docker-ΠΎΠ±Ρ€Π°Π·, вставит Π΅Π³ΠΎ Π² Docker Hub ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π²Π°ΠΌΠΈ рССстр. Π₯Π°Π± Docker ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ webhook, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Deployer ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡƒΡ‚Π΅ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ прилоТСния Π² ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΡ‹ – ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ кластСра Kubernetes. Π—Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° kubectl являСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π‘ Π΅Ρ‰Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ количСство Ρ€Π΅ΠΏΠ»ΠΈΠΊ Π² ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌΡΡ Ρƒ нас кластСрС. Однако Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΌΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ количСство Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ², Π° Π½ΠΎΠ΄ΠΎΠ².

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

ΠŸΡ€ΠΈ этом Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ врСмя Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅, Π° Π² Π½ΠΎΡ‡Π½ΠΎΠ΅ врСмя, для сокращСния стоимости услуг Amazon – ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ количСства Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… экзСмпляров прилоТСния. Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ достаточно ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ количСство ΠΏΠΎΠ΄ΠΎΠ², ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΎΠ΄ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ занят, Π²Π°ΠΌ всС Ρ€Π°Π²Π½ΠΎ придСтся ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π° Π½Π΅Π³ΠΎ Amazon. Π’ΠΎ Π΅ΡΡ‚ΡŒ наряду с ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ΠΎΠ² Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ число ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… машин.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ слоТности, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ зависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π»ΠΈ ΠΌΡ‹ Amazon ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ сСрвис, Kubernetes Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΎ количСствС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… машин. Π’ Π½Π΅ΠΌ отсутствуСт инструмСнт, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСму Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π½ΠΎΠ΄ΠΎΠ².

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ придСтся ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΎ Π½ΠΎΠ΄Π°Ρ…, ΠΈ ΠΎ ΠΏΠΎΠ΄Π°Ρ…. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запуск Π½ΠΎΠ²Ρ‹Ρ… Π½ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ AWS API ΠΈ машин Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Scaling group для настройки количСства Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Kubernetes. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ cloud-init ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π΅ΠΌΡƒ скрипт для рСгистрации Π½ΠΎΠ΄ΠΎΠ² Π² кластСрС Kubernetes.

Новая машина стартуСт Π² Scaling group, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ сСбя ΠΊΠ°ΠΊ Π½ΠΎΠ΄, прописываСтся Π² рССстрС мастСра ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ количСство Ρ€Π΅ΠΏΠ»ΠΈΠΊ для использования Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π²ΡˆΠΈΡ…ΡΡ Π½ΠΎΠ΄Π°Ρ…. УмСньшСниС ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ больший усилий, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ шаг Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΡŽ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ послС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Β«Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ…Β» машин. Для прСдотвращСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ сцСнария Π½ΡƒΠΆΠ½ΠΎ привСсти Π½ΠΎΠ΄Ρ‹ ΠΊ статусу Β«unschedulableΒ». Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ² DaemonSet Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти Π½ΠΎΠ΄Ρ‹. ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π½Π΅ станСт Π½ΠΈΡ‡Π΅Π³ΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ с этих сСрвСров, Π½ΠΎ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚Π°ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… шаг Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² вытСснСнии ΡƒΠ·Π»Π° drain node, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² пСрСносС с Π½Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ² Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½ΠΎΠ΄Ρ‹, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠ΅ достаточной для этого Π΅ΠΌΠΊΠΎΡΡ‚ΡŒΡŽ. УбСдившись, Ρ‡Ρ‚ΠΎ Π½Π° этих ΡƒΠ·Π»Π°Ρ… большС Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· Kubernetes. ПослС этого для Kubernetes ΠΎΠ½ΠΈ просто пСрСстанут ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Π”Π°Π»Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ AWS API для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ², ΠΈΠ»ΠΈ машин.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Amdatu Scalerd β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ open-source инструмСнт для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ AWS API. Он прСдоставляСт CLI для добавлСния ΠΈΠ»ΠΈ удалСния Π½ΠΎΠ΄ΠΎΠ² Π² кластСрС. Π•Π³ΠΎ интСрСсной ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ json-Ρ„Π°ΠΉΠ»Π°.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ кластСра Π² Π½ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ Π½Π΅ΠΌ настроСно ΠΊΠ°ΠΊ количСство ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Ρ€Π΅ΠΏΠ»ΠΈΠΊ, Ρ‚Π°ΠΊ ΠΈ ТСлаСмая Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ кластСра Amazon. ИспользованиС этого ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° автоматичСски ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ количСство ΡƒΠ·Π»ΠΎΠ² Π½ΠΎΡ‡ΡŒΡŽ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ ΠΈΡ… ΡƒΡ‚Ρ€ΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ² ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ использования Π½ΠΎΠ΄ΠΎΠ² Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ сСрвиса, ΠΊΠ°ΠΊ Amazon. Π­Ρ‚Π° функция Π½Π΅ встроСна Π² Kubernetes, Π½ΠΎ использованиС Scalerd ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΊΠ°ΠΊ ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ.

Π₯ΠΎΡ‡Ρƒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ вашС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ люди говорят ΠΌΠ½Π΅: «ВсС это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ ΠΊΠ°ΠΊ насчСт ΠΌΠΎΠ΅ΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, которая ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π±Ρ‹Π²Π°Π΅Ρ‚ Π² статичном состоянии?Β» Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π΅Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π² Ρ‚Π°ΠΊΠΎΠΉ динамичСской срСдС, ΠΊΠ°ΠΊ Kubernetes? На ΠΌΠΎΠΉ взгляд, Π²Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ этого Π΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Kubernetes. ВСхничСски это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π΅ΡΡ‚ΡŒ руководства ΠΏΠΎ этому вопросу, ΠΎΠ΄Π½Π°ΠΊΠΎ это ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ ослоТнит Π²Π°ΡˆΡƒ Тизнь.

Π”Π°, Π² Kubernetes сущСствуСт понятиС постоянных Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ Mongo ΠΈΠ»ΠΈ MySQL, Π½ΠΎ это достаточно трудоСмкая Π·Π°Π΄Π°Ρ‡Π°. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ взаимодСйствиС с динамичСским ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки, Π² Ρ‚ΠΎΠΌ числС Ρ€ΡƒΡ‡Π½ΠΎΠΉ настройки кластСра, Π½Π΅ Π»ΡŽΠ±ΡΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΡˆΡ‚ΡƒΠΊΠΈ.
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ стоит ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ сСбС Тизнь, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Kubernetes. ΠžΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ способом с использованиС ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… сСрвисов ΠΈ просто ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Kubernetes Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ Ρ…ΠΎΡ‡Ρƒ вас ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Cloud RTI Π½Π° Π±Π°Π·Π΅ Kubernetes, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ моя ΠΊΠΎΠΌΠ°Π½Π΄Π°. Она обСспСчиваСт Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ², ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ кластСров ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ мноТСством Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ пригодятся. Π’ Π½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ open-source инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Grafana для отобраТСния ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

DEVOXX UK. Kubernetes Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅: Blue/Green deployment, Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автоматизация развСртывания. Π§Π°ΡΡ‚ΡŒ 2

ΠŸΡ€ΠΎΠ·Π²ΡƒΡ‡Π°Π» вопрос, Π·Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Kubernetes балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ha-proxy. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ вопрос, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² настоящСС врСмя сущСствуСт 2 уровня балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. БСрвисы Kubernetes Π΄ΠΎ сих ΠΏΠΎΡ€ находятся Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… IP-адрСсах. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π½Π΅ΡˆΠ½ΠΈΡ… хост-машин, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ссли Amazon ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΈΡ‚ свой ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ хост, адрСс помСняСтся. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄ сСрвисами ha-proxy β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру для бСспСрСбойного взаимодСйствия Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° с Kubernetes.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ вопрос – ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ схСмы Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ осущСствлСнии blue/green deployment? Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ нСзависимо ΠΎΡ‚ использования Kubernetes, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ схСмы Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… слоТная Π·Π°Π΄Π°Ρ‡Π°. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ старой ΠΈ Π½ΠΎΠ²ΠΎΠΉ схСмы, послС Ρ‡Π΅Π³ΠΎ Π²Ρ‹ смоТСтС ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ сами прилоТСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Β«Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ Π·Π°ΠΌΠ΅Π½ΡƒΒ» hot swapping Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ прилоТСния. Π― знаю людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π»ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ кластСр Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… с Π½ΠΎΠ²ΠΎΠΉ схСмой, это Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Ссли Ρƒ вас имССтся schemeless Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° Mongo, Π½ΠΎ Π² любом случаС это Π½Π΅ простая Π·Π°Π΄Π°Ρ‡Π°. Если большС вопросов Π½Π΅Ρ‚, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!

НСмного Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ πŸ™‚

Бпасибо, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Ρ‘Ρ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ. Π’Π°ΠΌ нравятся наши ΡΡ‚Π°Ρ‚ΡŒΠΈ? Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ большС интСрСсных ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ²? ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ нас, ΠΎΡ„ΠΎΡ€ΠΌΠΈΠ² Π·Π°ΠΊΠ°Π· ΠΈΠ»ΠΈ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π² Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ, ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ VPS для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΡ‚ $4.99, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ entry-level сСрвСров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ Π½Π°ΠΌΠΈ для Вас: Вся ΠΏΡ€Π°Π²Π΄Π° ΠΎ VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps ΠΎΡ‚ $19 ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒ сСрвСр? (доступны Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ с RAID1 ΠΈ RAID10, Π΄ΠΎ 24 ядСр ΠΈ Π΄ΠΎ 40GB DDR4).

Dell R730xd Π² 2 Ρ€Π°Π·Π° дСшСвлС Π² Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅ Equinix Tier IV Π² АмстСрдамС? Волько Ρƒ нас 2 Ρ… Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 Π’Π’ ΠΎΡ‚ $199 Π² НидСрландах! Dell R420 β€” 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB β€” ΠΎΡ‚ $99! Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ инфраструктуру ΠΊΠΎΡ€ΠΏ. класса c ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ сСрвСров Dell R730xd Π•5-2650 v4 ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ 9000 Π΅Π²Ρ€ΠΎ Π·Π° ΠΊΠΎΠΏΠ΅ΠΉΠΊΠΈ?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com