लेबल्स और एनोटेशन (Labels and Annotations)

सर्वोत्तम प्रथाओं के मार्गदर्शिका का यह भाग आपके चार्ट में लेबल्स और एनोटेशन का उपयोग करने के लिए सर्वोत्तम प्रथाओं पर चर्चा करता है।

क्या यह एक लेबल है या एक एनोटेशन?

किसी मेटाडेटा आइटम को लेबल तब होना चाहिए जब निम्नलिखित स्थितियाँ हों:

  • इसे Kubernetes द्वारा इस संसाधन की पहचान करने के लिए उपयोग किया जाता है
  • यह ऑपरेटरों के लिए सिस्टम को क्वेरी करने के उद्देश्य से उपयोगी है।

उदाहरण के लिए, हम सुझाव देते हैं कि helm.sh/chart: NAME-VERSION को एक लेबल के रूप में उपयोग किया जाए ताकि ऑपरेटर किसी विशेष चार्ट के सभी उदाहरणों को आसानी से ढूँढ़ सकें।

यदि मेटाडेटा का कोई आइटम क्वेरी करने के लिए उपयोग नहीं किया जाता है, तो इसे एनोटेशन के रूप में सेट किया जाना चाहिए।

Helm हुक्स हमेशा एनोटेशन होते हैं।

मानक लेबल्स

निम्नलिखित तालिका उन सामान्य लेबल्स को परिभाषित करती है जो Helm चार्ट्स उपयोग करते हैं। Helm स्वयं कभी भी यह आवश्यक नहीं मानता कि कोई विशेष लेबल मौजूद होना चाहिए। जो लेबल्स REC के रूप में चिह्नित हैं, वे अनुशंसित हैं, और उन्हें वैश्विक संगतता के लिए एक चार्ट पर रखा जाना चाहिए। जो लेबल्स OPT के रूप में चिह्नित हैं, वे वैकल्पिक हैं। ये आदर्श या सामान्य रूप से उपयोग में होते हैं, लेकिन संचालन उद्देश्यों के लिए अक्सर इन पर निर्भर नहीं रहते।

नामस्थितिविवरण
app.kubernetes.io/nameRECयह ऐप का नाम होना चाहिए, जो पूरे ऐप को दर्शाता है। सामान्यतः इसके लिए {{ template "name" . }} का उपयोग किया जाता है। इसे कई Kubernetes मैनिफेस्ट्स द्वारा उपयोग किया जाता है, और यह Helm-विशिष्ट नहीं है।
helm.sh/chartRECयह चार्ट का नाम और संस्करण होना चाहिए: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
app.kubernetes.io/managed-byRECइसे हमेशा {{ .Release.Service }} पर सेट किया जाना चाहिए। यह Helm द्वारा प्रबंधित सभी चीज़ों को ढूँढ़ने के लिए होता है।
app.kubernetes.io/instanceRECयह {{ .Release.Name }} होना चाहिए। यह एक ही ऐप्लिकेशन के विभिन्न उदाहरणों के बीच अंतर करने में मदद करता है।
app.kubernetes.io/versionOPTऐप का संस्करण और इसे {{ .Chart.AppVersion }} पर सेट किया जा सकता है।
app.kubernetes.io/componentOPTयह एक सामान्य लेबल है जो ऐप्लिकेशन के विभिन्न हिस्सों की भूमिकाओं को चिह्नित करने के लिए उपयोग किया जाता है। उदाहरण के लिए, app.kubernetes.io/component: frontend
app.kubernetes.io/part-ofOPTजब एक से अधिक चार्ट्स या सॉफ़्टवेयर के टुकड़े मिलकर एक ऐप्लिकेशन बनाते हैं। उदाहरण के लिए, एप्लिकेशन सॉफ़्टवेयर और एक डेटाबेस मिलकर एक वेबसाइट बनाने के लिए। इसे उस शीर्ष स्तर के ऐप्लिकेशन के लिए सेट किया जा सकता है जिसे समर्थन प्राप्त है।

आप app.kubernetes.io से प्रारंभ होने वाले Kubernetes लेबल्स के बारे में अधिक जानकारी Kubernetes प्रलेखन में पा सकते हैं।