वाढत्या खर्चाकडून बचतीकडे: Kubernetes खर्च ऑप्टिमायझेशन
आमचे AWS बिल एका तिमाहीत ३४% ने वाढले. प्रॉडक्ट रोडमॅपमध्ये कोणतेही बदल दिसून आले नाहीत. याचे कारण साधे होते: आमचे Kubernetes क्लस्टर्स पैसे वाया घालवत होते.
इंजिनिअर्स अनेकदा एखाद्या सर्व्हिसला किती CPU आणि मेमरी लागेल याचा अंदाज लावतात. सुरक्षित राहण्यासाठी ते आकडा वाढवून सांगतात. यामुळे अनावश्यक क्षमता (phantom capacity) निर्माण होते. तुम्ही अशा रिसोर्सेससाठी पैसे मोजता ज्याचा तुमच्या ॲप्लिकेशन्सनी कधीही वापर केलेला नसतो.
आम्ही हे कसे सुधारले आणि मासिक खर्चात ३४% बचत कशी केली, ते खाली दिले आहे.
मुख्य समस्या: Requests विरुद्ध Limits
Requests म्हणजे तुम्ही दिलेली हमी आहे. तुमच्या पॉडला (pod) नोडवर ठेवण्यासाठी Kubernetes या आकड्याचा वापर करते. हा आकडाच तुमचे बिल ठरवतो.
Limits म्हणजे कमाल मर्यादा (ceiling) आहे. जर एखादा पॉड CPU limit ला पोहोचला, तर त्याचा वेग मंदावतो. जर तो memory limit ला पोहोचला, तर तो बंद पडतो.
अनेक टीम्स Requests आणि Limits समान ठेवतात. याचा अर्थ असा की, तुमची सर्व्हिस वापरात नसली तरीही, तुम्ही २४/७ पीक कॅपॅसिटीसाठी पैसे मोजत असता.
बचतीसाठी आमची रणनीती
- कृती करण्यापूर्वी मोजा: प्रत्यक्ष वापर पाहण्यासाठी Prometheus आणि Grafana वापरा.
- Percentiles वापरा: ४ आठवड्यांतील p95 वापर पहा. सरासरी (averages) वापरू नका. सरासरीमुळे अचानक होणारे वाढ (spikes) लक्षात येत नाहीत.
- Requests योग्य आकारात सेट करा: p95 वापरामध्ये २०% बफर जोडून Requests सेट करा.
- CPU limits व्यवस्थापित करा: थ्रॉटलिंग (throttling) टाळण्यासाठी संवेदनशील सर्व्हिसेसवर कडक CPU limits ठेवणे टाळा.
- स्केलिंग ऑटोमेट करा: ट्रॅफिक स्पाइक्ससाठी HPA आणि वैयक्तिक पॉड्स ट्यून करण्यासाठी VPA वापरा.
निकाल
आम्ही आमची नोड संख्या ४० वरून २६ पर्यंत कमी केली. सरासरी CPU utilization १४% वरून ५२% पर्यंत वाढले. मासिक कम्प्युट खर्च $४८,२०० वरून $३१,९०० पर्यंत खाली आला. लॅटन्सीमध्ये (Latency) प्रत्यक्षात ३५% सुधारणा झाली.
ऑप्टिमायझेशन हा एकदाच करायचा प्रकल्प नाही. ती एक सवय आहे. जर तुम्ही केवळ अंदाजावर आधारित रिसोर्स रिक्वेस्ट लिहित असाल, तर तुम्ही पैसे वाया घालवत आहात.
तुमच्या क्लस्टरसाठी चेकलिस्ट:
• विनंती केलेले (requested) विरुद्ध प्रत्यक्ष वापर दर्शवणारे डॅशबोर्ड तयार करा. • ४ आठवड्यांच्या डेटावर आधारित Requests सेट करा. • VPA ला बदल करण्यास सांगण्यापूर्वी तो 'recommendation mode' मध्ये चालवून पहा. • प्रत्येक तिमाहीत रिसोर्स स्पेसिफिकेशन तपासा. • इंजिनिअरिंग टीम्सना त्यांच्या स्वतःच्या खर्चाची माहिती (visibility) द्या.
Source: https://dev.to/samarth_05/from-spikes-to-savings-practical-k8s-cost-optimization-for-2026-75k
Optional learning community: https://t.me/GyaanSetuAi
