इस प्रश्न का उत्तर हम kubernetes.io से अनुभाग तैनाती में पा सकते हैं
तो, मुझे चयनकर्ताओं की आवश्यकता क्यों होगी?
K8s v 1.14 के लिए प्रलेखन से नीचे के उद्धरण
.spec.selectorएक आवश्यक फ़ील्ड है जो इस तैनाती द्वारा लक्षित पॉड्स के लिए एक लेबल चयनकर्ता को निर्दिष्ट करता है।
.spec.selectorमेल खाना चाहिए .spec.template.metadata.labels, या इसे एपीआई द्वारा अस्वीकार कर दिया जाएगा।
API संस्करण ऐप्स / v1 में, .spec.selector और .metadata.labels सेट नहीं होने पर .spec.template.metadata.labels के लिए डिफ़ॉल्ट नहीं है। इसलिए उन्हें स्पष्ट रूप से सेट किया जाना चाहिए । यह भी ध्यान दें कि .spec.selector ऐप्स / v1 में परिनियोजन के निर्माण के बाद अपरिवर्तनीय है।
परिनियोजन पॉड्स को समाप्त कर सकता है जिनके लेबल चयनकर्ता से मेल खाते हैं यदि उनका टेम्पलेट .spec.template से अलग है या यदि ऐसे पॉड की कुल संख्या .spec.replicas से अधिक है। यह। Podec.template के साथ नए पॉड्स लाता है यदि पॉड्स की संख्या वांछित संख्या से कम है।
फली पहले से ही अलग से शुरू की जा रही है, लेकिन बाद में तैनाती की छतरी के नीचे एक साथ प्रबंधित किया जा सकता है?
सीधे शब्दों में, नहीं
नोट: आपको अन्य पॉड्स नहीं बनाने चाहिए जिनके लेबल इस चयनकर्ता से मेल खाते हैं, या तो सीधे, किसी अन्य Deploymentको बनाकर या किसी अन्य नियंत्रक जैसे कि a ReplicaSetया a
को बनाकर ReplicationController। यदि आप ऐसा करते हैं, तो पहला Deploymentविचार करता है कि इसने इन अन्य पॉड्स को बनाया है। Kubernetesआपको ऐसा करने से नहीं रोकता है। यदि आपके पास कई नियंत्रक हैं जो अतिव्यापी चयनकर्ता हैं, तो नियंत्रक एक दूसरे के साथ लड़ेंगे और सही तरीके से व्यवहार नहीं करेंगे।