Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡ ΡΠ²ΠΎΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Ρ ΠΆΠ΅Π»Π΅Π·Π½ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
Π²ΠΈΡΡΡΠ°Π»ΠΎΠΊ Π² ΠΎΠ±Π»Π°ΠΊΠ°. Π’Π°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ: Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ ΠΆΠ΅Π»Π΅Π·Π΅, ΠΊΠ»Π°ΡΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²β¦ Π° ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ β ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ (Π²ΡΠΎΠ΄Π΅ Kubernetes) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΡΠ΅Π³Π΄Π° Π²Π°ΠΆΠ΅Π½ ΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠΉ Π°ΡΠΏΠ΅ΠΊΡ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΠ΅ΡΡ ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠΉΠ΄Π΅Ρ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΏΡΠΈΠ·Π²Π°Π½ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΠΆΠ΅ΡΠΎΠ² ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Ρ Kubernetes.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Ρ Kubernetes ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ ΠΎΠ±Π»Π°ΠΊΠ°Ρ AWS ΠΈ GCP, ΡΠ°ΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Π΄ΠΊΠΎΠΌ Π΄Π»Ρ Linux-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° Azure β Π² ΠΎΠ±ΡΠ΅ΠΌ, Π½Π° Π²ΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ KubecostβΠΎΠΌ. ΠΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ· Π½ΠΈΡ ΠΌΡ ΡΡΠΈΡΠ°Π΅ΠΌ Π·Π°ΡΡΠ°ΡΡ ΠΏΠΎ Π²Π½ΡΡΡΠΈΠΊΠ»Π°ΡΡΠ΅ΡΠ½ΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ (ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ΅, ΠΏΠΎΡ ΠΎΠΆΠ΅ΠΉ Π½Π° ΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Kubecost), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΠΈΠΌ Π·Π° ΡΠ°ΡΡ ΠΎΠ΄Π°ΠΌΠΈ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΡΠΎ Π½Π°Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Kubecost ΠΎΡΠΊΡΡΡ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡΡ
Open Source-Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ (Apache License 2.0). ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ, Π° Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π΅ΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ: ΠΎΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π·Π°ΠΊΡΡΡΠ°, Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ
ΠΠ°ΠΊ Π²ΡΡ ΡΡΡΡΠΎΠ΅Π½ΠΎ
ΠΡΠ°ΠΊ, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ Kubecost β ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Ρ cost-model Π΅ΡΡΡ ΡΠ²ΠΎΠΉ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΏΠΎ Π·Π°ΡΡΠ°ΡΠ°ΠΌ Π² ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π° ΡΠ°ΠΊΠΆΠ΅, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΠ²Π΅ΡΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ². ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΆΠ΅ Π² Grafana dashboardβΡ ΡΠ²Π»ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠΌ ΡΡΠ°ΠΏΠΎΠΌ ΡΠ°Π·Π²ΠΈΡΠΈΡ Kubecost ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΡΠ΅ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΡΠΎ ΠΈ cost-model, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ ΠΈΡ ΠΏΡΠΈΠ²ΡΡΠ½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΎΠΉ ΠΏΠΎ ΡΠ°ΡΡ ΠΎΠ΄Ρ CPU/ΠΏΠ°ΠΌΡΡΠΈ/ΡΠ΅ΡΠΈ/Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΈ Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ .
ΠΠ°ΠΊ ΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Kubecost?
- Cost-model ΡΠ΅ΡΠ΅Π· API ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ² ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅Π½Ρ Π½Π° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅.
- ΠΠ°Π»Π΅Π΅, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ·Π»Π° ΠΈ ΡΠ΅Π³ΠΈΠΎΠ½Π°, ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΏΠΎ ΡΠ·Π»Π°ΠΌ.
- ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠ·Π»ΠΎΠ² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ pod ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π·Π° ΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ²Π°Π½ΠΈΡ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ° ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠ°ΡΠ° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΡΡ β Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ·Π»Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π», ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°.
- ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ podβΠΎΠ² ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠΏΠ»Π°ΡΠ° ΠΏΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°ΠΌ ΠΈΠΌΡΠ½, ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ, DeploymentβΠ°ΠΌ, StatefulSetβΠ°ΠΌ.
- ΠΠ»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ kube-state-metrics ΠΈ node-exporter.
ΠΠ°ΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ Kubecost ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΈΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡΡΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² Kubernetes. ΠΠ½Π΅ΡΠ½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ΅ΡΠ²Π΅ΡΡ GitLab, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° S3 ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ (ΠΏΡΡΡΡ ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΎΠ±Π»Π°ΠΊΠ΅), Π΄Π»Ρ Π½Π΅Π³ΠΎ Π½Π΅ Π²ΠΈΠ΄Π½Ρ. Π₯ΠΎΡΡ Π΄Π»Ρ GCP ΠΈ AWS ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ»ΡΡΠΈ ΡΠ²ΠΎΠΈΡ ΡΠ΅ΡΠ²ΠΈΡ-Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² ΠΈ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ Π²ΡΡ Π²ΠΌΠ΅ΡΡΠ΅.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kubecost ΡΡΠ΅Π±ΡΡΡΡΡ:
- Kubernetes Π²Π΅ΡΡΠΈΠΈ 1.8 ΠΈ Π²ΡΡΠ΅;
- kube-state-metrics;
- Prometheus;
- node-exporter.
Π’Π°ΠΊ ΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π² Π½Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°Ρ Π²ΡΠ΅ ΡΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π±ΡΠ»ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½Ρ Π·Π°ΡΠ°Π½Π΅Π΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ endpoint Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° Π² Prometheus. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Helm-ΡΠ°ΡΡ kubecost ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡΡΡ ΠΈ Π½Π° Β«Π³ΠΎΠ»ΠΎΠΌΒ» ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Kubecost ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
- Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Helm ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ cost-analyzer, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΡΡ. ΠΡΡΠ°Π½Π΅ΡΡΡ Π»ΠΈΡΡ ΠΏΡΠΎΠ±ΡΠΎΡΠΈΡΡ ΡΠ΅Π±Π΅ ΠΏΠΎΡΡ ΠΈ Π΄ΠΎΠΏΠΈΠ»ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄ΠΎ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²ΡΡΡΠ½ΡΡ (ΡΠ΅ΡΠ΅Π· kubectl) ΠΈ/ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° cost-model.ΠΠ°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΌΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ Ρ ΠΎΡΠΎΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Β«ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π±ΡΒ». ΠΡΠ»ΠΈ ΠΆΠ΅ Ρ Π²Π°Ρ ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠ°ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ½ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π»ΡΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠΎΡΠΎΠΉ ΠΏΡΡΡ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΡΡΠΈ
ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΡΡ , Π½ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Π»ΡΠ±ΡΠΌ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.ΠΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ kubecostβΠ° ΡΡΠΎΡ ΡΠ°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΡΡΡ Grafana ΠΈ Prometheus, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΆΠ΅Π»Π°Π½ΠΈΡ.
ΠΠΌΠ΅ΡΡΠΈΠΉΡΡ Π² ΡΠ°ΡΡΠ΅
values.yaml
Π΄Π»Ρ cost-analyzer ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ:- ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² cost-analyzer, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ;
- ΡΠ²ΠΎΠΉ endpoint Π΄Π»Ρ Prometheus (Π΅ΡΠ»ΠΈ ΠΎΠ½ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ);
- Π΄ΠΎΠΌΠ΅Π½Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ingressβΠΎΠ² Π΄Π»Ρ cost-model ΠΈ Grafana;
- Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Π΄Π»Ρ podβΠΎΠ²;
- Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ ΠΈ ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ.
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΎΠΏΡΠΈΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π΅ΡΡΡ Π²
Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ .ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ kubecost Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π½Π΅ ΡΠΌΠ΅Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ basic-auth Π΄Π»Ρ Π²Π΅Π±-ΠΏΠ°Π½Π΅Π»ΠΈ.
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΄ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΡ β cost-model. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Prometheus ΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π°Π΄ΡΠ΅ΡΠ° Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
prometheusEndpoint
Π΄Π»Ρ HelmβΠ°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ β ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡΠ½Π°Π±ΠΎΡ YAML-ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅.ΠΠΏΡΡΡ ΠΆΠ΅, ΠΏΡΠΈΠ΄ΡΡΡΡ Π²ΡΡΡΠ½ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Ingress Ρ basic-auth. Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΌΠ΅ΡΡΠΈΠΊ cost-model Π²
extraScrapeConfigs
Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅ Prometheus:- job_name: kubecost honor_labels: true scrape_interval: 1m scrape_timeout: 10s metrics_path: /metrics scheme: http dns_sd_configs: - names: - <Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° kubecost> type: 'A' port: 9003
Π§ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ?
ΠΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²Π΅Π±-ΠΏΠ°Π½Π΅Π»Ρ kubecost ΠΈ Grafana Ρ Π½Π°Π±ΠΎΡΠΎΠΌ dashboardβΠΎΠ².
Total cost, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΉ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠΊΡΠ°Π½Π΅, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°ΡΡΠ΅ΡΠ½ΡΡ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π·Π° ΠΌΠ΅ΡΡΡ. ΠΡΠΎ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ΅Π½Π°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠ°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° (Π² ΠΌΠ΅ΡΡΡ) ΠΏΡΠΈ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΠ°Π½Π½Π°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ° β Π±ΠΎΠ»ΡΡΠ΅ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² ΠΈ ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ±ΡΠΈΠ΅ Π·Π°ΡΡΠ°ΡΡ Π·Π° Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΈΡΠ»Ρ Π² kubecost ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ: Π·Π° ΡΡΠΈΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΠ΄ΡΠΈ Π² Π±ΠΈΠ»Π»ΠΈΠ½Π³. ΠΠ°ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π°ΡΡΠ°ΡΡ Ρ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠΎΠΉ ΠΏΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°ΠΌ ΠΈΠΌΡΠ½, Π»Π΅ΠΉΠ±Π»Π°ΠΌ, podβΠ°ΠΌ Π·Π° 1/2/7/30/90 Π΄Π½Π΅ΠΉ, ΡΠ΅Π³ΠΎ Π±ΠΈΠ»Π»ΠΈΠ½Π³ Π²Π°ΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ.
Π ΡΠ»ΠΎΠ²Ρ ΠΎ Π»Π΅ΠΉΠ±Π»Π°Ρ
. Π‘ΡΠΎΠΈΡ ΡΡΠ°Π·Ρ Π·Π°ΠΉΡΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ Π²ΡΡΡΠ°Π²ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ Π»Π΅ΠΉΠ±Π»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π΄Π»Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ Π·Π°ΡΡΠ°Ρ:
ΠΠ΅ΠΉΠ±Π»Ρ Π½Π° Π½ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Π΅ΡΠΈΡΡ Π»ΡΠ±ΡΠ΅ β ΡΠ΄ΠΎΠ±Π½ΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ²ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΠΈΡΡ Π°Π΄ΡΠ΅Ρ API endpointβΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ cost-model, Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΊΠΈΠ΄ΠΊΠΈ Π² GCP ΠΈ Π²ΡΡΡΠ°Π²ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅Π½Ρ Π½Π° ΡΠ΅ΡΡΡΡΡ ΠΈ Π²Π°Π»ΡΡΡ Π΄Π»Ρ ΠΈΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ (ΡΠΈΡΠ° ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Total cost).
Kubecost ΡΠΌΠ΅Π΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ (ΠΈ Π΄Π°ΠΆΠ΅ Π°Π»Π΅ΡΡΠΈΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ). Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΎΠΏΡΠΈΡ Π½Π΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ, Π° ΠΏΠΎΡΠ΅ΠΌΡ β Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅:
ΠΠ°ΠΆΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ β Cluster Savings. ΠΠ½ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ podβΠΎΠ² (ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ
), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΠ°Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅Π½Π΅Π³ ΠΈ Π½Π° ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ.
ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ β Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠΏΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π΅ΡΡΡ ΠΊ ΡΠ΅ΠΌΡ ΠΏΡΠΈΡΠΌΠΎΡΡΠ΅ΡΡΡΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π²Π°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ podβΠΎΠ² (Kubecost ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΡΡ ), ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΠ°ΡΡ ΠΎΠ΄ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ CPU, Π° ΡΠ°ΠΊΠΆΠ΅ CPU, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΡΠ·Π»Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° (ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ²Π΅ΡΠ½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·Π»ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½), Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° Π΄ΠΈΡΠΊΠΈ ΠΈ Π΅ΡΠ΅ ΠΏΠ°ΡΠ° Π΄Π΅ΡΡΡΠΊΠΎΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠ°ΠΊ ΠΈ Π² Π»ΡΠ±ΠΎΠΌ Π²ΠΎΠΏΡΠΎΡΠ΅, ΠΊΠ°ΡΠ°ΡΡΠ΅ΠΌΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π°Π½Π½ΡΡ
Kubecost Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Cluster Savings ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ·Π»Ρ, ΡΡΠ²Π΅ΡΠΆΠ΄Π°Ρ, ΡΡΠΎ ΡΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΡ
Π½Π° Π½ΠΈΡ
podβΠ² node-selectorβΠΎΠ² ΠΈ taintβΠΎΠ², Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΡ
ΡΡ Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
ΡΠ·Π»Π°Ρ
. ΠΠ° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅, Π΄Π°ΠΆΠ΅ Π°Π²ΡΠΎΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π² ΡΠ²ΠΎΠ΅ΠΉ
ΠΡΠΎΠ³ΠΈ
ΠΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ kubecost Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΡΠ° Π½Π° ΠΏΠ°ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΊΠ»ΡΡΠΈΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ (Π° Π΅ΡΡ Π»Π΅Π³ΠΊΠΈΠΉ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅) ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Π½Π° ΡΡΠ»ΡΠ³ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ Kubernetes-ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ². ΠΠΎΠ΄ΡΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ Π²Π΅ΡΡΠΌΠ° ΡΠΎΡΠ½ΡΠΌΠΈ: Π² Π½Π°ΡΠΈΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Ρ ΠΎΠ½ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΈ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ.
ΠΠ΅ ΠΎΠ±ΠΎΡΠ»ΠΎΡΡ ΠΈ Π±Π΅Π· ΠΌΠΈΠ½ΡΡΠΎΠ²: Π΅ΡΡΡ Π½Π΅ΠΊΡΠΈΡΠΈΡΠ½ΡΠ΅ Π±Π°Π³ΠΈ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π½Π΅ ΠΏΠΎΠΊΡΡΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΊΡΠ΄Π° ΡΡ ΠΎΠ΄ΡΡ Π΄Π΅Π½ΡΠ³ΠΈ ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Β«ΠΏΠΎΡΠ΅Π·Π°ΡΡΒ», ΡΡΠΎΠ±Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΡΠ΅Ρ Π·Π° ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ Π½Π° 5-30% (ΡΠ°ΠΊ ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅), β ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ.
P.S.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
ΠΠ²ΡΠΎΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ Π² Kubernetes (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π°) Β»; - Β«
Kubernetes-ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Dailymotion: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠ°Ρ + on-premises Β»; - Β«
Kubernetes tips & tricks: ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ·Π»ΠΎΠ² ΠΈ ΠΎ Π½Π°Π³ΡΡΠ·ΠΊΠ°Ρ Π½Π° Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com