8 Π°ΠΏΡΠΈΠ» Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ°
ΠΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΡ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΠ²ΠΈΠ΅ΡΠΎ Π΄Π° Π²ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ
Π―Π΄ΡΠΎ ΠΈ Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΡ Π² K8s
Kubernetes ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΈΠ½Π΄ΡΡΡΡΠΈΡΡΠ° ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΊΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ΡΠΎ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½ΠΈ ΠΎΡΠ΄Π°Π²Π½Π°:
- ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π΅Π³ΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, Π²Π΅ΡΠ΅ Π½Π΅ ΠΎΠΏΠ΅ΡΠΈΡΠ°ΠΌΠ΅ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΊΠ°ΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° (Chef, Ansible...), Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΡΠ»ΡΠ³ΠΈ ΠΈ Ρ.Π½.
- ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π±Π΅Π· Π΄Π° ΠΌΠΈΡΠ»ΠΈΠΌ Π·Π° Π½ΡΠ°Π½ΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ°ΠΉΡ, Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°: bare metal, ΠΎΠ±Π»Π°ΠΊ Π½Π° Π½ΡΠΊΠΎΠΉ ΠΎΡ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈΡΠ΅ ΠΈ Π΄Ρ.
- Π‘ K8s Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΡΠ΅ Π±ΠΈΠ»ΠΈ ΠΏΠΎ-Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π²ΡΡΡ Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°: ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π·Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅, ΡΠ°ΠΌΠΎΠ»Π΅ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠ»Π΅ΡΠ°Π½ΡΠ½ΠΎΡΡ ΠΊΡΠΌ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π΄Ρ.
ΠΠΎ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π½Π΅ Π²ΡΠΈΡΠΊΠΎ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π³Π»Π°Π΄ΠΊΠΎ: Kubernetes ΡΡΡΠΎ Π΄ΠΎΠ½Π΅ΡΠ΅ ΡΠ²ΠΎΠΈΡΠ΅ Π½ΠΎΠ²ΠΈ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅Π»ΡΡΠ²Π°.
Kubernetes Π½Π΅ Π΅ ΠΊΠΎΠΌΠ±Π°ΠΉΠ½, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠ°Π²Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. Π―Π΄ΡΠΎΡΠΎ Kubernetes ΠΎΡΠ³ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΎ Π·Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈΡΡΡΡΠ²Π°Ρ Π² Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅Ρ:
Π―Π΄ΡΠΎΡΠΎ Π½Π° Kubernetes Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΠΎΡΠ½ΠΎΠ²Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ Π·Π° Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ ΠΈ Ρ.Π½. ΠΠΎΠ²ΠΎΡΠΈΡ
ΠΌΠ΅ Π·Π° ΡΡΡ
ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π²
ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, K8s ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π·Π° Π·Π°ΡΠ²Π°ΡΡΠ½Π΅ Π½Π° Π΄ΡΡΠ³ΠΈ - ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ β ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π½ΡΠΆΠ΄ΠΈ. ΠΠΎΠ±Π°Π²ΠΊΠΈΡΠ΅ ΠΊΡΠΌ Kubernetes ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Ρ Π²ΡΠΈΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° ΠΏΡΠΈΠ²Π΅Π΄Π°Ρ ΡΠ²ΠΎΡ ΠΊΠ»ΡΡΡΠ΅Ρ βΠ² ΠΏΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° ΡΠΎΡΠΌΠ°β [Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ]. Π©ΠΎ Π·Π° Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΡ ΡΠ° ΡΠΎΠ²Π°? ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π½ΡΠΊΠΎΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π΄ΠΎΠ±Π°Π²ΠΊΠΈ
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ
ΠΌΠ΅ Kubernetes, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π½Π΅Π½Π°Π΄Π°ΠΌΠ΅, ΡΠ΅ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° pods ΠΊΠ°ΠΊΡΠΎ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π²ΡΠ·Π΅Π», ΡΠ°ΠΊΠ° ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈ, Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ. Π―Π΄ΡΠΎΡΠΎ Π½Π° Kubernetes Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ; Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (
ΠΠ»ΠΈΠ·ΡΠΊ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ (Π»ΠΎΠΊΠ°Π»Π΅Π½ Π΄ΠΈΡΠΊ, ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ Π±Π»ΠΎΠΊΠΎΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Ceph...). ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠ΅ Π±ΡΡ
Π° Π² ΡΠ΄ΡΠΎΡΠΎ, Π½ΠΎ Ρ ΠΏΠΎΡΠ²Π°ΡΠ°
ΠΡΡΠ³ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Ρ:
- ΠΠ»ΠΈΠ·Π°Π½Π΅-ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ (Π²ΠΈΠΆΡΠ΅ ΠΏΡΠ΅Π³Π»Π΅Π΄Π° ΠΈΠΌ Π²
ΡΠΊΠΎΡΠΎΡΠ½Π°ΡΠ° Π½ΠΈ ΡΡΠ°ΡΠΈΡ ). -
CERT-ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ : -
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π΅ ΡΡΠ» ΠΊΠ»Π°Ρ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ (ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡ cert-manager), ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²(ΠΈ) ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ(ΠΈ). ΠΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΡΡ Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΠ°ΠΌΠΎ ΠΎΡ Π½Π°ΡΠ΅ΡΠΎ Π²ΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ΅Π²ΡΡΠ½Π΅ΠΌ Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π‘Π£ΠΠ) Π² ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ (ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Ρ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ). ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈ ΡΠ° ΠΎΠ³ΡΠΎΠΌΠ΅Π½ Π±ΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ - Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΡΡΡ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° Π³ΠΎΡΠΎΠ²ΠΈ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, ΡΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ Π²ΡΠΏΡΠΎΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅: - ΠΠ΅ΡΡΠΈΠΊΠ° - ΠΎΡΠ΅ Π΅Π΄Π½Π° ΠΈΠ»ΡΡΡΡΠ°ΡΠΈΡ Π½Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Kubernetes ΡΠ°Π·Π΄Π΅Π»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (API Π½Π° Metrics) ΠΎΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° (Π΄ΠΎΠ±Π°Π²ΠΊΠΈ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ ΠΊΠ°ΡΠΎ Prometheus adapter, Datadog cluster agent...).
- ΠΠ° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°, ΠΊΡΠ΄Π΅ΡΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ
ΠΡΠΎΠΌΠ΅ΡΠ΅ΠΉ ΠΈ ΠΡΠ°ΡΠ°Π½Π° , Π½ΠΎ ΡΡΡΠΎ ΠΈ kube-state-metrics, node-exporter ΠΈ Π΄Ρ.
Π ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΏΡΠ»Π΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΡ... ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ² ΡΠΈΡΠΌΠ° Flant, ΠΊΠΎΡΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° 29 Π΄ΠΎΠ±Π°Π²ΠΊΠΈ (Π²ΡΠΈΡΠΊΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΎΠ±ΡΠΎ 249 Kubernetes ΠΎΠ±Π΅ΠΊΡΠ°). ΠΡΠΎΡΡΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΆΠΈΠ²ΠΎΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ ΠΊΠ»ΡΡΡΠ΅Ρ Π±Π΅Π· Π΄ΠΎΠ±Π°Π²ΠΊΠΈ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΠΈΡΠ΅ ΡΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Ρ ΡΡΡΠΈΠ½Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΠΌΠ΅ Π²ΡΠ΅ΠΊΠΈ Π΄Π΅Π½. ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΈ ΠΎΡ ΡΠ΅Π°Π»Π½ΠΈΡ ΠΆΠΈΠ²ΠΎΡ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅:
- ΠΠΌΠ° ΡΠ°ΡΡΠ΅Π½ (Ρ.Π΅. ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π²Π»ΠΈΠ·Π°Π½Π΅) ΡΠ΅Π³ΠΈΡΡΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΡΠ΅, ΡΠ΅ Π½Π° Π²ΡΡΠΊΠ° ΠΊΠ°ΠΏΡΡΠ»Π° Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° ΡΠ°ΠΉΠ½Π°, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Π² ΡΠ΅Π³ΠΈΡΡΡΡΠ°. ΠΠ°ΡΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π΅ Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΠΌΠ΅, ΡΠ΅ ΡΠ°Π·ΠΈ ΡΠ°ΠΉΠ½Π° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Π²ΡΡΠΊΠΎ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ ΡΠ°ΠΉΠ½Π°) ΠΈ Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ°ΠΉΠ½ΠΈ Π΄Π° ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΡΠ΅Π΄ΠΎΠ²Π½ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΠΏΡΠΈΡΡΠ° Π·Π° ΡΡΡΠ½ΠΎ ΠΈΠ·Π»Π°Π³Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ½ΠΈ ΡΠ΅ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°. Π’ΡΠΊ Π½Π° ΠΏΠΎΠΌΠΎΡ ΠΈΠ΄Π²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡΡ: ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΡΠ°ΠΊΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠΎΠ²Π° ΡΡΠ±ΠΈΡΠΈΠ΅ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈ ΡΠ°ΠΉΠ½Π° ΠΊΡΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°.
- ΠΠ΅ΠΊΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΄ΠΎΡΡΡΠΏΡΡ ΠΎΡ pods Π΄ΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ Π΅ Π·Π°Π±ΡΠ°Π½Π΅Π½. ΠΠΎ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ: Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠΎΡΡΠΎ, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΡΠΌΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ΅Π· Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π΅ΡΠΈΠΊΠ΅Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°. ΠΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ ΡΡΠΊ? Π‘ΡΠ·Π΄Π°Π²Π° ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ°ΠΊΠ° Π΅ΡΠΈΠΊΠ΅ΡΡΡ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ° ΠΈ Π΄ΠΎΠ±Π°Π²Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ°ΡΠ° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ.
- ΠΠΎΠ΄ΠΎΠ±Π½Π° ΡΠΈΡΡΠ°ΡΠΈΡ: Π΄Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½
Π·Π°ΠΌΡΡΡΡΠ²Π°Π½Π΅ , Π°ΠΊΠΎ ΠΈΠΌΠ° ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π΅ΡΠΈΠΊΠ΅Ρ (Ρ Π½ΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ ΠΏΡΠ΅ΡΠΈΠΊΡ). ΠΠ΅ΠΉΡΡΠ²ΠΈΡΡΠ° Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈ...
ΠΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅Ρ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ°Π²Π°Ρ ΡΡΡΠΈΠ½Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ.
ΠΠ±ΠΎΠ±ΡΠ°Π²Π°ΠΉΠΊΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΈΡΡΠΎΡΠΈΠΈ, ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ ΠΈΠ·Π²ΠΎΠ΄Π°, ΡΠ΅ Π·Π° ΡΠ΄ΠΎΠ±Π½Π° ΡΠ°Π±ΠΎΡΠ° Π² Kubernetes, ΠΎΡ ΠΊΠΎΡΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅: Π) ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ, Π±) ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ (Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΈ Π·Π°Π΄Π°ΡΠΈ).
ΠΠ°ΠΊ Π΄Π° Π½Π°ΠΏΠΈΡΠ° ΠΈΠ·ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π° Kubernetes?
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΡ Π΅ΠΌΠ°ΡΠ° Π΅ ΠΏΡΠΎΡΡΠ°:
... Π½ΠΎ ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅:
- Kubernetes API Π΅ Π΄ΠΎΡΡΠ° Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»Π½ΠΎ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠ½Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΎΠ²Π»Π°Π΄ΡΠ²Π°Π½Π΅;
- ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ ΡΡΡΠΎ Π½Π΅ Π΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ (Π΅Π·ΠΈΠΊΠ° Go Π±Π΅ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π½ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ Π΅Π·ΠΈΠΊ, Π·Π°ΡΠΎΡΠΎ ΠΈΠΌΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° ΡΠ°ΠΌΠΊΠ° Π·Π° Π½Π΅Π³ΠΎ -
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ SDK ); - ΠΠΎΠ΄ΠΎΠ±Π½Π° Π΅ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° ΠΈ ΡΡΡ ΡΠ°ΠΌΠ°ΡΠ° ΡΠ°ΠΌΠΊΠ°.
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°: Π΄Π° Π½Π°ΠΏΠΈΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ (ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ) ΡΡΡΠ±Π²Π° Ρ Π°ΡΡΠ°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π΄Π° ΠΈΠ·ΡΡΠ°Π²Π° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π». Π’ΠΎΠ²Π° Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ Π·Π° βΠ³ΠΎΠ»Π΅ΠΌΠΈβ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ - Π΄Π° ΡΠ΅ΡΠ΅ΠΌ, Π·Π° Π‘Π£ΠΠ MySQL. ΠΠΎ Π°ΠΊΠΎ ΡΠΈ ΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΈΡΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΏΠΎ-Π³ΠΎΡΠ΅ (ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ½ΠΈ, Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΊΠ°ΠΏΡΡΠ»ΠΈ Π΄ΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ...), ΠΊΠΎΠΈΡΠΎ ΡΡΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΡΠ΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π°Π½ΠΈΡΠ΅ ΡΡΠΈΠ»ΠΈΡ ΡΠ΅ Π½Π°Π΄Π²ΠΈΡΠ°Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°, ΠΎΡ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΠΌ ΡΠ΅Π³Π°:
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π΄ΠΈΠ»Π΅ΠΌΠ°: ΠΏΠΎΡ
Π°ΡΡΠ΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠΈ ΠΈ Π½Π°ΠΌΠ΅ΡΠ΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ ΠΏΠΎ ΡΡΠ°ΡΠΎΠΌΠΎΠ΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½ (Π½ΠΎ Π±ΡΡΠ·ΠΎ). ΠΠ° Π΄Π° Π³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ - Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π·ΠΈ ΠΊΡΠ°ΠΉΠ½ΠΎΡΡΠΈ - ΡΡΠ·Π΄Π°Π΄ΠΎΡ
ΠΌΠ΅ Π½Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ:
Shell-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΡΠΎΠΉ? ΠΠ»ΡΡΡΠ΅ΡΡΡ ΠΈΠΌΠ° ΠΏΠΎΠ΄, ΡΡΠ΄ΡΡΠΆΠ°Ρ Go Π΄Π²ΠΎΠΈΡΠ΅Π½ ΡΠ°ΠΉΠ» Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°. ΠΠΎ Π½Π΅Π³ΠΎ ΠΈΠΌΠ° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΡΠΊΠΈΡΠΊΠΈ (ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΡΡΡ - Π²ΠΈΠΆΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ). Π‘Π°ΠΌΠΈΡΡ ΡΠ΅Π»-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΅ Π°Π±ΠΎΠ½ΠΈΡΠ° Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π² Kubernetes API, ΠΏΡΠΈ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΅ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΊΡΠΊΠΈΡΠΊΠΈ.
ΠΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡΡ Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ° Π·Π½Π°Π΅ ΠΊΠΎΠΈ ΠΊΡΠΊΠΈΡΠΊΠΈ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ° ΠΏΡΠΈ ΠΊΠΎΠΈ ΡΡΠ±ΠΈΡΠΈΡ? Π’Π°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π½Π° ΡΠ΅ΡΡΠΏΠΊΠ°ΡΠ° ΠΎΡ ΡΠ°ΠΌΠΈΡΠ΅ ΠΊΡΠΊΠΈ ΠΈ ΡΠ΅ Π³ΠΎ ΠΏΡΠ°Π²ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎ.
Π₯ΡΠΊ Π΅ Bash ΡΠΊΡΠΈΠΏΡ ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΊΠΈ Π΄ΡΡΠ³ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ», ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ° Π΅Π΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ --config
ΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Ρ JSON. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΊΠΎΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π·Π° Π½Π΅Π³ΠΎ ΠΈ Π½Π° ΠΊΠΎΠΈ ΡΡΠ±ΠΈΡΠΈΡ (Π·Π° ΡΠ΅Π·ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ) ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ:
Π©Π΅ ΠΈΠ»ΡΡΡΡΠΈΡΠ°ΠΌ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π²ΡΡΡ
Ρ shell-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΈ - Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ½ΠΈ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΡΡΠ΅Π½ ΡΠ΅Π³ΠΈΡΡΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΡΡΡΠΎΠΈ ΡΠ΅ ΠΎΡ Π΄Π²Π° Π΅ΡΠ°ΠΏΠ°.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅: 1. ΠΠ°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΡΠΊΠ°
ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, Π² ΠΊΡΠΊΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈΠΌ --config
, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΠΎΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°ΡΠ° ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΠΈ ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΎΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΡΡΡ
Π½ΠΎΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅:
[[ $1 == "--config" ]] ; then
cat << EOF
{
"onKubernetesEvent": [
{
"kind": "namespace",
"event": ["add"]
}
]
}
EOF
β¦
ΠΠ°ΠΊ Π±ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Π»Π° Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°? Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΄ΠΎΡΡΠ° ΠΏΡΠΎΡΡΠΎ:
β¦
else
createdNamespace=$(jq -r '.[0].resourceName' $BINDING_CONTEXT_PATH)
kubectl create -n ${createdNamespace} -f - << EOF
Kind: Secret
...
EOF
fi
ΠΡΡΠ²Π°ΡΠ° ΡΡΡΠΏΠΊΠ° Π΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΎ, Π° Π²ΡΠΎΡΠ°ΡΠ° Π΅ Π΄Π° Π³ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° kubectl
ΡΠ°ΠΉΠ½Π° Π·Π° ΡΠΎΠ²Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅: 2. Π‘Π³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ
ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΡΠ°Π²Π°, Π΅ Π΄Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½Π°ΡΠ° ΠΊΡΠΊΠ° Π½Π° shell-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° - ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°? Π‘Π°ΠΌΠΈΡΡ shell-operator ΠΈΠ΄Π²Π° ΠΊΠ°ΡΠΎ Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π°ΡΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΡΠΊΠ°ΡΠ° ΠΊΡΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π² ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
FROM flant/shell-operator:v1.0.0-beta.1
ADD my-handler.sh /hooks
ΠΡΡΠ°Π²Π° ΡΠ°ΠΌΠΎ Π΄Π° Π³ΠΎ ΡΠ³Π»ΠΎΠ±ΠΈΠΌ ΠΈ Π±ΡΡΠ½Π΅ΠΌ:
$ docker build -t registry.example.com/my-operator:v1 .
$ docker push registry.example.com/my-operator:v1
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ ΡΡΠΈΡ Π΅ Π΄Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, Π½Π΅ΠΊΠ° Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: my-operator
spec:
template:
spec:
containers:
- name: my-operator
image: registry.example.com/my-operator:v1 # 1
serviceAccountName: my-operator # 2
ΠΠΌΠ° Π΄Π²Π΅ ΡΠΎΡΠΊΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅:
- ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ Π½Π° Π½ΠΎΠ²ΠΎΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅;
- Π’ΠΎΠ²Π° Π΅ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ (ΠΊΠ°ΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ) ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ ΠΏΡΠ°Π²Π°, Π·Π° Π΄Π° ΡΠ΅ Π°Π±ΠΎΠ½ΠΈΡΠ° Π·Π° ΡΡΠ±ΠΈΡΠΈΡ Π² Kubernetes ΠΈ Π΄Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠ°ΠΉΠ½ΠΈ Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π°, ΡΠ°ΠΊΠ° ΡΠ΅ Π½ΠΈΠ΅ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ServiceAccount (ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π°) Π·Π° ΠΊΡΠΊΠ°ΡΠ°.
Π Π΅Π·ΡΠ»ΡΠ°Ρ - ΡΠ΅ΡΠΈΡ ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΈ ΡΠΎΠ΄Π½ΠΈΠ½ΠΈ Π·Π° Kubernetes ΠΏΠΎ Π½Π°ΡΠΈΠ½, ΠΊΠΎΠΉΡΠΎ ΡΡΠ·Π΄Π°Π²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π·Π° ΡΠ°Π·Π»Π°Π³Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ½ΠΈ.
ΠΡΡΠ³ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° shell-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
ΠΠ° Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ ΠΎΡ Π²Π°Ρ ΡΠΈΠΏ, Ρ ΠΊΠΎΠΈΡΠΎ ΠΊΡΠΊΠ°ΡΠ° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ, ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠΈΠ»ΡΡΠΈΡΠ°Ρ, ΠΈΠ·Π±ΠΈΡΠ°ΠΉΠΊΠΈ ΡΠΏΠΎΡΠ΅Π΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈ (ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ matchExpressions
):
"onKubernetesEvent": [
{
"selector": {
"matchLabels": {
"foo": "bar",
},
"matchExpressions": [
{
"key": "allow",
"operation": "In",
"values": ["wan", "warehouse"],
},
],
}
β¦
}
]
ΠΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΠΊΠΎΠΉΡΠΎ - Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° jq ΡΠΈΠ»ΡΡΡ - Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°ΡΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈ JSON ΠΎΠ±Π΅ΠΊΡΠΈ Π² ΠΌΠ°Π»ΠΊΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΎΡΡΠ°Π²Π°Ρ ΡΠ°ΠΌΠΎ ΠΎΠ½Π΅Π·ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΠΌΠ΅ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ.
ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ° ΠΊΡΠΊΠ°, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡΡ Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ° Ρ ΠΏΡΠ΅Π΄Π°Π²Π° ΠΎΠ±Π΅ΠΊΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π½ΡΠΆΠ΄ΠΈ.
Π‘ΡΠ±ΠΈΡΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°Ρ ΠΊΡΠΊΠΈΡΠΊΠΈ, Π½Π΅ ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ Π΄ΠΎ ΡΡΠ±ΠΈΡΠΈΡ Π½Π° Kubernetes: ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡΡ Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΊΡΠΊΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° crontab Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π΅Π½ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ), ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΡΡΠ±ΠΈΡΠΈΠ΅ onStartup. ΠΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΡΡΠ±ΠΈΡΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈ Π½Π° Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΠΊΡΠΊΠ°.
Π ΠΎΡΠ΅ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° shell-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°:
- Π Π°Π±ΠΎΡΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ ΡΡΠ±ΠΈΡΠΈΠ΅ Π½Π° Kubernetes (ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ), Π΄ΡΡΠ³ΠΈ ΡΡΠ±ΠΈΡΠΈΡ (ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠΈΡ ΠΎΠ±Π΅ΠΊΡ) ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ° Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Π»ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΈ ΠΊΡΠΊΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΡΠΈΡΠ°Ρ ΡΠΎΠ²Π°. ΠΠΊΠΎ ΠΊΡΠΊΠ°ΡΠ° Π΅ Π±ΠΈΠ»Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½Π° Ρ Π³ΡΠ΅ΡΠΊΠ°, ΡΠΎΠ³Π°Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΈΠΏΠΎΠΌΠ½ΡΠΌ ΡΠΈ Π΄ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ (ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ).
- ΠΠ·Π½Π°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠ° Π·Π° Prometheus, Ρ ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ shell-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠΈ, Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π±ΡΠΎΡ Π½Π° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ Π·Π° Π²ΡΡΠΊΠ° ΠΊΡΠΊΠ° ΠΈ ΡΠ΅ΠΊΡΡΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΎΠΏΠ°ΡΠΊΠ°ΡΠ°.
ΠΠ° Π΄Π° ΠΎΠ±ΠΎΠ±ΡΠΈΠΌ ΡΠ°Π·ΠΈ ΡΠ°ΡΡ ΠΎΡ Π΄ΠΎΠΊΠ»Π°Π΄Π°:
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΠ±Π°Π²ΠΊΠΈ
ΠΠ° ΡΠ΄ΠΎΠ±Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ Kubernetes Π±Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠ° ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΠ±Π°Π²ΠΊΠΈ. Π©Π΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΡΠΎΠ²Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π° ΠΏΡΡΡ Π½Π° Π½Π°ΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΊΡΠΌ ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ΅Π³Π°.
ΠΠ°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ Kubernetes Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ»ΡΡΡΠ΅ΡΠ°, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΊΠΎΠΈΡΠΎ Π±Π΅ΡΠ΅ Ingress. Π’ΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΈ Π½ΠΈΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ YAML ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ: Π³ΠΎΠ» ΠΌΠ΅ΡΠ°Π», AWS...
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ, ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΡ ΠΌΠ΅ ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ΅Π·ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΡΠ°Π½Π°Ρ Π° Π΄ΠΎΡΡΠ° ΡΠ°Π·Π½ΠΎΡΠΎΠ΄Π½ΠΈ:
ΠΠ° Π΄Π° ΠΏΠΎΠ΄ΡΠ΅Π΄ΠΈΠΌ Π²ΡΠΈΡΠΊΠΎ, Π·Π°ΠΏΠΎΡΠ½Π°Ρ
ΠΌΠ΅ ΡΡΡ ΡΠΊΡΠΈΠΏΡ (install-ingress.sh
), ΠΊΠΎΠΉΡΠΎ Π²Π·Π΅ ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° ΠΊΠ»ΡΡΡΠ΅Ρ, ΠΊΡΠΌ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π²Π½Π΅Π΄ΡΠΈΠΌ, Π³Π΅Π½Π΅ΡΠΈΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° YAML ΠΈ Ρ Π²Π½Π΅Π΄ΡΠΈ Π² Kubernetes.
ΠΠ°ΠΊΡΠ°ΡΠΊΠΎ, ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½ΠΈΡΡ Π½ΠΈ ΠΏΡΡ ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ Π½Π΅Π³ΠΎ ΡΠ°Π·ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π±ΡΡ Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅:
- Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ YAML ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ°Π±Π»ΠΎΠ½Π΅Π½ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π» (Π½Π° ΠΏΡΡΠ²ΠΈΡΠ΅ Π΅ΡΠ°ΠΏΠΈ ΡΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠΎ sed);
- Ρ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΡΠΎΡ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ (Π½Π°ΠΉ-ΡΠ°Π½Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±Π΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΠ° Π² Git, Π΄Π° Π³ΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Ρ cron ΠΈ Π΄Π° Π³ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅);
- ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΡΠΊΡΠΈΠΏΡ Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π·Π° Prometheus (
install-prometheus.sh
), Π½ΠΎ ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΡΡ Π½ΠΎΡΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ (Π² Π΄ΠΎΠ±ΡΠΈΡ ΡΠΌΠΈΡΡΠ» - ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅Ρ), Π° Π½ΡΠΊΠΎΠΈ Π΄Π°Π½Π½ΠΈ (ΠΏΠ°ΡΠΎΠ»ΠΈ) ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ: - ΡΠΈΡΠΊΡΡ ΠΎΡ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅ΡΠΎ Π½Π΅ΡΠ΅Π΄Π½ΠΎ ΠΊΡΠΌ Π½Π°ΡΠ°ΡΡΠ²Π°Ρ Π±ΡΠΎΠΉ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ Π½Π°ΡΠ°ΡΡΠ²Π°ΡΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΡΡΠ·Π½Π°Ρ ΠΌΠ΅, ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΎΡΠΈΡΠ΅ (Ρ.Π΅. Π΄Π²Π° ΡΠΊΡΠΈΠΏΡΠ°: Π·Π° Ingress ΠΈ Prometheus) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π±Π΅ΡΠ΅ Π΅ΡΠ°ΠΏΠ½ΠΎΡΡ (Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ»ΠΎΠ½Π° Π² Git, Π½ΡΠΊΠΎΠ»ΠΊΠΎ crons Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈΠΌ Π² ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅: ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ);
- Ρ
kubectl apply
ΡΡΠ°Π½Π° ΡΡΡΠ΄Π΅Π½ Π·Π° ΡΠ°Π±ΠΎΡΠ°, Π·Π°ΡΠΎΡΠΎ Π½Π΅ Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π΅Π½ ΠΈ ΠΌΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π²Π° ΠΎΠ±Π΅ΠΊΡΠΈ, Π½ΠΎ Π½Π΅ ΠΈ Π΄Π° Π²Π·Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΡΠ΅Ρ Π½ΠΈΡ ΡΡΠ°ΡΡΡ/Π΄Π° Π³ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°; - ΠΠΈΠΏΡΠ²Π°Ρ
Π° Π½ΠΈ Π½ΡΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π±ΡΡ
ΠΌΠ΅ Π²Π½Π΅Π΄ΡΠΈΠ»ΠΈ ΠΏΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅:
- ΠΏΡΠ»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π²ΡΡΡ Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°,
- Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ (Π²Ρ ΠΎΠ΄ Π·Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅) Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ° (ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅),
- Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅.
Π¦Π΅Π»ΠΈΡΡ ΡΠΎΠ·ΠΈ Π½Π°ΡΡΡΠΏΠ°Π½ ΠΎΠΏΠΈΡ Π²Π½Π΅Π΄ΡΠΈΡ
ΠΌΠ΅ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΈΡ Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ -
Addon-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
ΠΠ°Π·ΠΈΡΠ°Π½ Π΅ Π½Π° Π²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡ shell-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ. Π¦ΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:
Π‘Π»Π΅Π΄Π½ΠΎΡΠΎ ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ ΠΊΡΠΌ ΠΊΡΠΊΠΈΡΠ΅ Π½Π° shell-operator:
- ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π½Π½ΠΎΡΡΠΈ,
- ΠΠΈΠ°Π³ΡΠ°ΠΌΠ° Π½Π° ΠΊΠΎΡΠΌΠΈΠ»ΠΎΡΠΎ,
- ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ»Π΅Π΄ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΈ - Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ - ΠΌΠΎΠ»ΠΈ Helm Π΄Π° ΠΏΡΠ΅Π²ΡΡΡΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ Π³ΡΠ°ΡΠΈΠΊΠ°ΡΠ°.
Π’Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅Π°Π³ΠΈΡΠ°ΠΌΠ΅ Π½Π° ΡΡΠ±ΠΈΡΠΈΠ΅ Π² Kubernetes, Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΊΡΠΊΠ° ΠΈ ΠΎΡ ΡΠ°Π·ΠΈ ΠΊΡΠΊΠ° Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ Π³ΡΠ°ΡΠΈΠΊΠ°ΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½Π° ΠΎΡΠ½ΠΎΠ²ΠΎ. Π ΠΏΠΎΠ»ΡΡΠ΅Π½Π°ΡΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° ΡΠ°Π·Π΄Π΅Π»ΡΠΌΠ΅ Π½Π°Π±ΠΎΡΠ° ΠΎΡ ΠΊΡΠΊΠΈΡΠΊΠΈ ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Π² Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π½Π°ΡΠΈΡΠ°ΠΌΠ΅ ΠΌΠΎΠ΄ΡΠ»:
ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΊΡΠΌ ΡΡΡ
Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΊΡΠΊΠΈΡΠΊΠΈ, Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π²Π° ΡΠΎΠ²Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ Π² Kubernetes, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅Π°Π³ΠΈΡΠ°ΠΌΠ΅ Π½Π° ΡΠΎΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΊΡΠΊΠ° ΠΈ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ Π½Π΅ΡΠΎ Π² Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½. Π’Π°Π·ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°Π±Π΅Π»ΡΠ·Π°Π½Π° ΠΈ ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°:
Π’Π°Π·ΠΈ ΡΡ
Π΅ΠΌΠ° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΠ±Π°Π²ΠΊΠΈ, ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ ΠΏΠΎ-Π³ΠΎΡΠ΅:
- Helm ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈΡΠ΅ ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΡΠ°.
- ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π±Π΅ΡΠ΅ ΡΠ΅ΡΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΊΡΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΎΡΠΈΠ²Π° Π² ΡΠ΅Π³ΠΈΡΡΡΡΠ° ΠΏΠΎ Π³ΡΠ°ΡΠΈΠΊ ΠΈ, Π°ΠΊΠΎ Π²ΠΈΠ΄ΠΈ Π½ΠΎΠ²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌ, Π³ΠΎ ΠΏΡΡΠΊΠ° (Ρ.Π΅. βΡΠ°ΠΌΠΎ ΡΠ΅Π±Π΅ ΡΠΈβ).
- Π‘ΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ConfigMap, ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΠΏΡΡΠ²ΠΈΡΠ½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΡΠ° (ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°Ρ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΡΠ°).
- ΠΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠΎΠ»Π°, ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ΡΠΎ ΠΈ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎΡΠΎ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π±ΡΡ Π° ΡΠ΅ΡΠ΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΡΠΊΠΈ.
- ΠΡΠ°ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π³ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Docker ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΡ ΠΊΡΡΠΈΡΡΠ°.
- Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ ΡΠ΅ ΡΠ»Π΅Π΄ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΡΡΠ΅Π· ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ.
Π¦ΡΠ»Π°ΡΠ° ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ΅Π½ Π΄Π²ΠΎΠΈΡΠ΅Π½ ΡΠ°ΠΉΠ» Π² Go, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° addon-operator. Π’ΠΎΠ²Π° ΠΏΡΠ°Π²ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠΎ-ΠΏΡΠΎΡΡΠ°:
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΡΠ°Π·ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ (ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈ Π² ΡΠΈΠ²ΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρ). Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ» Π·Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° Π΄ΠΎΠ±Π°Π²ΠΊΠ° Ρ ΠΌΠ°Π»ΠΊΠΎ ΡΡΠΈΠ»ΠΈΡ ΠΈ Π΄Π° ΡΠΌΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ, ΡΠ΅ ΡΠΎΠΉ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅Ρ, ΡΠ΅ ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° ΠΈ ΡΠ΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠ±ΠΈΡΠΈΡΡΠ°, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° Π½ΡΠΆΠ΄Π° Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
"Flant" ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°
ΠΡΠ΄Π΅ ΠΌΠΎΠ³Π° Π΄Π° Π²Π·Π΅ΠΌΠ° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π·Π° addon-operator? ΠΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΡΠ°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΅ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΡ Π΅ΡΠ°ΠΏ Π·Π° Π½Π°Ρ, ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠ΅Π· Π»ΡΡΠΎΡΠΎ.
ΠΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠΎΠ²Π΅ ΠΈ ΡΠ»Π°ΠΉΠ΄ΠΎΠ²Π΅
ΠΠΈΠ΄Π΅ΠΎ ΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ (~50 ΠΌΠΈΠ½ΡΡΠΈ):
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°:
PS
ΠΡΡΠ³ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- Β«
ΠΠ°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Kubernetes Β»; (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 8 Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ 2018 Π³. Π² HighLoad++); - Β«
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ Kubernetes Β»; (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 28 ΠΌΠ°ΠΉ 2018 Π³. Π² RootConf); - Β«
ΠΠ°ΠΉ-Π΄ΠΎΠ±ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° CI/CD Ρ Kubernetes ΠΈ GitLab Β»; (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 7 Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ 2017 Π³. Π² HighLoad++); - Β«
ΠΠ°ΡΠΈΡΡ ΠΎΠΏΠΈΡ Ρ Kubernetes Π² ΠΌΠ°Π»ΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Β»; (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 6 ΡΠ½ΠΈ 2017 Π³. Π² RootConf).
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΈ ΠΎΡ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ:
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com