Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ТизнСспособности Kubernetes с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстов Readiness ΠΈ Liveness

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Kubernetes с пространством ΠΈΠΌΠ΅Π½

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ТизнСспособности Kubernetes с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстов Readiness ΠΈ Liveness

РаспрСдСлСнными систСмами Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½ΠΈΡ… имССтся мноТСство ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Ρ‹Ρ… измСняСмых элСмСнтов, ΠΈ всС ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ для обСспСчСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы. Если ΠΎΠ΄ΠΈΠ½ ΠΈΠ· элСмСнтов Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ ΠΈΠ· строя, Ρ‚ΠΎ систСма Π΄ΠΎΠ»ΠΆΠ½Π° Π΅Π³ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ всС это Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ автоматичСски. Π’ этой сСрии Β«Kubernetes Best PracticesΒ» ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ тСсты Readiness ΠΈ Liveness для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ТизнСспособности кластСра Kubernetes.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ Health Check β€” это простой способ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ систСмС Π·Π½Π°Ρ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ экзСмпляр вашСго прилоТСния ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Если экзСмпляр вашСго прилоТСния Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ слуТбы Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΌΡƒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΅ΠΌΡƒ запросы. ВмСсто этого запрос Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ экзСмпляру прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈΠ»ΠΈ запустится ΠΏΠΎΠ·ΠΆΠ΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, систСма Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΡƒΡ‚Ρ€Π°Ρ‡Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Kubernetes Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² pod, ΠΊΠΎΠ³Π΄Π° всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠΎΠ΄ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹, ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Для Π½Π°Ρ‡Π°Π»Π° Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ систСмы ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ развСртывания своСго ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ТизнСспособности Kubernetes с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстов Readiness ΠΈ Liveness

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Kubernetes позволяСт ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ это довольно просто, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΈΠΉ. Kubernetes прСдоставляСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° тСстов Health Check, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ различия Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ….

ВСст готовности Readiness ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ Kubernetes ΠΎ готовности вашСго прилоТСния ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ сСрвису ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² pod, Kubernetes Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ готовности. Если тСст Readiness даст сбой, Kubernetes ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² pod, ΠΏΠΎΠΊΠ° тСстированиС Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

ВСст ТизнСспособности Liveness сообщаСт Kubernetes ΠΎ Ρ‚ΠΎΠΌ, ΠΆΠΈΠ²ΠΎ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ€Ρ‚Π²ΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС Kubernetes оставит Π΅Π³ΠΎ Π² ΠΏΠΎΠΊΠΎΠ΅, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹ΠΉ pod ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ.

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

ΠŸΡ€ΠΈ использовании тСста готовности Readiness, Kubernetes Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ сСрвису ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° Π½ΠΎΠ²ΡƒΡŽ копию.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ТизнСспособности Kubernetes с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстов Readiness ΠΈ Liveness

Π”Π°Π²Π°ΠΉΡ‚Π΅ прСдставим сСбС Π΄Ρ€ΡƒΠ³ΠΎΠΉ сцСнарий, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ зависаСт Π½Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя, пСрСставая ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ запросы. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ процСсс ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Kubernetes посчитаСт, Ρ‡Ρ‚ΠΎ всС Π² порядкС, ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы Π½Π° Π½Π΅Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ pod. Но ΠΏΡ€ΠΈ использовании Liveness, Kubernetes ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ большС Π½Π΅ обслуТиваСт запросы, ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ пСрСзапустит Π½Π΅Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ pod.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ТизнСспособности Kubernetes с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстов Readiness ΠΈ Liveness

Рассмотрим, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‡Π΅Π³ΠΎ тСстируСтся Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΆΠΈΠ·Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. БущСствуСт Ρ‚Ρ€ΠΈ способа тСстирования β€” HTTP, Π‘ommand ΠΈ TCP. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой ΠΈΠ· Π½ΠΈΡ…. НаиболСС распространСнный способ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ тСста – это HTTP probe.

Π”Π°ΠΆΠ΅ Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ являСтся HTTP-сСрвСром, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ лСгковСсный HTTP-сСрвСр Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСго прилоТСния для взаимодСйствия с тСстом Liveness. ПослС этого Kubernetes Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΏΠΈΠ½Π³ΠΎΠ²Π°Ρ‚ΡŒ pod, ΠΈ Ссли ΠΎΡ‚Π²Π΅Ρ‚ HTTP Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 200 ΠΈΠ»ΠΈ 300 мс, это Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ pod Β«Π·Π΄ΠΎΡ€ΠΎΠ²Β». Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ Β«Π½Π΅Π·Π΄ΠΎΡ€ΠΎΠ²Ρ‹ΠΉΒ».

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ТизнСспособности Kubernetes с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстов Readiness ΠΈ Liveness

Для тСстов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Command Kubernetes выполняСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСго ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Если ΠΊΠΎΠΌΠ°Π½Π΄Π° возвращаСтся с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ exit code, Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ Π·Π΄ΠΎΡ€ΠΎΠ²Ρ‹ΠΉ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ числа exit status ΠΎΡ‚ 1 Π΄ΠΎ 255, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ «больной». Π­Ρ‚ΠΎΡ‚ способ тСстирования ΠΏΠΎΠ»Π΅Π·Π΅Π½, Ссли Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ HTTP-сСрвСр, Π½ΠΎ способны Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, которая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ Β«Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅Β» вашСго прилоТСния.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ТизнСспособности Kubernetes с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстов Readiness ΠΈ Liveness

ПослСдний ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ – это тСст TCP. Kubernetes попытаСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ TCP соСдинСниС Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡ€Ρ‚Ρƒ. Если это удаСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ считаСтся Π·Π΄ΠΎΡ€ΠΎΠ²Ρ‹ΠΌ, Ссли Π½Π΅Ρ‚ – нСТизнСспособным. Π­Ρ‚ΠΎΡ‚ способ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ сцСнарий, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ тСстированиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ HTTP-запроса ΠΈΠ»ΠΈ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ. НапримСр, основными сСрвисами для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TCP Π±ΡƒΠ΄ΡƒΡ‚ gRPC ΠΈΠ»ΠΈ FTP.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kubernetes. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ТизнСспособности Kubernetes с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстов Readiness ΠΈ Liveness

ВСсты ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ нСсколькими способами с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ часто ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊΠΎΠ²Ρ‹ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹Π΅ значСния успСха ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². Π‘ΠΎΠ»Π΅Π΅ подробная ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π° Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ тСстам Readiness ΠΈ Liveness. Однако Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² настройкС тСста Liveness – Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ установка Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ тСстирования initialDelaySeconds. Как я ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π», Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого тСста ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ пСрСзапуску модуля. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ тСстированиС Π½Π΅ начнСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΎ Π½Π°Ρ‡Π½Π΅Ρ‚ цикличСски ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ. Π― Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ врСмя стартапа P99 ΠΈΠ»ΠΈ срСднСС врСмя запуска прилоТСния ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π°. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ врСмя запуска вашСго прилоТСния становится всС быстрСС ΠΈΠ»ΠΈ замСдляСтся.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ спСциалистов ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Health Check ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ для любой распрСдСлСнной систСмы, ΠΈ 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