
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΡΠ΅Ρ
Π²ΡΡΠ»ΡΡ ΡΠ²ΠΎΡΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Ρ
Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΊΡΠΌ ΠΎΠ±Π»Π°ΠΊΠ°. Π’ΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ Π»Π΅ΡΠ½ΠΎ Π·Π° ΠΎΠ±ΡΡΠ½Π΅Π½ΠΈΠ΅: Π½ΡΠΌΠ° Π½ΡΠΆΠ΄Π° Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅ Π·Π° Ρ
Π°ΡΠ΄ΡΠ΅ΡΠ°, ΠΊΠ»ΡΡΡΠ΅ΡΡΡ ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° Π»Π΅ΡΠ½ΠΎ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ... ΠΈ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ (ΠΊΠ°ΡΠΎ Kubernetes) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΏΡΠΎΡΡΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΌΠΎΡΠ½ΠΎΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ .
Π€ΠΈΠ½Π°Π½ΡΠΎΠ²ΠΈΡΡ Π°ΡΠΏΠ΅ΠΊΡ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π²Π°ΠΆΠ΅Π½. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ, ΠΎΠ±ΡΡΠ΄Π΅Π½ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ, Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π±ΡΠ΄ΠΆΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π»Π°ΡΠ½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Ρ Kubernetes.
Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π΅ ΠΊΠ°Π»ΠΈΡΠΎΡΠ½ΠΈΠΉΡΠΊΠΈ ΡΡΠ°ΡΡΡΠΏ ΠΎΡ Google, ΡΡΠ·Π΄Π°Π²Π°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ Π² ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ (Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Kubernetes ΠΊΠ»ΡΡΡΠ΅Ρ + ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ), ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΡΠ΅ΡΠ½ΠΈ ΠΌΠ΅ΡΡΠ° Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ ΠΈΠ·Π²Π΅ΡΡΠΈΡ Π΄ΠΎ Slack.
ΠΠΌΠ°ΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Ρ Kubernetes ΠΊΠ°ΠΊΡΠΎ Π² ΠΏΠΎΠ·Π½Π°ΡΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΠΈ AWS ΠΈ GCP, ΡΠ°ΠΊΠ° ΠΈ Π² ΠΏΠΎ-ΡΠ΅Π΄ΠΊΠΈΡΠ΅ Linux- Azure ΠΎΠ±ΡΠ½ΠΎΡΡΠΈ β ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΎΡ Kubecost. ΠΠ° Π½ΡΠΊΠΎΠΈ ΠΎΡ ΡΡΡ Π½ΠΈΠ΅ ΡΠ°ΠΌΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΡΠ»ΡΠ³ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° ΡΠ°Π·ΠΈ Π½Π° Kubecost), Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ»Π΅Π΄ΠΈΠΌ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΡΠ΅ ΡΡΡΠ΅ΠΌΠΈΠΌ Π΄Π° Π³ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌΠ΅. Π’Π°ΠΊΠ° ΡΠ΅ Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΠΎΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ» Kubecost Π΅ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΡΡΠ³Π»Π°ΡΠ½ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ° Π½Π° Π»ΠΈΡΠ΅Π½Π·Π° Π·Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ (Apache License 2.0). ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π·Π° ΠΌΠ°Π»ΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ. ΠΠΈΠ·Π½Π΅ΡΡΡ ΠΎΠ±Π°ΡΠ΅ ΡΠΈ Π΅ Π±ΠΈΠ·Π½Π΅Ρ: ΠΎΡΡΠ°Π½Π°Π»Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π΅ Π·Π°ΡΠ²ΠΎΡΠ΅Π½Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ , ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΠΈ ΡΡΡΠ³ΠΎΠ²ΡΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π°Π²ΡΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π±Π΅Π·ΠΏΠ»Π°ΡΠ΅Π½ Π»ΠΈΡΠ΅Π½Π· Π·Π° ΠΌΠ°Π»ΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ (1 ΠΊΠ»ΡΡΡΠ΅Ρ Ρ 10 Π²ΡΠ·Π΅Π»Π° - ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠΎΠ²Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠΈ Π΄ΠΎ 20 Π²ΡΠ·Π΅Π»Π°) ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π΅Π½ ΠΏΠ΅ΡΠΈΠΎΠ΄ Ρ ΠΏΡΠ»Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° 1 ΠΌΠ΅ΡΠ΅Ρ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Π²ΡΠΈΡΠΊΠΎ
Π ΡΠ°ΠΊΠ°, ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Kubecost Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ , Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° Go. ΠΠ·Π²ΠΈΠΊΠ²Π° ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π½Π° Helm, ΠΊΠΎΡΡΠΎ ΠΎΠΏΠΈΡΠ²Π° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° ΡΠΈ Π΅ ΡΠ³Π»ΠΎΠ±ΠΊΠ° ΠΎΡ ΡΠ°Π·Ρ ΠΎΠ΄Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Ρ ΠΡΠΎΠΌΠ΅ΡΠ΅ΠΉ, ΠΡΠ°ΡΠ°Π½Π° ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°Π±Π»Π°.
ΠΠ°ΠΉ-ΠΎΠ±ΡΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, cost-model ΠΈΠΌΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π·Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ΅Π½ Π²ΠΈΠ΄, ΠΊΠ°ΠΊΡΠΎ ΠΈ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΡΠ²Π΅ΡΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅. Π’Π°Π±Π»Π°ΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ Π² Grafana, ΡΠ° ΠΏΠΎ-ΡΠ°Π½Π΅Π½ Π΅ΡΠ°ΠΏ ΠΎΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Kubecost ΠΈ ΡΡΠ΄ΡΡΠΆΠ°Ρ ΠΏΠΎΡΡΠΈ ΡΡΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅, Π΄ΠΎΠΏΡΠ»Π²Π°ΠΉΠΊΠΈ Π³ΠΈ Ρ ΠΎΠ±ΠΈΡΠ°ΠΉΠ½Π°ΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π·Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° CPU/ΠΏΠ°ΠΌΠ΅Ρ/ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ/Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ .
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Kubecost?
- Cost-model ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΠ΅Π½ΠΈ Π·Π° ΡΡΠ»ΡΠ³ΠΈ ΡΡΠ΅Π· API Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ.
- ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠΈΠΏΠ° ΠΆΠ΅Π»ΡΠ·ΠΎ Π½Π° Π²ΡΠ·Π΅Π»Π° ΠΈ ΡΠ΅Π³ΠΈΠΎΠ½Π°, ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° ΡΠ΅Π½Π°ΡΠ° Π½Π° Π²ΡΠ·Π΅Π».
- ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π²ΡΠ·Π»ΠΈ, Π²ΡΠ΅ΠΊΠΈ Π»ΠΈΡΡΠΎΠ² ΠΌΠΎΠ΄ΡΠ» ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΠ΅Π½Π° Π½Π° ΡΠ°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°, Π½Π° Π³ΠΈΠ³Π°Π±Π°ΠΉΡ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ Π½Π° ΡΠ°Ρ Π½Π° Π³ΠΈΠ³Π°Π±Π°ΠΉΡ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ - Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π²ΡΠ·Π΅Π»Π°, Π½Π° ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ°Π±ΠΎΡΠΈΠ», ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΠ° Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅.
- ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΏΠ»Π°ΡΠ°Π½Π΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Π·Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π°, ΡΡΠ»ΡΠ³ΠΈ, Π²Π½Π΅Π΄ΡΡΠ²Π°Π½ΠΈΡ, StatefulSets.
- Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ kube-state-metrics ΠΈ node-exporter.
ΠΠ°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΈΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ Kubecost ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΎΡΡΠΈΡΠ° ΡΠ°ΠΌΠΎ ΡΠ΅ΡΡΡΡΠΈΡΠ΅, Π½Π°Π»ΠΈΡΠ½ΠΈ Π² Kubernetes. ΠΡΠ½ΡΠ½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, GitLab ΡΡΡΠ²ΡΡΠΈ, S3 Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° (Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π² ΡΡΡΠΈΡ ΠΎΠ±Π»Π°ΠΊ), Π½Π΅ ΡΠ° Π²ΠΈΠ΄ΠΈΠΌΠΈ Π·Π° Π½Π΅Π³ΠΎ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π·Π° GCP ΠΈ AWS ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° Π²Π°ΡΠΈΡΠ΅ Π°ΠΊΠ°ΡΠ½ΡΠΈ Π·Π° ΡΡΠ»ΡΠ³ΠΈ ΠΈ Π΄Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π·Π°Π΅Π΄Π½ΠΎ.
ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡ
Kubecost ΠΈΠ·ΠΈΡΠΊΠ²Π°:
- Kubernetes Π²Π΅ΡΡΠΈΡ 1.8 ΠΈ ΠΏΠΎ-Π½ΠΎΠ²Π°;
- kube-ΡΡΡΡΠΎΡΠ½ΠΈΠ΅-ΠΌΠ΅ΡΡΠΈΠΊΠ°;
- ΠΡΠΎΠΌΠ΅ΡΠ΅ΠΉ;
- Π²ΡΠ·Π΅Π»-ΠΈΠ·Π½ΠΎΡΠΈΡΠ΅Π».
Π’Π°ΠΊΠ° ΡΠ΅ ΡΠ»ΡΡΠΈ, ΡΠ΅ Π² Π½Π°ΡΠΈΡΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π±ΡΡ Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ ΠΎΠΊΠ°Π·Π°, ΡΠ΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° ΠΊΡΠ°ΠΉΠ½Π° ΡΠΎΡΠΊΠ° Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Prometheus. ΠΡΠΈΡΠΈΠ°Π»Π½Π°ΡΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π½Π° kubecost Helm ΠΎΠ±Π°ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π½Π° Π³ΠΎΠ» ΠΊΠ»ΡΡΡΠ΅Ρ.
ΠΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π°ΡΠΈΠ½Π° Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Kubecost:
- Π‘ΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅, ΠΎΠΏΠΈΡΠ°Π½ Π² Π½Π° ΡΠ΅Π±ΡΠ°ΠΉΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π½Π° ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈΡΠ΅ ΠΊΡΠΌ Helm ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ°. ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΡΠ°Π²Π°, Π΅ Π΄Π° ΠΏΡΠ΅ΠΏΡΠ°ΡΠΈΡΠ΅ ΡΠ²ΠΎΡ ΠΏΠΎΡΡ ΠΈ Π΄Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π΄ΠΎ ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΡΠ½ΠΎ (ΡΡΠ΅Π· kubectl) ΠΈ/ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈΡΠ΅.
ΠΠΎΡΠΈ Π½Π΅ ΡΠΌΠ΅ ΠΎΠΏΠΈΡΠ²Π°Π»ΠΈ ΡΠΎΠ·ΠΈ ΠΌΠ΅ΡΠΎΠ΄, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ, Π½ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ Π΄ΠΎΠ±ΡΠ° ΠΎΠΏΡΠΈΡ βΠΏΡΠΎΡΡΠΎ ΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΌΠΈβ. ΠΠΊΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠΈΠ½ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΅ Π΄Π° ΠΏΠΎΠΌΠΈΡΠ»ΠΈΡΠ΅ Π·Π° Π²ΡΠΎΡΠΈΡ ΠΏΡΡ.
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ , Π½ΠΎ Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΌΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΊΠΈ ΡΠ΄ΠΎΠ±Π΅Π½ Π½Π°ΡΠΈΠ½.
ΠΠ°ΠΊΡΠΎ Π²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΌΠ΅, Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠ°ΠΌΠΈΡ kubecost, ΡΠ°Π·ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° ΡΡΠ΄ΡΡΠΆΠ° Π³ΡΠ°ΡΠΈΠΊΠΈ Grafana ΠΈ Prometheus, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅.
ΠΠ°Π»ΠΈΡΠ΅Π½ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ°ΡΠ°
values.yamlΠ·Π° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅:- ΡΠΏΠΈΡΡΠΊ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ;
- Π²Π°ΡΠ°ΡΠ° ΠΊΡΠ°ΠΉΠ½Π° ΡΠΎΡΠΊΠ° Π·Π° Prometheus (Π°ΠΊΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°ΠΊΠ°Π²Π°);
- Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ Π²Ρ ΠΎΠ΄Π½ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° cost-model ΠΈ Grafana;
- Π°Π½ΠΎΡΠ°ΡΠΈΠΈ Π·Π° ΠΏΠΎΠ΄Ρ;
- Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ.
ΠΡΠ»Π΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π² .
Π’ΡΠΉ ΠΊΠ°ΡΠΎ kubecost Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠΈ Π²Π΅ΡΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈ Π΄ΠΎΡΡΡΠΏΠ°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ basic-auth Π·Π° ΡΠ΅Π± ΠΏΠ°Π½Π΅Π»Π°.
- ΡΡΡΠ°Π½ΠΎΠ²ΡΡ ΡΠ°ΠΌΠΎ ΡΠ΄ΡΠΎΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° - ΡΠ°Π·Ρ
ΠΎΠ΄Π΅Π½ ΠΌΠΎΠ΄Π΅Π». ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Prometheus Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΈ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΡΡΠΎΡΠ²Π΅ΡΠ½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ Π°Π΄ΡΠ΅Ρ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°
prometheusEndpointΠ·Π° Π₯Π΅Π»ΠΌ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° - ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΡΡΠ²Π°ΠΉΡΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°.ΠΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ ΡΡΡΠ±Π²Π° ΡΡΡΠ½ΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Ingress Ρ Π±Π°Π·ΠΎΠ²ΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅. Π Π½Π°ΠΊΡΠ°Ρ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΠ°Π·Π΄Π΅Π» Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅
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 Ρ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ°Π±Π»Π°.
ΠΡΠ°ΠΉΠ½Π° ΡΠ΅Π½Π°, ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° Π³Π»Π°Π²Π½ΠΈΡ Π΅ΠΊΡΠ°Π½, Π²ΡΡΡΠ½ΠΎΡΡ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡΠΎΠ³Π½ΠΎΠ·Π½Π°ΡΠ° ΡΠ΅Π½Π° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π·Π° ΠΌΠ΅ΡΠ΅ΡΠ°. Π’ΠΎΠ²Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ΠΈ ΡΠ΅Π½Π°, ΠΎΡΡΠ°Π·ΡΠ²Π°ΡΠ° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° (Π½Π° ΠΌΠ΅ΡΠ΅Ρ) ΠΏΡΠΈ ΡΠ΅ΠΊΡΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈ.
Π’ΠΎΠ·ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π» Π΅ ΠΏΠΎ-ΡΠΊΠΎΡΠΎ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΈ ΡΡΡ Π½ΠΎΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅. ΠΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° Π³Π»Π΅Π΄Π°ΡΠ΅ ΠΎΠ±ΡΠΈΡΠ΅ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ Π·Π° Π°Π±ΡΡΡΠ°ΠΊΡΠ΅Π½ ΡΠ»ΠΈ Π² kubecost: ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π° ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π½Π° ΡΠ°ΠΊΡΡΡΠΈΡΠ°Π½Π΅. ΠΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅, ΡΠ°Π·Π±ΠΈΡΠΈ ΠΏΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π°, Π΅ΡΠΈΠΊΠ΅ΡΠΈ, ΠΏΠΎΠ΄ΠΎΠ²Π΅ Π·Π° 1/2/7/30/90 Π΄Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°ΠΊΡΡΠ²Π°Π½Π΅ΡΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½ΡΠΌΠ° Π΄Π° Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅.

ΠΠΎΠ²ΠΎΡΠ΅ΠΉΠΊΠΈ Π·Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈ. Π’ΡΡΠ±Π²Π° Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ ΠΈ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠ°ΡΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π·Π° Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈΡΠ΅:

ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΠΊΠ°ΡΠΈΡΠ΅ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈ Π²ΡΡΡ
Ρ ΡΡΡ
- ΡΠ΄ΠΎΠ±Π½ΠΎ, Π°ΠΊΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ°Π½Π΅.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ°ΠΌ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΊΡΠ°ΠΉΠ½Π°ΡΠ° ΡΠΎΡΠΊΠ° Π½Π° API, ΠΊΡΠΌ ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° ΡΠ°Π·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΠΌΠΎΠ΄Π΅Π», Π΄Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΎΡΡΡΡΠΏΠΊΠ°ΡΠ° Π² GCP ΠΈ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΠ΅Π½ΠΈ Π·Π° ΡΠ΅ΡΡΡΡΠΈ ΠΈ Π²Π°Π»ΡΡΠ° Π·Π° ΡΡΡ Π½ΠΎΡΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ (ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΏΡΠΈΡΠΈΠ½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π½Π΅ Π·Π°ΡΡΠ³Π° ΠΎΠ±ΡΠ°ΡΠ° ΡΠ΅Π½Π°).
Kubecost ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° (ΠΈ Π΄ΠΎΡΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ). ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΡΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΡΠ΅Π΄ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈ Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ Π²ΠΈΠΆΠ΄Π°ΡΠ΅ Π½Π΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ:

ΠΠ°ΠΆΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ - ΠΠ»ΡΡΡΠ΅ΡΠ½ΠΈ ΡΠΏΠ΅ΡΡΡΠ²Π°Π½ΠΈΡ. Π’ΠΎΠΉ ΠΈΠ·ΠΌΠ΅ΡΠ²Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° pods (ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ), Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° ΠΊΠΎΠ»ΠΊΠΎ ΠΏΠ°ΡΠΈ ΠΈ ΠΎΡ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΏΠ΅ΡΡΠΈΡΠ΅.
ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΡΡΠ²Π΅ΡΠΈΡΠ΅ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ° Π΄ΠΎΡΡΠ° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈ, Π½ΠΎ ΠΎΠΏΠΈΡΡΡ ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΠΏΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ (Kubecost ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄Π° ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΈΡΠ΅), ΡΡΠ°Π²Π½ΡΠ²Π° ΡΠ΅ Π·Π°ΡΠ²Π΅Π½Π°ΡΠ° ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ CPU, ΠΊΠ°ΠΊΡΠΎ ΠΈ CPU, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ½ΠΈ Π²ΡΠ·Π»ΠΈ (ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠ²ΠΈΠ²Π°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΡΠ·Π΅Π»Π° Π² Π΅Π΄ΠΈΠ½), Π΄ΠΈΡΠΊ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΠΈ ΠΎΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠ·ΠΈΠ½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ.
ΠΠ°ΠΊΡΠΎ ΠΏΡΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ°, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Kubecost ΠΈΠ·ΠΈΡΠΊΠ²Π°: Π»Π΅ΠΊΡΠ²Π°ΠΉΡΠ΅ Ρ ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Cluster Savings ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ·Π»ΠΈ, ΠΊΠ°ΡΠΎ ΡΠ²ΡΡΠ΄ΠΈ, ΡΠ΅ Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, Π½ΠΎ Π½Π΅ Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΈ Π½Π° Π²ΡΠ·Π»ΠΈ ΠΈ ΠΏΠ΅ΡΠ½Π° Π² ΠΏΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π²ΡΡΡ Ρ ΡΡΡ , ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ. Π ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ, Π΄ΠΎΡΠΈ Π°Π²ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ (ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ ΠΎΡ ΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°) ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° Π½Π΅ ΡΠ΅ Π²ΡΡΡΠ²Π°ΡΠ΅ ΡΡΡΠ΅ΠΌΠ³Π»Π°Π²ΠΎ ΠΊΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅, Π° Π΄Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΊΡΠΌ Π²ΡΠΏΡΠΎΡΠ° Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ.
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ kubecost Π·Π° Π΅Π΄ΠΈΠ½ ΠΌΠ΅ΡΠ΅Ρ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°ΠΊΠ»ΡΡΠΈΠΌ, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ (Π° ΡΡΡΠΎ ΠΈ Π»Π΅ΡΠ΅Π½ Π·Π° Π½Π°ΡΡΠ°Π²Π°Π½Π΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅) ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠΈ. ΠΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ° ΡΠ΅ ΠΎΠΊΠ°Π·Π°Ρ Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠ½ΠΈ: Π² Π½Π°ΡΠΈΡΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ ΡΠ΅ ΡΡΠ²ΠΏΠ°Π΄Π½Π°Ρ Π° Ρ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π° Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈΡΠ΅.
ΠΠΌΠ° ΠΈ Π½ΡΠΊΠΎΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ: ΠΈΠΌΠ° Π½Π΅ΠΊΡΠΈΡΠΈΡΠ½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΌΠ΅ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π΅ ΠΏΠΎΠΊΡΠΈΠ²Π° Π½ΡΠΆΠ΄ΠΈΡΠ΅, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Π½ΡΠΊΠΎΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΡΡΡΠ±Π²Π° Π±ΡΡΠ·ΠΎ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΡΠ΄Π΅ ΠΎΡΠΈΠ²Π°Ρ ΠΏΠ°ΡΠΈΡΠ΅ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ βΠΎΡΡΠ΅ΠΆΠ΅β, Π·Π° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΠΌΠ΅ΡΠΊΠ°ΡΠ° Π·Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Ρ 5-30% (ΡΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠΈ Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ), ΡΠΎΠ²Π° Π΅ ΡΡΠ΄Π΅ΡΠ΅Π½ Π²Π°ΡΠΈΠ°Π½Ρ .
PS
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- «»;
- «»;
- Β«".
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com
