![11 ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π΄Π΅Π»Π°ΡΡΠΈΡ
Kubernetes Π»ΡΡΡΠ΅](data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E)
ΠΠ°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ ΠΌΠΎΡΠ½ΡΠ΅ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ Π²ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ Π΅ΡΡΡ. Π₯ΠΎΡΡ Kubernetes ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅, Π΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Ρ
Π²Π°ΡΠΈΡΡ Π½ΡΠΆΠ½ΡΡ
ΡΠ°ΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ. ΠΡ Π²ΡΠ΅Π³Π΄Π° Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΠ°ΡΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ Π²Π°ΡΡ Π½ΡΠΆΠ΄Ρ, ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Kubernetes Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±Π°Π· Π΄Π°Π½Π½ΡΡ
ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ° CD.
ΠΠ΄Π΅ΡΡ ΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΠΈΠ΅ Π½ΠΈΡΡΡΠΊΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΡΠΎΡΠ°ΠΉΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ 11 Π»ΡΡΡΠΈΡ
Π²Π΅ΡΠ΅ΠΉ, Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ
Π½Π°ΠΌΠΈ. ΠΠ°ΠΌ ΡΠ°ΠΌΠΈΠΌ Π² Southbridge ΠΎΠ½ΠΈ ΠΎΡΠ΅Π½Ρ Π΄Π°ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ, ΠΈ ΠΌΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ β Π½Π° Π²ΠΈΠ½ΡΠΈΠΊΠΈ ΠΈ Π³Π°Π΅ΡΠΊΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ Π²Π½ΡΡΡΠΈ. Π§Π°ΡΡΡ ΠΈΠ· Π½ΠΈΡ
ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ Kubernetes, Π΄ΡΡΠ³ΠΈΠ΅ ΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠ΅ΡΠΈΡΡ ΡΠ°ΡΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΡΠΈΠΏΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΠ°Π²ΠΊΠ΅ Kubernetes.
Gatekeeper: ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΠΌΠΈ
ΠΡΠΎΠ΅ΠΊΡ Open Policy Agent (OPA) ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ ΠΏΠΎΠ²Π΅ΡΡ
ΠΎΠ±Π»Π°ΡΠ½ΡΡ
ΡΡΠ΅ΠΊΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Kubernetes, Π½Π°ΡΠΈΠ½Π°Ρ ingress ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ service mesh. Gatekeeper Π΄Π°Π΅Ρ Π½Π°ΡΠΈΠ²Π½ΡΡ Π΄Π»Ρ Kubernetes Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π»ΡΠ±ΡΡ
ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ², Π½Π°ΡΡΡΠ°ΡΡΠΈΡ
ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ. ΠΡΠ΅ ΡΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΠΎΠ²ΡΠΌ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Kubernetes, Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΎΠΌ Π΄ΠΎΠΏΡΡΠΊΠ° Webhooks, ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΌ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Gatekeeper ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ OPA ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kubernetes, Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡ Π² ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΌ Π½Π°Π΄ΡΠΌΠΎΡΡΠ΅.
Gravity: ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kubernetes
ΠΡΠ»ΠΈ Π²Ρ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ Π²ΡΠΊΠ°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Kubernetes, ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ Helm chart, Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π·Π°Ρ
ΠΎΡΠ΅ΡΡΡ Π²Π·ΡΡΡ ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ Kubernetes Β«ΠΊΠ°ΠΊ Π΅ΡΡΡΒ», ΠΈ ΡΠ°ΡΠΊΠ°ΡΠΈΡΡ Π΅Π³ΠΎ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π΅ΡΠ΅?
Gravity Π΄Π΅Π»Π°Π΅Ρ ΡΠ½ΠΈΠΌΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² Kubernetes, ΠΈΡ
registry Π΄Π»Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ
Β«ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ». Π’Π°ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» .tar
, ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Kubernetes.
Gravity ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ ΡΠ΅Π»Π΅Π²Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΈΡΡ
ΠΎΠ΄Π½Π°Ρ, Π° ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Kubernetes Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΉ β Π΄ΠΎΡΡΡΠΏΠ½ΠΎ. ΠΠ»Π°ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Gravity ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ RBAC ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ².
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π²Π΅ΡΡΠΈΡ, Gravity 7, ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΠΊΠ°ΡΠΈΡΡ ΠΎΠ±ΡΠ°Π· Gravity Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ Kubernetes, Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Ρ ΠΎΠ±ΡΠ°Π·Π°. Gravity 7 ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°ΠΌΠΈ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π° Gravity. Π’Π°ΠΊΠΆΠ΅ Gravity ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ SELinux, ΠΈ Π½Π°ΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ»ΡΠ·ΠΎΠΌ Teleport SSH.
Kaniko: Π‘Π±ΠΎΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Kubernetes
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΡΠ΅ΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π· Π²Π½ΡΡΡΠΈ ΡΡΠ΅ΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π³Π΄Π΅-ΡΠΎ Π² ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅, ΠΈΠ»ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Kubernetes.
Kaniko ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΠ±ΠΎΡΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Π±Π΅Π· Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ ΠΎΡ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Docker. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Kaniko ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π°, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ±ΠΎΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ²Π΅ΡΡ
ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π΄Π΅Π»Π°Ρ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Kaniko Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ (ΠΌΠ°ΠΉ 2020 Π³ΠΎΠ΄Π°, ΠΏΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°) Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Windows.
Kubecost: ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ Π·Π°ΠΏΡΡΠΊΠ° Kubernetes
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kubernetes Π½Π°ΡΠ΅Π»Π΅Π½Ρ Π½Π° ΠΏΡΠΎΡΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ pod, ΠΈ Ρ.ΠΏ. ΠΠΎ ΡΡΠΎ Π½Π°ΡΡΠ΅Ρ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ Π·Π° ΡΡΠΎΠΈΠΌΠΎΡΡΡΡ β Π² ΡΡΠ±Π»ΡΡ
ΠΈ ΠΊΠΎΠΏΠ΅ΠΉΠΊΠ°Ρ
β ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ Π·Π°ΠΏΡΡΠΊΠΎΠΌ Kubernetes?
Kubecost ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Kubernetes Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ
ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ² ΠΎΠ±Π»Π°ΡΠ½ΡΡ
ΡΡΠ»ΡΠ³, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΡ
Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Ρ Π΅ΠΆΠ΅ΠΌΠ΅ΡΡΡΠ½ΠΎΠΉ ΡΡΠΎΠΈΠΌΠΎΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. Π¦Π΅Π½Ρ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, GPU ΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π·Π±ΠΈΡΡ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ Kubernetes (ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, pod, ΡΠ΅ΡΠ²ΠΈΡ, ΠΈ Ρ.ΠΏ.)
Kubecost ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π²Π½Π΅ΠΊΠ»Π°ΡΡΠ΅ΡΠ½ΡΡ
ΡΠ΅ΡΡΡΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Amazon S3 buckets, Ρ
ΠΎΡΡ ΠΎΠ½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° AWS. ΠΠ°Π½Π½ΡΠ΅ ΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π² Prometheus, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ.
Kubecost Π±Π΅ΡΠΏΠ»Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π°Π½Π½ΡΡ
Π² ΠΆΡΡΠ½Π°Π»Π°Ρ
Π·Π° 15 Π΄Π½Π΅ΠΉ. ΠΠ»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ΅Π½Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ 199$ Π΅ΠΆΠ΅ΠΌΠ΅ΡΡΡΠ½ΠΎ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ 50 ΡΠ·Π»ΠΎΠ².
KubeDB: ΠΠ°ΠΏΡΡΠΊ Π±ΠΎΠ΅Π²ΡΡ
Π±Π°Π· Π΄Π°Π½Π½ΡΡ
Π² Kubernetes
ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΡΡΠ΅ΠΊΡΠ½ΠΎ Π² Kubernetes. ΠΡ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Kubernetes Π΄Π»Ρ MySQL, PostgreSQL, MongoDB ΠΈ Redis, Π½ΠΎ Ρ Π²ΡΠ΅Ρ
Π½ΠΈΡ
Π΅ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ ΡΠΈΠΏΠΎΠ²ΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ Kubernetes Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ΅ΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
.
KubeDB ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Kubernetes Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
. ΠΠ°ΠΏΡΡΠΊ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ½ΠΈΠΌΠΊΠΎΠ² ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π· β Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ PostgreSQL, Π½ΠΎ Π½Π΅ Π΄Π»Ρ MySQL (ΡΠΆΠ΅ Π΅ΡΡΡ, ΠΊΠ°ΠΊ Π²Π΅ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΌΠ΅ΡΠΈΠ» dnbstd, ΠΏΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°).
Kube-monkey: Chaos Monkey Π΄Π»Ρ Kubernetes
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΡΡΠ΅ΡΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΠΏΠΎΠ»ΠΎΠΌΠΊΠΈ. ΠΡΠ° ΡΠ΅ΠΎΡΠΈΡ Π»Π΅ΠΆΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ Chaos Monkey ΠΎΡ Netflix, Ρ
Π°ΠΎΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ, ΡΡΠΎΠ±Ρ Β«ΡΡΠΈΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡΒ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠΉΡΠΈΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. Kube-monkey β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠΉ ΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠ΅ΠΎΡΠΈΠΈ ΡΡΡΠ΅ΡΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² Kubernetes. ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠ±ΠΈΠ²Π°Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅, Π½Π°Π·Π½Π°ΡΠ°Π΅ΠΌΡΠ΅ Π²Π°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° ΡΠ°Π±ΠΎΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Kubernetes Ingress Controller Π΄Π»Ρ AWS
Kubernetes ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ²ΠΈΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Ingress AWS ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, Π½ΠΎ Π½Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ Kubernetes. Kubernetes Ingress Controller for AWS Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΡΡΠΎΡ ΠΏΡΠΎΠ±Π΅Π».
ΠΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ AWS Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ingress Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ
ΡΠ΅ΡΡΡΡΠΎΠ² ingress, ΠΈ ΡΠ΄Π°Π»ΡΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ CloudFormation ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΡΠΌ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ CloudWatch Alarm ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ SSL ΠΈ EC2 Auto Scaling Groups.
Kubespray: ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Kubernetes
Kubespray Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kubernetes, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° Β«ΠΆΠ΅Π»Π΅Π·Π½ΡΡ
Β» ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
, ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΎΠ±Π»Π°ΠΊΠ°ΠΌΠΈ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Ansible (Vagrant β Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ) Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Ρ Π½ΡΠ»Ρ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ Π²Π°ΠΌΠΈ ΡΠ΅ΡΠ΅Π²ΡΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Flannel, Calico ΠΈ ΠΏΡΠΎΡΠΈΠ΅) Π½Π° Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ Π²Π°ΠΌΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ Linux ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π½Π° Β«ΠΆΠ΅Π»Π΅Π·Π½ΡΠ΅Β» ΡΠ΅ΡΠ²Π΅ΡΡ.
Skaffold: ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π»Ρ Kubernetes
Skaffold β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Google, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΠ·Π°ΡΠΈΠΈ CD ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Kubernetes. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β skaffold Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ±ΠΎΡΠΊΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ Π²Π°Ρ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ. Skaffold Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Π½ΡΠ°Π½ΡΡ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°ΠΌΠΈ CICD, Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠ±ΠΎΡΠΎΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Ρ Bazel ΠΎΡ Google.
Teresa: ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ PaaS Π½Π° Kubernetes
Teresa ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠ°Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ PaaS ΠΏΠΎΠ²Π΅ΡΡ
Kubernetes. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, ΡΠ°Π·Π±ΠΈΡΡΠ΅ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, ΠΌΠΎΠ³ΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌΠΈ ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Π»ΡΠ΄ΡΠΌ, Π΄ΠΎΠ²Π΅ΡΡΡΡΠΈΠΌ ΡΡΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈ Π½Π΅ ΠΆΠ΅Π»Π°ΡΡΠΈΠΌ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ Ρ Kubernetes ΠΈ Π²ΡΠ΅ΠΌΠΈ Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ.
Tilt: ΠΠΎΡΠΎΠΊΠΎΠ²Π°Ρ ΡΠ°ΡΡΡΠ»ΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kubernetes
Tilt, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Windmill Engineering, Π½Π°Π±Π»ΡΠ΄Π°Π΅Ρ Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΡΠ°Π·Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Dockerfile, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Kubernetes. ΠΠΎ ΡΡΡΠΈ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ΅Π²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ ΡΠ°ΠΉΠ»Ρ Dockerfile. Tilt Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ±ΠΎΡΠΊΡ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ β Π²ΡΠ΅ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅ΠΏΠΎΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΡΠΌΠΎ ΠΈΠ· Tilt, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΈΠΌΠΈ Ρ ΡΠ»Π΅Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
P.S. ΠΡΠ΅ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΌΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ Π² Southbridge ΠΏΡΠΎΡΡΠΏΠ°Π»ΠΈ Π½Π°ΡΠΈΠΌΠΈ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΡΠΌΠΈ ΡΡΡΠΊΠ°ΠΌΠΈ. Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠΆΠ΅ (Π½Π°Π΄Π΅ΡΡΡ!) Π½Π° ΠΎΡΠ»Π°ΠΉΠ½-ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π°Ρ
Π² ΡΠ΅Π²ΡΠ°Π»Ρ. Kubernetes ΠΠ°Π·Π° 8β10 ΡΠ΅Π²ΡΠ°Π»Ρ 2021. Π Kubernetes ΠΠ΅Π³Π° 12β14 ΡΠ΅Π²ΡΠ°Π»Ρ. Π§Π΅ΡΡΠ½ΠΎ, ΠΌΡ ΡΠΎΠΆΠ΅ ΡΠΎΡΠΊΡΡΠΈΠ»ΠΈΡΡ ΠΏΠΎ ΡΡΠΏΠ»ΠΎΠΉ ΠΈ ΡΠ½Π΅ΡΠ³Π΅ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΡΡΠΆΡΠ½Π½ΠΎΠΉ Π°ΡΠΌΠΎΡΡΠ΅ΡΠ΅ ΠΎΡΠ»Π°ΠΉΠ½-ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΊΠΈΠ΅ Π±Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΌΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½ΠΈ Π±ΡΠ»ΠΈ, ΠΎΠ½ΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΡ ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±ΠΎΠΉ Π°ΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com