कुबेरनेट्स API में कुबेरनेट्स ऑब्जेक्ट्स की स्थिति को मेट्रिक्स के रूप में उजागर किया जा सकता है।
kube-state-metrics नामक एक ऐड-ऑन एजेंट कुबेरनेट्स API सर्वर से कनेक्ट हो सकता है और क्लस्टर में अलग-अलग ऑब्जेक्ट्स की स्थिति से उत्पन्न मेट्रिक्स के साथ एक HTTP एंडपॉइंट उजागर कर सकता है।
यह ऑब्जेक्ट्स की स्थिति के बारे में विभिन्न जानकारी उजागर करता है जैसे लेबल और एनोटेशन, आरंभ और समाप्ति समय, स्थिति या वह फ़ेज़ जिसमें ऑब्जेक्ट वर्तमान में है।
उदाहरण के लिए, पॉड्स में चलने वाले कंटेनर एक kube_pod_container_info मेट्रिक बनाते हैं।
इसमें लेबल के रूप में कंटेनर का नाम, जिस पॉड का यह हिस्सा है उसका नाम, जिस namespace में पॉड चल रहा है, कंटेनर इमेज का नाम, इमेज की ID, कंटेनर के spec से इमेज का नाम, चल रहे कंटेनर की ID और पॉड की ID शामिल होती है।
एक बाहरी घटक जो kube-state-metrics के एंडपॉइंट को स्क्रैप करने में सक्षम है (उदाहरण के लिए Prometheus के माध्यम से) अब निम्नलिखित उपयोग-स्थितियों को सक्षम करने के लिए उपयोग किया जा सकता है।
kube-state-metrics द्वारा उत्पन्न मेट्रिक श्रृंखलाएँ क्लस्टर में और अधिक अंतर्दृष्टि प्राप्त करने में सहायक होती हैं, क्योंकि इनका उपयोग क्वेरी के लिए किया जा सकता है।
यदि आप Prometheus या समान क्वेरी भाषा का उपयोग करने वाले किसी अन्य टूल का उपयोग करते हैं, तो निम्नलिखित PromQL क्वेरी उन पॉड्स की संख्या लौटाती है जो तैयार नहीं हैं:
count(kube_pod_status_ready{condition="false"}) by (namespace, pod)
kube-state-metrics से उत्पन्न मेट्रिक्स क्लस्टर में समस्याओं पर अलर्टिंग की भी अनुमति देते हैं।
यदि आप Prometheus या समान अलर्ट नियम भाषा का उपयोग करने वाले किसी समान टूल का उपयोग करते हैं, तो निम्नलिखित अलर्ट तब सक्रिय होगा जब ऐसे पॉड्स हों जो 5 मिनट से अधिक समय से Terminating स्थिति में हैं:
groups:
- name: Pod state
rules:
- alert: PodsBlockedInTerminatingState
expr: count(kube_pod_deletion_timestamp) by (namespace, pod) * count(kube_pod_status_reason{reason="NodeLost"} == 0) by (namespace, pod) > 0
for: 5m
labels:
severity: page
annotations:
summary: Pod {{$labels.namespace}}/{{$labels.pod}} blocked in Terminating state.
इस पृष्ठ की वस्तुओं अन्य पक्ष के उत्पादों या परियोजनाओं से जुड़ा है जो कुबेरनेट्स द्वारा आवश्यक कार्यक्षमता प्रदान करते हैं। कुबेरनेट्स परियोजना के लेखक इन अन्य पक्ष के उत्पादों या परियोजनाओं के लिए जिम्मेदार नहीं हैं। अधिक जानकारी के लिए यह CNCF वेबसाइट दिशानिर्देश पृष्ठ पढ़े।"
कोई नई अतिरिक्त अन्य पक्ष लिंक जोड़ने से पहले यह पृष्ठ विषय मार्गदर्शक पृष्ठ पढ़के ही परिवर्तन का प्रस्ताव प्रस्तुत करें।