ΠΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².: ΠΠ²ΡΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ β ThΓ©o Chamley, Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΠΎΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Google. Π ΡΡΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ Π±Π»ΠΎΠ³Π° Google Cloud ΠΎΠ½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΠΊΡΠ°ΡΠΊΡΡ Π²ΡΠΆΠΈΠΌΠΊΡ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π½Π°Π·Π²Π°Π½Π½ΠΎΠ³ΠΎ Β«
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΡΠΎΠΉΠ΄ΡΠΌΡΡ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠΎΠΈΡ Π·Π½Π°ΡΡ ΠΈ Π΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π² Kubernetes. ΠΠ΅Π»Π°ΡΡΠΈΠΌ ΡΠ³Π»ΡΠ±ΠΈΡΡΡΡ Π² Π΄Π΅ΡΠ°Π»ΠΈ ΡΡΠΎΠΈΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»
1. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ΄Π½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Kubernetes, Π΄Π»Ρ Π»ΠΎΠ³ΠΎΠ² Π½ΡΠΆΠ½ΠΎ Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ. Π¦Π΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠΆΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π° Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ. Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Kubernetes Engine Π·Π° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΈΡΠ°ΡΡ Π»ΠΎΠ³ΠΈ Π²
2. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ β stateless ΠΈ immutable
ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Kubernetes ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ stateless ΠΈ immutable. ΠΠΎΠ³Π΄Π° ΡΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ, Kubernetes ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Ρ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΈ Π³Π΄Π΅ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
Stateless ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΡΠ±ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°) Ρ
ΡΠ°Π½ΡΡΡΡ Π²Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ ΡΠ°Π·Π½ΡΠ΅ Π²ΠΈΠ΄Ρ Π²Π½Π΅ΡΠ½ΠΈΡ
Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡ:
Immutable ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΆΠΈΠ·Π½ΠΈ: Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, ΠΏΠ°ΡΡΠ΅ΠΉ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ°ΡΡ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΈ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΉΡΠ΅ Π΅Π³ΠΎ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΡΠ½ΠΎΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° (ΠΏΠΎΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΡ, ΠΎΠΏΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π΄Ρ ΠΈ Ρ.ΠΏ.) Π²ΠΎΠ²Π½Π΅ β Π²
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Deployment Π² Kubernetes Ρ ΠΏΠΎΠΌΠΎΡΡΡ ConfigMap, ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΠΎΠ΄Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠ½ΡΠΈΠ³Π°
3. ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²
ΠΡ Π²Π΅Π΄Ρ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ root’ΠΎΠΌ Π½Π° ΡΠ²ΠΎΠΈΡ
ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
, Π²Π΅ΡΠ½ΠΎ? ΠΡΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΡΠΎΠ½ΠΈΠΊΠ½Π΅Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΡ Π΄ΠΎΡΡΡΠΏ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root. Π’Π΅ ΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²Ρ ΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ. ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° Ρ
ΠΎΡΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ capabilities Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΈ securityContext
ΠΡΠ»ΠΈ Π²Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ
4. ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΠ΄ root
Π ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π΅ΡΡ Π»ΡΡΡΠ΅, Π΅ΡΠ»ΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ Π²Ρ Π½Π΅ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΠΎΠ΄ root’ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΡΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ Π½Π°ΠΉΠ΄ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root ΡΠ΄Π°Π»ΡΠ½Π½ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΉΡΠΈ ΠΈΠ· ΠΏΡΠ΅Π΄Π΅Π»ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠΊΠ° Π΅ΡΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ root’Π° Π½Π° Ρ ΠΎΡΡΠ΅.
ΠΡΡΡΠΈΠΉ ΠΏΡΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ β Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ root’ΠΎΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ USER
Π² Dockerfile
ΠΈΠ»ΠΈ runAsUser
Π² Kubernetes. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
5. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΡΠΌ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°
ΠΠ°ΠΊ ΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ β Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠ°Ρ ΡΠ°ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ Kubernetes ΡΠ²Π»ΡΠ΅ΡΡΡ
ΠΠ°Π½Π΅Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Kubernetes Π² Stackdriver
Prometheus ΠΎΠΆΠΈΠ΄Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±ΡΠΎΡΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° HTTP endpoint. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ
6. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π·Π΄ΠΎΡΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² production ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π΅Π³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎ ΡΠ²ΠΎΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠ°ΠΏΡΡΠ΅Π½ΠΎ Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅? Π ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π»ΠΈ ΠΎΠ½ΠΎ? ΠΠΎΡΠΎΠ²ΠΎ Π»ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ°ΡΠΈΠΊ? ΠΠ°ΠΊ ΡΠ΅Π±Ρ Π²Π΅Π΄ΡΡ? ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ Π·Π΄ΠΎΡΠΎΠ²ΡΡ (health checks). Π£ Kubernetes Π΅ΡΡΡ Π΄Π²Π° ΠΈΡ
ΡΠΈΠΏΠ°:
ΠΠ»Ρ liveness probe (ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΠΆΠΈΠ·Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ HTTP endpoint, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΠΎΡΠ²Π΅Ρ Β«200 OKΒ», Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ ΠΈ Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½Ρ. ΠΠ»Ρ readiness probe (ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡ ΠΊ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π΄ΡΡΠ³ΠΎΠΉ HTTP endpoint, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΠΎΡΠ²Π΅Ρ Β«200 OKΒ», Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π·Π΄ΠΎΡΠΎΠ²ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΡΠ°Π³ΠΈ ΠΏΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΈ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅. Kubernetes Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠ°ΡΠΈΠΊ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΠΌΠΈ. ΠΠ²Π° endpoint’Π° ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ, Π΅ΡΠ»ΠΈ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ ΠΆΠΈΠ·Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ (liveness) ΠΈ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ (readiness) Π½Π΅Ρ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΡ Sandeep Dinesh, Developer Advocate ΠΈΠ· Google: Β«
7. ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ Π²Π΅ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π·Π°
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ
ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡ
ΠΎΠΆΡΡ Π½Π° ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² latest
ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Ρ ΠΎΠ±ΡΠ°Π·Π° Π½Π° ΠΎΠ±ΡΠ°Π· β Π½Π° Π½Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠ΅ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ.
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π³ X.Y.Z
(ΠΎΠ½ΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ), ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡΠ΅ Π²ΡΠ΅ ΠΏΠ°ΡΡΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊ ΠΎΠ±ΡΠ°Π·Ρ. ΠΡΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π° Π΅ΡΡΡ ΡΠ΅Π³ X.Y
, ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π·ΠΎΠ»ΠΎΡΠΎΠΉ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ. ΠΡΠ±ΡΠ°Π² Π΅Π³ΠΎ, Π²Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΏΠ°ΡΡΠΈ ΠΈ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠΏΠΈΡΠ°Π΅ΡΠ΅ΡΡ Π½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
P.S. ΠΎΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
ΠΠΎΠ²Π°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° CNCF ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ , cloud native ΠΈ Kubernetes Β»; - Β«
7 ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ Β»; - Β«
11 ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² (Π½Π΅) ΡΡΠ°ΡΡ ΠΆΠ΅ΡΡΠ²ΠΎΠΉ Π²Π·Π»ΠΎΠΌΠ° Π² Kubernetes Β»; - Β«
ΠΠ°Ρ ΠΎΠΏΡΡ Ρ Kubernetes Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Β» (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π°); - Β«
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ Kubernetes Β» (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π°); - Β«
Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ Docker-ΠΎΠ±ΡΠ°Π·Ρ Π΄Π»Ρ CI/CD Π±ΡΡΡΡΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ dapp Β» (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π°); - Β«
ΠΡΠ°ΠΊΡΠΈΠΊΠΈ Continuous Delivery Ρ Docker Β» (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π°); - Β«
Π‘ΠΌΠ΅ΡΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ Π±Π΅Π·ΡΠΌΠΈΡ Π² 2018 Π³ΠΎΠ΄Ρ Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com