αž–αž·αž“αž·αžαŸ’αž™αž‘αžΎαž„αžœαž·αž‰ Kubecost αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αž”αŸ’αžšαžΆαž€αŸ‹αž“αŸ…αž›αžΎ Kubernetes αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž–αž€

αž–αž·αž“αž·αžαŸ’αž™αž‘αžΎαž„αžœαž·αž‰ Kubecost αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αž”αŸ’αžšαžΆαž€αŸ‹αž“αŸ…αž›αžΎ Kubernetes αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž–αž€

αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž“αŸαŸ‡ αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αž‘αžΎαž„αž€αŸ†αž–αž»αž„αž•αŸ’αž‘αŸαžšαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž•αŸ’αž‘αžΆαž›αŸ‹αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž‘αŸ…αž€αžΆαž“αŸ‹αž–αž–αž€αŸ” αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž“αŸαŸ‡αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž–αž“αŸ’αž™αž›αŸ‹αŸ– αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž–αŸ’αžšαž½αž™αž”αžΆαžšαž˜αŸ’αž—αž’αŸ†αž–αžΈαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž‘αŸ αž…αž„αŸ’αž€αŸ„αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžαžΆαž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αŸ—αž‡αžΆαž…αŸ’αžšαžΎαž“... αž αžΎαž™αžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αž αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ (αžŠαžΌαž…αž‡αžΆ Kubernetes) αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžαžΆαž˜αž–αž›αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŠαŸ„αž™αžŸαžΆαž˜αž‰αŸ’αž‰αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž”αž“αŸ’αž‘αž»αž€αŸ” .

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž αž·αžšαž‰αŸ’αž‰αžœαžαŸ’αžαž»αžαŸ‚αž„αžαŸ‚αžŸαŸ†αžαžΆαž“αŸ‹αŸ” αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž‡αž½αž™αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αžαžœαž·αž€αžΆαž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž–αž–αž€αž‡αžΆαž˜αž½αž™ Kubernetes αŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŽαŸ‚αž“αžΆαŸ†

Kubecost αž‚αžΊαž‡αžΆαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αžŠαŸ†αž”αžΌαž„αžšαž”αžŸαŸ‹αžšαžŠαŸ’αž‹αž€αžΆαž›αžΈαž αŸ’αžœαŸαžšαž‰αŸ‰αžΆαž–αžΈ Google αžŠαŸ„αž™αž”αž„αŸ’αž€αžΎαžαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžŽαž“αžΆαžαŸ’αž›αŸƒαžŠαžΎαž˜αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž–αž–αž€ (αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜ Kubernetes + αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€) αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž§αž”αžŸαž‚αŸ’αž‚αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž…αž„αŸ’αž€αŸ„αž˜ αž“αž·αž„αž€αžΆαžšαž•αŸ’αž‰αžΎαž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αžŸαž˜αžŸαŸ’αžšαž”αž‘αŸ… Slack αŸ”

αž™αžΎαž„αž˜αžΆαž“αž’αžαž·αžαž·αž‡αž“αž‡αžΆαž˜αž½αž™ Kubernetes αž‘αžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„ AWS αž“αž·αž„ GCP clouds αžŠαŸ‚αž›αž’αŸ’αž›αžΆαž”αŸ‹αžŸαŸ’αž‚αžΆαž›αŸ‹ αž αžΎαž™αž€αžΆαž“αŸ‹αžαŸ‚αž€αž˜αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž αž‚αž˜αž“αŸαž›αžΈαž“αž»αž… Azure - αž‡αžΆαž‘αžΌαž‘αŸ…αž“αŸ…αž›αžΎαžœαŸαž‘αž·αž€αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™ Kubecost αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αž½αž€αž‚αŸαž˜αž½αž™αž…αŸ†αž“αž½αž“ αž™αžΎαž„αž‚αžŽαž“αžΆαžαŸ’αž›αŸƒαžŠαžΎαž˜αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αžαŸ’αž›αž½αž“αž™αžΎαž„ (αžŠαŸ„αž™αž”αŸ’αžšαžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžŸαŸ’αžšαžŠαŸ€αž„αž“αžΉαž„αž’αŸ’αžœαžΈαžŠαŸ‚αž› Kubecost αž”αŸ’αžšαžΎ) αž αžΎαž™αž€αŸαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžαž˜αŸ’αž›αŸƒαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž–αž½αž€αž‚αŸαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžœαžΆαž‡αžΆαž‘αžΌαž‡αžΈαžαž›αžŠαŸ‚αž›αž™αžΎαž„αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž›αžΎαž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αž€αžΆαžšαž„αžΆαžšαž”αŸ‚αž”αž“αŸαŸ‡αŸ”

αž€αžΌαžŠαž”αŸ’αžšαž—αž–αž“αŸƒαž˜αŸ‰αžΌαžŒαž»αž› Kubecost αž…αž˜αŸ’αž”αž„αž‚αžΊαž”αžΎαž€αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž“αŸƒαž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  (Apache License 2.0) αŸ” αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αžŠαŸ„αž™αžŸαŸαžšαžΈ αž αžΎαž™αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŠαŸ‚αž›αž˜αžΆαž“αž‚αž½αžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αž˜αŸ’αžšαŸ„αž„αžαžΌαž…αŸ—αŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž‚αžΊαž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜: αž•αž›αž·αžαž•αž›αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“ αž€αžΆαžšαž‡αžΆαžœαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ‹αžŠαŸ‚αž›αž”αž„αŸ’αž€αž”αŸ‹αž“αŸαž™αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž•αŸ’αž“αŸ‚αž€αž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜αž•αž„αžŠαŸ‚αžšαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž•αŸ’αžαž›αŸ‹αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαžŠαŸ„αž™αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αž„αŸ’αž€αŸ„αž˜αžαžΌαž…αŸ— (αž…αž„αŸ’αž€αŸ„αž˜ 1 αž˜αžΆαž“ 10 αžαŸ’αž“αžΆαŸ†αž„ - αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αžŸαžšαžŸαŸαžšαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸαŸ‡αž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αžŠαž›αŸ‹ 20 αžαŸ’αž“αžΆαŸ†αž„) αž¬αžšαž™αŸˆαž–αŸαž›αžŸαžΆαž€αž›αŸ’αž”αž„αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž˜αžαŸ’αžαž—αžΆαž–αž–αŸαž‰αž›αŸαž‰αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ 1 αžαŸ‚αŸ”

αžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž•αŸ’αž“αŸ‚αž€αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒ Kubecost αž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž˜αŸ‰αžΌαžŠαŸ‚αž›αžαŸ’αž›αŸƒαžŠαžΎαž˜αž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Go αŸ” αžαžΆαžšαžΆαž„ Helm αžŠαŸ‚αž›αž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž˜αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ αž’αŸ’αž“αž€αžœαž·αž—αžΆαž‚αžαŸ’αž›αŸƒαžŠαžΎαž˜ αž αžΎαž™αž“αŸ…αžŸαŸ’αž“αžΌαž›αžšαž”αžŸαŸ‹αžœαžΆαž‚αžΊαž€αžΆαžšαž‡αž½αž”αž”αŸ’αžšαž‡αž»αŸ†αž‚αŸ’αž“αžΆαž–αžΈαž‚αŸ†αžšαžΌαžαž˜αŸ’αž›αŸƒαž‡αžΆαž˜αž½αž™ Prometheus, Grafana αž“αž·αž„αž•αŸ’αž‘αžΆαŸ†αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž“αž·αž™αžΆαž™αž‡αžΆαž‘αžΌαž‘αŸ… αž‚αŸ†αžšαžΌαžαž˜αŸ’αž›αŸƒαž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžŠαžΆαž‰αž•αŸ’αž‘αžΆαž›αŸ‹αžšαž”αžŸαŸ‹αžœαžΆ αžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰αž€αŸ’αžšαžΆαž αŸ’αžœ αž“αž·αž„αžŸαŸ’αžαž·αžαž·αž›αž˜αŸ’αž’αž·αžαž’αŸ†αž–αžΈαž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αžαžΆαžšαžΆαž„ αž€αŸαžŠαžΌαž…αž‡αžΆαž–αŸαžαŸŒαž˜αžΆαž“αž‡αŸ†αž“αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αŸ” αž•αŸ’αž‘αžΆαŸ†αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ Grafana αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŠαŸ†αž”αžΌαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ Kubecost αž αžΎαž™αž˜αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž‚αŸ†αžšαžΌαžαž˜αŸ’αž›αŸƒ αžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αž–αž½αž€αžœαžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŸαŸ’αžαž·αžαž·αž’αž˜αŸ’αž˜αžαžΆαž›αžΎαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ CPU/memory/network/disk space αž“αŸ…αž€αŸ’αž“αž»αž„ cluster αž“αž·αž„αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžšαž”αžŸαŸ‹αžœαžΆ .

តើ Kubecost αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

  • αž‚αŸ†αžšαžΌαžαž˜αŸ’αž›αŸƒαž‘αž‘αž½αž›αž”αžΆαž“αžαž˜αŸ’αž›αŸƒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαžΆαž˜αžšαž™αŸˆ API αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž–αž–αž€αŸ”
  • αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αžαž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž”αŸ’αžšαž—αŸαž‘αžŠαŸ‚αž€αž“αŸƒαžαŸ’αž“αžΆαŸ†αž„αž“αž·αž„αžαŸ†αž”αž“αŸ‹αžαž˜αŸ’αž›αŸƒαž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž“αžΆαŸ†αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžŽαž“αžΆαŸ”
  • αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžαž˜αŸ’αž›αŸƒαž“αŸƒαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αž“αžΆαŸ†αž„ αžŸαŸ’αž›αžΉαž€αž“αžΈαž˜αž½αž™αŸ—αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž€αŸ’αž“αž»αž„αž˜αž½αž™αž˜αŸ‰αŸ„αž„αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαŸŠαžΈαž—αžΈαž™αžΌ αž€αŸ’αž“αž»αž„αž˜αž½αž™αž‡αžΈαž αŸ’αž‚αžΆαž”αŸƒαž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž“αž·αž„αž€αŸ’αž“αž»αž„αž˜αž½αž™αž˜αŸ‰αŸ„αž„αž€αŸ’αž“αž»αž„αž˜αž½αž™αž‡αžΈαž αŸ’αž‚αžΆαž”αŸƒαž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€ - αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αžŠαŸ‚αž›αžœαžΆαž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž¬αžαŸ’αž“αžΆαž€αŸ‹αž•αŸ’αž‘αž»αž€αŸ”
  • αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžαž˜αŸ’αž›αŸƒαž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš pods αž”αž»αž‚αŸ’αž‚αž› αž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžŽαž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ namespaces, services, deployments, StatefulSetsαŸ”
  • αžŸαŸ’αžαž·αžαž·αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžŽαž“αžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αžŠαŸ„αž™ kube-state-metrics αž“αž·αž„ node-exporter αŸ”

αžœαžΆαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž–αž·αž…αžΆαžšαžŽαžΆαžαžΆ Kubecost αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αžšαžΆαž”αŸ‹αžαŸ‚αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”. αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαžΆαž„αž€αŸ’αžšαŸ… αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ GitLab αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€ S3 αž“αž·αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜ (αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž–αž–αž€αžŠαžΌαž…αž‚αŸ’αž“αžΆ) αž˜αž·αž“αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžœαžΆαž”αžΆαž“αž‘αŸαŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ GCP αž“αž·αž„ AWS αž’αŸ’αž“αž€αž’αžΆαž…αž”αž“αŸ’αžαŸ‚αž˜αžŸαŸ„αž“αŸƒαž‚αžŽαž“αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž“αž·αž„αž‚αžŽαž“αžΆαž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž½αž˜αž‚αŸ’αž“αžΆαŸ”

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹

Kubecost αž‘αžΆαž˜αž‘αžΆαžšαŸ–

  • Kubernetes αž€αŸ†αžŽαŸ‚ 1.8 αž“αž·αž„αžαŸ’αž–αžŸαŸ‹αž‡αžΆαž„αž“αŸαŸ‡;
  • kube-state-metrics;
  • Prometheus;
  • node-exporter αŸ”

αžœαžΆαž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžšαž”αžŸαŸ‹αž™αžΎαž„αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž–αŸαž‰αž‡αžΆαž˜αž»αž“αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž”αžΆαž“αž”αŸ’αžšαŸ‚αž€αŸ’αž›αžΆαž™αžαžΆαžœαžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹ Prometheus αŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžαžΆαžšαžΆαž„ kubecost Helm αž•αŸ’αž›αžΌαžœαž€αžΆαžšαž˜αžΆαž“αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž…αž„αŸ’αž€αŸ„αž˜αž‘αž‘αŸαŸ”

αž˜αžΆαž“αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ KubecostαŸ–

  1. αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŠαŸ†αž‘αžΎαž„αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† αž“αŸ…αž›αžΎαž‚αŸαž αž‘αŸ†αž–αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž”αž“αŸ’αžαŸ‚αž˜αžƒαŸ’αž›αžΆαŸ†αž„αž’αŸ’αž“αž€αžœαž·αž—αžΆαž‚αžαž˜αŸ’αž›αŸƒαž‘αŸ… Helm αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžŠαŸ†αž‘αžΎαž„αžαžΆαžšαžΆαž„. αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αŸ…αžŸαŸαžŸαžŸαž›αŸ‹αž‚αžΊαžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž…αŸ’αžšαž€αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž“αž·αž„αž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αŸ…αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αžŠαŸ„αž™αžŠαŸƒ (αžαžΆαž˜αžšαž™αŸˆ kubectl) αž“αž·αž„/αž¬αžŠαŸ„αž™αž”αŸ’αžšαžΎαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžšαž‚αŸ†αžšαžΌαžαž˜αŸ’αž›αŸƒαŸ”

    αž™αžΎαž„αž˜αž·αž“αž‘αžΆαž“αŸ‹αž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžœαž·αž’αžΈαž“αŸαŸ‡αž‘αŸ αžŠαŸ„αž™αžŸαžΆαžšαž™αžΎαž„αž˜αž·αž“αž”αŸ’αžšαžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αžšαž”αžŸαŸ‹αž—αžΆαž‚αžΈαž‘αžΈαž”αžΈ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸαž›αŸ’αž’ "αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžŸαžΆαž€αž›αŸ’αž”αž„αžœαžΆαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„"αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž˜αž½αž™αž…αŸ†αž“αž½αž“αžšαž½αž…αž αžΎαž™ αž¬αž’αŸ’αž“αž€αž…αž„αŸ‹αž”αžΆαž“αž€αžΆαžšαž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜ αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž–αž·αž…αžΆαžšαžŽαžΆαž›αžΎαž•αŸ’αž›αžΌαžœαž‘αžΈαž–αžΈαžšαŸ”

  2. αž”αŸ’αžšαžΎαž‡αžΆαžŸαŸ†αžαžΆαž“αŸ‹ αžαžΆαžšαžΆαž„αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αžŠαŸ†αž‘αžΎαž„αžœαžΆαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž·αž’αžΈαž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŽαžΆαž˜αž½αž™αŸ”

    αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžšαž½αž…αž˜αž€αž αžΎαž™ αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎ kubecost αžαŸ’αž›αž½αž“αžœαžΆ αžαžΆαžšαžΆαž„αž“αŸαŸ‡αž˜αžΆαž“αž‚αŸ†αž“αžΌαžŸαžαžΆαž„ Grafana αž“αž·αž„ Prometheus αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžŠαžΌαžšαžαžΆαž˜αž”αŸ†αžŽαž„αžαžΆαž˜αž€αžΆαžšαž…αž„αŸ‹αž”αžΆαž“αŸ”

    αž˜αžΆαž“αž“αŸ…αž›αžΎαžαžΆαžšαžΆαž„ values.yaml αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž’αŸ’αž“αž€β€‹αžœαž·αž—αžΆαž‚β€‹αžαž˜αŸ’αž›αŸƒβ€‹αž’αž“αž»αž‰αŸ’αž‰αžΆαžβ€‹αž±αŸ’αž™β€‹αž’αŸ’αž“αž€β€‹αž€αŸ†αžŽαžαŸ‹β€‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’β€‹:

    • αž”αž‰αŸ’αž‡αžΈαž“αŸƒαžŸαž˜αžΆαžŸαž’αžΆαžαž»αžœαž·αž—αžΆαž‚αžαŸ’αž›αŸƒαžŠαžΎαž˜αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”
    • αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Prometheus (αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž˜αž½αž™αžšαž½αž…αž αžΎαž™);
    • domains αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ ingress αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ cost-model αž“αž·αž„ Grafana;
    • αž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ pods;
    • αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž’αž…αž·αž“αŸ’αžαŸ’αžšαŸƒαž™αŸ αž“αž·αž„αž‘αŸ†αž αŸ†αžšαž”αžŸαŸ‹αžœαžΆαŸ”

    αž”αž‰αŸ’αž‡αžΈαž–αŸαž‰αž›αŸαž‰αž“αŸƒαž‡αž˜αŸ’αžšαžΎαžŸαž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž˜αžΆαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž‚αžΊαž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ αž―αž€αžŸαžΆαžš.

    αžŠαŸ„αž™αžŸαžΆαžš kubecost αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αžœαžΆαž˜αž·αž“αž’αžΆαž…αžŠαžΆαž€αŸ‹αž€αž˜αŸ’αžšαž·αžαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž”αžΆαž“αž‘αŸ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž—αŸ’αž›αžΆαž˜αŸ—αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž“αŸ’αž‘αŸ‡αž”αžŽαŸ’αžαžΆαž‰αŸ”

  3. αžŠαŸ†αž‘αžΎαž„ αž˜αžΆαž“αžαŸ‚αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ’αž“αžΌαž›αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” - αž˜αŸ‰αžΌαžŠαŸ‚αž›αžαŸ’αž›αŸƒαžŠαžΎαž˜αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαŸ‚αžŠαŸ†αž‘αžΎαž„ Prometheus αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜ αž αžΎαž™αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αŸƒαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸαžšαŸ” prometheusEndpoint αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Helm αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡ - αž’αž“αž»αžœαžαŸ’αž αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ YAML αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αŸ”

    αž‡αžΆαžαŸ’αž˜αžΈαž˜αŸ’αžαž„αž‘αŸ€αž αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜ Ingress αžŠαŸ„αž™αžŠαŸƒαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“-auth αŸ” αž‡αžΆαž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αž•αŸ’αž“αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž˜αŸ‰αŸ‚αžαŸ’αžšαž‚αŸ†αžšαžΌαžαž˜αŸ’αž›αŸƒαž…αžΌαž› 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 αžαŸ’αž„αŸƒ αžŠαŸ‚αž›αžœαž·αž€αŸ’αž€αž™αž”αžαŸ’αžšαž“αžΉαž„αž˜αž·αž“αž”αž„αŸ’αž αžΆαž‰αž’αŸ’αž“αž€αž‘αŸαŸ”

αž–αž·αž“αž·αžαŸ’αž™αž‘αžΎαž„αžœαž·αž‰ Kubecost αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αž”αŸ’αžšαžΆαž€αŸ‹αž“αŸ…αž›αžΎ Kubernetes αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž–αž€

αž“αž·αž™αžΆαž™β€‹αž’αŸ†αž–αžΈ αžŸαŸ’αž›αžΆαž€. αž’αŸ’αž“αž€αž‚αž½αžšαžαŸ‚αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž—αŸ’αž›αžΆαž˜αŸ— αž αžΎαž™αž€αŸ†αžŽαžαŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αžŸαŸ’αž›αžΆαž€αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‡αžΆαž”αŸ’αžšαž—αŸαž‘αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž‡αžΆαž€αŸ’αžšαž»αž˜αŸ–

αž–αž·αž“αž·αžαŸ’αž™αž‘αžΎαž„αžœαž·αž‰ Kubecost αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αž”αŸ’αžšαžΆαž€αŸ‹αž“αŸ…αž›αžΎ Kubernetes αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž–αž€

αž’αŸ’αž“αž€αž’αžΆαž…αž–αŸ’αž™αž½αžšαžŸαŸ’αž›αžΆαž€αžŽαžΆαž˜αž½αž™αž“αŸ…αž›αžΎαž–αž½αž€αžœαžΆ - αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžšαž½αž…αž αžΎαž™αŸ”

αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž•αž„αžŠαŸ‚αžš αž’αŸ’αž“αž€αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ API αžŠαŸ‚αž›αž˜αŸ‰αžΌαžŠαŸ‚αž›αžαž˜αŸ’αž›αŸƒαžαž—αŸ’αž‡αžΆαž”αŸ‹ αž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž‘αŸ†αž αŸ†αž”αž‰αŸ’αž…αž»αŸ‡αžαž˜αŸ’αž›αŸƒαž“αŸ…αž€αŸ’αž“αž»αž„ GCP αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αž’αžΆαž“ αž“αž·αž„αžšαžΌαž”αž·αž™αž”αŸαžŽαŸ’αžŽαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαžΆαžŸαŸ‹αžœαŸ‚αž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž˜αž·αž“αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αžŸαžšαž»αž”)αŸ”

Kubecost αž’αžΆαž…αž”αž„αŸ’αž αžΆαž‰αž•αŸ’αžŸαŸαž„αŸ— αž”αž‰αŸ’αž αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜ (αž“αž·αž„αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž‚αŸ’αžšαŸ„αŸ‡αžαŸ’αž“αžΆαž€αŸ‹) αŸ” αž‡αžΆαž’αž€αž»αžŸαž› αž‡αž˜αŸ’αžšαžΎαžŸαž˜αž·αž“αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžΆαž“αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž”αžšαž·αžŸαŸ’αžαžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αž½αž€αžœαžΆ αž’αŸ’αž“αž€αž“αžΉαž„αžƒαžΎαž‰αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž“αŸαŸ‡αž‡αžΆαž“αž·αž…αŸ’αž…αŸ–

αž–αž·αž“αž·αžαŸ’αž™αž‘αžΎαž„αžœαž·αž‰ Kubecost αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αž”αŸ’αžšαžΆαž€αŸ‹αž“αŸ…αž›αžΎ Kubernetes αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž–αž€

αž§αž”αž€αžšαžŽαŸαžŸαŸ†αžαžΆαž“αŸ‹αž˜αž½αž™ - αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αž‡αžΆαž€αŸ’αžšαž»αž˜. αžœαžΆαžœαžΆαžŸαŸ‹αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžšαž”αžŸαŸ‹αž•αž (αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž“αž’αžΆαž“ αžšαž½αž˜αž‘αžΆαŸ†αž„αž”αžŽαŸ’αžαžΆαž‰) αž αžΎαž™αž€αŸαž‚αžŽαž“αžΆαžαžΆαžαžΎαž›αž»αž™αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“ αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αžŸαž“αŸ’αžŸαŸ†αž”αžΆαž“αž•αž„αžŠαŸ‚αžšαŸ”

αžœαžΆαž’αžΆαž…αž αžΆαž€αŸ‹αž”αžΈαžŠαžΌαž…αž‡αžΆαž‚αž“αŸ’αž›αžΉαŸ‡αž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‚αžΊαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž”αž„αŸ’αž αžΆαž‰αžαžΆαž“αŸ…αžαŸ‚αž˜αžΆαž“αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž˜αžΎαž›αŸ” αž‡αžΆαž–αž·αžŸαŸαžŸ αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž”αžŽαŸ’αžαžΆαž‰αžšαž”αžŸαŸ‹αž•αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ (Kubecost αžŸαŸ’αž“αžΎαž±αŸ’αž™αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž…αŸ†αž–αŸ„αŸ‡αž’αžŸαž€αž˜αŸ’αž˜) αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ† αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαŸŠαžΈαž—αžΈαž™αžΌαž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαŸ€αž”αž’αŸ€αž” αž€αŸαžŠαžΌαž…αž‡αžΆαžŸαŸŠαžΈαž—αžΈαž™αžΌαžŠαŸ‚αž›αž”αŸ’αžšαžΎαžŠαŸ„αž™αžαŸ’αž“αžΆαŸ†αž„αž…αž„αŸ’αž€αŸ„αž˜ (αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž”αž„αŸ’αžšαž½αž˜αžαŸ’αž“αžΆαŸ†αž„αž‡αžΆαž…αŸ’αžšαžΎαž“αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αž½αž™) ថអស αž•αŸ’αž‘αž»αž€ αž“αž·αž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‡αžΆαž…αŸ’αžšαžΎαž“αž‘αŸ€αžαŸ”

αžŠαžΌαž…αž‘αŸ…αž“αžΉαž„αž”αž‰αŸ’αž αžΆαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŽαžΆαž˜αž½αž™αžŠαŸ‚αžš αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž’αž“αž’αžΆαž“αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™ Kubecost αž‘αžΆαž˜αž‘αžΆαžšαŸ– αž–αŸ’αž™αžΆαž”αžΆαž›αžŠαŸ„αž™αž”αŸ’αžšαž»αž„αž”αŸ’αžšαž™αŸαžαŸ’αž“. αž§αž‘αžΆαž αžšαžŽαŸ Cluster Savings αžŸαŸ’αž“αžΎαž±αŸ’αž™αž›αž»αž”αžαŸ’αž“αžΆαŸ†αž„ αžŠαŸ„αž™αž’αŸ‡αž’αžΆαž„αžαžΆαžœαžΆαž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž‚αž·αžαž–αžΈαžœαžαŸ’αžαž˜αžΆαž“αžšαž”αžŸαŸ‹αž§αž”αž€αžšαžŽαŸαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžαŸ’αž“αžΆαŸ†αž„ αž“αž·αž„αžŸαŸ’αž“αžΆαž˜αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž›αžΎαž–αž½αž€αžœαžΆαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‘αŸαŸ” αž αžΎαž™αž‡αžΆαž‘αžΌαž‘αŸ…αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž“αŸƒαž•αž›αž·αžαž•αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž½αž€αž‚αŸαŸ” αž’αžαŸ’αžαž”αž‘αžαŸ’αž˜αžΈαŸ— (αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡ αžœαžΆαž’αžΆαž…αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž›αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡) αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž˜αž·αž“αž±αŸ’αž™αž”αŸ’αžšαž‰αžΆαž”αŸ‹αž”αŸ’αžšαž‰αžΆαž›αŸ‹αž‘αŸ…αžšαž€αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαž˜αŸ’αž›αŸƒ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αžšαžΌαžœαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžŠαŸ„αž™αž‚αž·αžαž‚αžΌαžšαŸ”

αž›αž‘αŸ’αž’αž•αž›

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ’αžšαžΎ kubecost αž’αžŸαŸ‹αžšαž™αŸˆαž–αŸαž›αž˜αž½αž™αžαŸ‚αž›αžΎαž‚αž˜αŸ’αžšαŸ„αž„αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž™αžΎαž„αž’αžΆαž…αžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“αžαžΆαž“αŸαŸ‡αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž˜αž½αž™ (αž αžΎαž™αž€αŸαž„αžΆαž™αžŸαŸ’αžšαž½αž›αžšαŸ€αž“ αž“αž·αž„αžŠαŸ†αž‘αžΎαž„αž•αž„αžŠαŸ‚αžš) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαž·αž—αžΆαž‚ αž“αž·αž„αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž–αž–αž€αžŠαŸ‚αž›αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αž„αŸ’αž€αŸ„αž˜ Kubernetes αŸ” αž€αžΆαžšαž‚αžŽαž“αžΆαž”αžΆαž“αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαžŽαžΆαžŸαŸ‹αŸ– αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαžšαž”αžŸαŸ‹αž™αžΎαž„ αž–αž½αž€αž‚αŸαž”αžΆαž“αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž“αžΉαž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž–αž·αžαž‡αžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ”

αžœαžΆαž€αŸαž˜αžΆαž“αž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αž˜αž½αž™αž…αŸ†αž“αž½αž“αž•αž„αžŠαŸ‚αžšαŸ– αž˜αžΆαž“αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž˜αž·αž“αžŸαŸ†αžαžΆαž“αŸ‹ αž αžΎαž™αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžαŸ’αž›αŸ‡αž˜αž»αžαž„αžΆαžšαž˜αž·αž“αž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž…αŸ†αž–αŸ„αŸ‡αž‚αž˜αŸ’αžšαŸ„αž„αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž™αž›αŸ‹αž±αŸ’αž™αž”αžΆαž“αž†αžΆαž”αŸ‹αžαžΆαžαžΎαž”αŸ’αžšαžΆαž€αŸ‹αž“αžΉαž„αž‘αŸ…αžŽαžΆ αž αžΎαž™αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“ "αž€αžΆαžαŸ‹" αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αžœαž·αž€αŸ’αž€αž™αž”αžαŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž–αž–αž€αžŠαŸ„αž™ 5-30% (αž“αŸαŸ‡αž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„) αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸαž›αŸ’αž’αŸ” .

PS

αžŸαžΌαž˜αž’αžΆαž“αž•αž„αžŠαŸ‚αžšαž“αŸ…αž›αžΎαž”αŸ’αž›αž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ–

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹