ಏರಿಳಿತಗಳಿಂದ ಉಳಿತಾಯದವರೆಗೆ: Kubernetes ವೆಚ್ಚದ ಸುಧಾರಣೆ
ಒಂದು ತ್ರೈಮಾಸಿಕದಲ್ಲಿ ನಮ್ಮ AWS ಬಿಲ್ 34% ಏರಿತು. ಉತ್ಪನ್ನದ ರೋಡ್ಮ್ಯಾಪ್ನಲ್ಲಿ ಯಾವುದೇ ಬದಲಾವಣೆಗಳಿರಲಿಲ್ಲ. ಕಾರಣ ಸರಳವಾಗಿತ್ತು: ನಮ್ಮ Kubernetes ಕ್ಲಸ್ಟರ್ಗಳು ಹಣವನ್ನು ವ್ಯರ್ಥ ಮಾಡುತ್ತಿದ್ದವು.
ಇಂಜಿನಿಯರ್ಗಳು ಒಂದು ಸರ್ವಿಸ್ಗೆ ಎಷ್ಟು CPU ಮತ್ತು ಮೆಮೊರಿ ಬೇಕಾಗುತ್ತದೆ ಎಂದು ಹೆಚ್ಚಾಗಿ ಊಹಿಸುತ್ತಾರೆ. ಸುರಕ್ಷಿತವಾಗಿರಲು ಅವರು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯನ್ನು ನೀಡುತ್ತಾರೆ. ಇದು ಕಾಲ್ಪನಿಕ ಸಾಮರ್ಥ್ಯವನ್ನು (phantom capacity) ಸೃಷ್ಟಿಸುತ್ತದೆ. ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಎಂದಿಗೂ ಬಳಸದ ಸಂಪನ್ಮೂಲಗಳಿಗಾಗಿ ನೀವು ಹಣ ಪಾವತಿಸುತ್ತೀರಿ.
ನಾವು ಇದನ್ನು ಹೇಗೆ ಸರಿಪಡಿಸಿದೆವು ಮತ್ತು ಮಾಸಿಕ ವೆಚ್ಚದಲ್ಲಿ 34% ಉಳಿತಾಯ ಮಾಡಿದೆವು ಎಂಬುದು ಇಲ್ಲಿದೆ.
ಮೂಲ ಸಮಸ್ಯೆ: Requests vs Limits
Requests ಎಂದರೆ ನೀವು ಖಾತರಿಪಡಿಸುವ ಮೌಲ್ಯ. ನಿಮ್ಮ ಪಾಡ್ ಅನ್ನು (pod) ನೋಡ್ನಲ್ಲಿ (node) ಇರಿಸಲು Kubernetes ಈ ಸಂಖ್ಯೆಯನ್ನು ಬಳಸುತ್ತದೆ. ಈ ಸಂಖ್ಯೆಯೇ ನಿಮ್ಮ ಬಿಲ್ ಅನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ.
Limits ಎಂದರೆ ಗರಿಷ್ಠ ಮಿತಿ. ಒಂದು ಪಾಡ್ CPU ಮಿತಿಯನ್ನು ತಲುಪಿದರೆ, ಅದು ನಿಧಾನವಾಗುತ್ತದೆ. ಅದು ಮೆಮೊರಿ ಮಿತಿಯನ್ನು ತಲುಪಿದರೆ, ಅದು ಸ್ಥಗಿತಗೊಳ್ಳುತ್ತದೆ.
ಅನೇಕ ತಂಡಗಳು requests ಮತ್ತು limits ಅನ್ನು ಸಮನಾಗಿ ಇಡುತ್ತವೆ. ಇದರರ್ಥ ನಿಮ್ಮ ಸೇವೆ ಬಳಕೆಯಿಲ್ಲದಿದ್ದರೂ (idle), ನೀವು 24/7 ಪೀಕ್ ಸಾಮರ್ಥ್ಯಕ್ಕಾಗಿ ಹಣ ಪಾವತಿಸುತ್ತೀರಿ.
ಉಳಿತಾಯಕ್ಕಾಗಿ ನಮ್ಮ ತಂತ್ರಗಳು
- ಕ್ರಮ ಕೈಗೊಳ್ಳುವ ಮೊದಲು ಅಳೆಯಿರಿ: ನೈಜ ಬಳಕೆಯನ್ನು ನೋಡಲು Prometheus ಮತ್ತು Grafana ಬಳಸಿ.
- ಪರ್ಸೆಂಟೈಲ್ಗಳನ್ನು (percentiles) ಬಳಸಿ: 4 ವಾರಗಳ p95 ಬಳಕೆಯನ್ನು ಗಮನಿಸಿ. ಸರಾಸರಿಗಳನ್ನು (averages) ಬಳಸಬೇಡಿ. ಸರಾಸರಿಗಳು ಏರಿಳಿತಗಳನ್ನು ಮರೆಮಾಚುತ್ತವೆ.
- Requests ಅನ್ನು ಸರಿಯಾದ ಗಾತ್ರದಲ್ಲಿ ಇರಿಸಿ: p95 ಬಳಕೆ ಮತ್ತು 20% ಬಫರ್ ಅನ್ನು ಸೇರಿಸಿ requests ಅನ್ನು ನಿಗದಿಪಡಿಸಿ.
- CPU limits ಅನ್ನು ನಿರ್ವಹಿಸಿ: Throttling ತಡೆಯಲು ಸೂಕ್ಷ್ಮ ಸೇವೆಗಳ ಮೇಲೆ ಕಟ್ಟುನಿಟ್ಟಾದ CPU ಮಿತಿಗಳನ್ನು ಹಾಕಬೇಡಿ.
- Scaling ಅನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಿ: ಟ್ರಾಫಿಕ್ ಏರಿಳಿತಗಳಿಗಾಗಿ HPA ಮತ್ತು ವೈಯಕ್ತಿಕ ಪಾಡ್ಗಳನ್ನು ಟ್ಯೂನ್ ಮಾಡಲು VPA ಬಳಸಿ.
ಫಲಿತಾಂಶಗಳು
ನಾವು ನಮ್ಮ ನೋಡ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು 40 ರಿಂದ 26 ಕ್ಕೆ ಇಳಿಸಿದೆವು. ಸರಾಸರಿ CPU ಬಳಕೆ 14% ರಿಂದ 52% ಕ್ಕೆ ಏರಿತು. ಮಾಸಿಕ ಕಂಪ್ಯೂಟ್ ವೆಚ್ಚವು $48,200 ರಿಂದ $31,900 ಕ್ಕೆ ಇಳಿಕೆಯಾಯಿತು. Latency ವಾಸ್ತವವಾಗಿ 35% ಸುಧಾರಿಸಿತು.
ಸುಧಾರಣೆ (Optimization) ಎಂಬುದು ಒಂದು ಬಾರಿಯ ಯೋಜನೆಯಲ್ಲ. ಇದು ಒಂದು ಅಭ್ಯಾಸ. ನೀವು ಕೇವಲ ಊಹೆಯ ಆಧಾರದ ಮೇಲೆ ಸಂಪನ್ಮೂಲದ ವಿನಂತಿಯನ್ನು (resource request) ಬರೆದರೆ, ನೀವು ಹಣವನ್ನು ವ್ಯರ್ಥ ಮಾಡುತ್ತಿದ್ದೀರಿ ಎಂದರ್ಥ.
ನಿಮ್ಮ ಕ್ಲಸ್ಟರ್ಗಾಗಿ ಪರಿಶೀಲನಾ ಪಟ್ಟಿ (Checklist):
• ವಿನಂತಿಸಿದ ಮತ್ತು ನೈಜ ಬಳಕೆಯನ್ನು ತೋರಿಸುವ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ನಿರ್ಮಿಸಿ. • 4 ವಾರಗಳ ಡೇಟಾ ಆಧಾರದ ಮೇಲೆ requests ಅನ್ನು ನಿಗದಿಪಡಿಸಿ. • ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುವ ಮೊದಲು VPA ಅನ್ನು recommendation mode ನಲ್ಲಿ ಚಲಾಯಿಸಿ. • ಪ್ರತಿ ತ್ರೈಮಾಸಿಕದಲ್ಲಿ ಸಂಪನ್ಮೂಲದ ವಿವರಗಳನ್ನು (resource specs) ಪರಿಶೀಲಿಸಿ. • ಇಂಜಿನಿಯರಿಂಗ್ ತಂಡಗಳಿಗೆ ಅವರ ಸ್ವಂತ ವೆಚ್ಚಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿ ನೀಡಿ.
Source: https://dev.to/samarth_05/from-spikes-to-savings-practical-k8s-cost-optimization-for-2026-75k
Optional learning community: https://t.me/GyaanSetuAi
