Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Terminate

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Kubernetes с пространством ΠΈΠΌΠ΅Π½
Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ТизнСспособности Kubernetes с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстов Readiness ΠΈ Liveness
Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. Настройка запросов ΠΈ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² рСсурсов

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Terminate

Π’Π°ΠΆΠ½Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ распрСдСлСнных систСм являСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сбоСв. Kubernetes ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² этом, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдят Π·Π° состояниСм вашСй систСмы ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π²ΡˆΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ сСрвисы. Однако Kubernetes ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΆΠΈΠ·Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ систСмы. Π’ этой сСрии ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Kubernetes Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±ΠΎΠ»Π΅Π΅ эффСктивно ΠΈ ΡΠΎΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ врСмя простоя ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π”ΠΎ Π½Π°Ρ‡Π°Π»Π° примСнСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ физичСских ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…. Если ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π²Π°Π»ΠΎ сбой ΠΈΠ»ΠΈ зависало, Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π’ Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½ΠΎΡ‡ΡŒΡŽ, Π² самоС Π½Π΅ΡƒΡ€ΠΎΡ‡Π½ΠΎΠ΅ врСмя. Если Π²Π°ΠΆΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ выполняли всСго 1-2 Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Ρ‚Π°ΠΊΠΎΠΉ сбой Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π±Ρ‹Π» ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ.
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ вмСсто Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π°Ρ‡Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ процСссов для автоматичСского пСрСзапуска прилоТСния Π² случаС Π΅Π³ΠΎ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄Π°Π»Π° сбой, процСсс ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ exit-ΠΊΠΎΠ΄ ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ сСрвСр. Π‘ появлСниСм Ρ‚Π°ΠΊΠΈΡ… систСм, ΠΊΠ°ΠΊ Kubernetes, этот Π²ΠΈΠ΄ рСагирования Π½Π° сбои систСмы Π±Ρ‹Π» просто ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² инфраструктуру.

Kubernetes ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ‚Π»ΡŽ событий «наблюдСниС – фиксация ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ – ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ дСйствия», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ рСсурсы ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΊ самим ΡƒΠ·Π»Π°ΠΌ.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Terminate

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

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ влияниСм Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ восстановлСния. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ всС сСтСвыС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΡΡ‚Π°Π²ΡˆΡƒΡŽΡΡ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ ΡƒΡΠΏΠ΅Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π΅ΠΎΡ‚Π»ΠΎΠΆΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ сообщСниС SIGTERM – сигнал Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся сигналом ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ kill Π² ОБ сСмСйства Unix. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² это сообщСниС, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Kubernetes Ρ€Π΅ΡˆΠΈΠ» Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ pod, происходит Ρ†Π΅Π»Ρ‹ΠΉ ряд событий. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Kubernetes ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π°.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄ΠΎΠ². Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ½ пСрСстанСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ – Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² ΠΏΠΎΠ΄Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹, Π½ΠΎ вСсь Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Terminate

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Ρ…ΡƒΠΊ preStop β€” это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ HTTP-запрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отправляСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Π² ΠΏΠΎΠ΄Π΅. Если вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ SIGTERM Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ preStop для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Terminate

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ сигнала SIGTERM Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π½ΠΎ Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ сторонний ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ систСму, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ…ΡƒΠΊ preStop слуТит ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ способом Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ изящноС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π· измСнСния прилоТСния.

ПослС исполнСния этого Ρ…ΡƒΠΊΠ° Kubernetes ΠΏΠΎΡˆΠ»Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Π² ΠΏΠΎΠ΄Π΅ сигнал SIGTERM, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ даст ΠΈΠΌ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ скоро ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² этот сигнал, ваш ΠΊΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ процСссу ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π­Ρ‚ΠΎΡ‚ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя остановку Π»ΡŽΠ±Ρ‹Ρ… Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΡ… соСдинСний, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ WebSocket, сохранСниС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅.

Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ…ΡƒΠΊ preStop, ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ происходит с вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ посылаСтС Π΅ΠΌΡƒ сигнал SIGTERM, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ сСбя ΠΏΡ€ΠΈ этом Π²Π΅Π΄Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ события ΠΈΠ»ΠΈ измСнСния Π² Ρ€Π°Π±ΠΎΡ‚Π΅ систСмы, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π°, Π½Π΅ стали для вас Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ.

Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ дальнСйшиС дСйствия, Kubernetes Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ terminationGracePeriodSecond, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ сигнала SIGTERM.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Terminate

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ этот ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ составляСт 30 сСкунд. Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ длится ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с preStop hook ΠΈ сигналом SIGTERM. Kubernetes Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° закончится preStop hook ΠΈ SIGTERM β€” Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄ΠΎ окончания ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° TerminationGracePeriod, Kubernetes Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡˆΠ°Π³Ρƒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Π² сСкундах Π±Ρ‹Π»ΠΎ Π½Π΅ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π°, ΠΈ Ссли ΠΎΠ½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 30с, ΡƒΠ²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Π² YAML. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ½ составляСт 60с.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, послСдний шаг β€” Ссли ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ всС Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ истСчСнии terminationGracePeriod, ΠΎΠ½ΠΈ ΠΏΠΎΡˆΠ»ΡŽΡ‚ сигнал SIGKILL ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Kubernetes Ρ‚Π°ΠΊΠΆΠ΅ вычистит всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠ΄Π°.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Terminate

Kubernetes ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, поэтому ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² любом случаС вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ сСрвиса.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. Маппинг Π²Π½Π΅ΡˆΠ½ΠΈΡ… сСрвисов

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

Бпасибо, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Ρ‘Ρ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ. Π’Π°ΠΌ нравятся наши ΡΡ‚Π°Ρ‚ΡŒΠΈ? Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ большС интСрСсных ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ²? ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ нас, ΠΎΡ„ΠΎΡ€ΠΌΠΈΠ² Π·Π°ΠΊΠ°Π· ΠΈΠ»ΠΈ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π² Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ, ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ 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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ