पॉड प्राथमिकता और प्रीएम्प्शन
जानें कि PriorityClasses पॉड की प्राथमिकता कैसे तय करती हैं और महत्वपूर्ण वर्कलोड के लिए स्थान बनाने हेतु शेड्यूलर कम-प्राथमिकता वाले पॉड को कैसे हटाकर पुनर्निर्धारित कर सकता है
पॉड प्राथमिकता और प्रीएम्प्शन, CoddyKit पर Kubernetes की बुनियाद का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Kubernetes की बुनियाद सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Kubernetes की बुनियाद पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
सभी पॉड समान नहीं होते
जब क्लस्टर भर जाता है, तो कुछ कार्यभार दूसरों से अधिक महत्वपूर्ण होते हैं। पॉड प्राथमिकता आपको Kubernetes को यह बताने देती है कि संसाधनों की होड़ में किन पॉड को प्राथमिकता मिलनी चाहिए।
PriorityClass क्या है
PriorityClass एक क्लस्टर-व्यापी ऑब्जेक्ट है, जो किसी नाम को पूर्णांक मान से जोड़ता है। अधिक संख्या का अर्थ अधिक प्राथमिकता है।
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: high-priority
value: 1000000
globalDefault: false
description: 'For critical production workloads'पॉड को प्राथमिकता देना
पॉड priorityClassName के माध्यम से किसी क्लास का चयन करता है। शेड्यूलर संदर्भित क्लास से संख्यात्मक मान पढ़ता है।
apiVersion: v1
kind: Pod
metadata:
name: critical-app
spec:
priorityClassName: high-priority
containers:
- name: app
image: myapp:1.0प्राथमिकता शेड्यूलिंग को कैसे प्रभावित करती है
जब कई पॉड लंबित होते हैं, तो शेड्यूलर पहले अधिक प्राथमिकता वाले पॉड को चलाने का प्रयास करता है। प्राथमिकता उस क्रम को प्रभावित करती है जिसमें पॉड शेड्यूल किए जाते हैं।
प्रीएम्प्शन क्या है
यदि क्लस्टर भर जाने के कारण अधिक प्राथमिकता वाला पॉड शेड्यूल नहीं हो पाता, तो शेड्यूलर स्थान खाली करने के लिए कम प्राथमिकता वाले पॉड को प्रीएम्प्ट (हटा) सकता है।
हटाए गए पॉड फिर से Pending स्थिति में चले जाते हैं और किसी अन्य स्थान पर दोबारा शेड्यूल हो सकते हैं।
प्रीएम्प्शन का उदाहरण
मान लीजिए कि कोई नोड priority-100 वाले पॉड से पूरी तरह भर गया है और priority-1000000 वाला पॉड आ जाता है। शेड्यूलर महत्वपूर्ण पॉड के लिए जगह बनाने हेतु पर्याप्त कम-प्राथमिकता वाले पॉड हटा सकता है।
kubectl get events --field-selector reason=Preempted
# Pod default/batch-job was preempted by critical-appप्रीएम्प्शन बंद करना
कोई PriorityClass preemptionPolicy: Never के साथ दूसरों को प्रीएम्प्ट करने से बाहर रह सकता है। ऐसे पॉड अभी भी प्राथमिकता के क्रम में शेड्यूल होते हैं, लेकिन किसी को हटाते नहीं हैं।
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: high-no-preempt
value: 1000000
preemptionPolicy: Neverवैश्विक डिफ़ॉल्ट
किसी PriorityClass पर globalDefault: true सेट करने से उसका मान उन सभी पॉड पर लागू होता है जो कोई मान निर्दिष्ट नहीं करते। केवल एक क्लास वैश्विक डिफ़ॉल्ट हो सकती है।
पहले से मौजूद सिस्टम क्लास
Kubernetes आवश्यक घटकों के लिए system-cluster-critical और system-node-critical जैसी आरक्षित क्लास के साथ आता है। इन्हें अपने ऐप के लिए दोबारा उपयोग न करें।
kubectl get priorityclass
# system-node-critical 2000001000
# system-cluster-critical 2000000000सर्वोत्तम अभ्यास
- स्पष्ट स्तरों की कम संख्या तय कीजिए, जैसे महत्वपूर्ण, सामान्य और बैच
- प्रीएम्प्शन का उपयोग केवल वास्तव में महत्वपूर्ण कार्यभार के लिए कीजिए
- शेड्यूलिंग के निर्णय सटीक बनाने के लिए इसे संसाधन अनुरोधों के साथ मिलाकर उपयोग कीजिए
- हर चीज़ को उच्च प्राथमिकता देने से बचिए, क्योंकि इससे प्राथमिकता का उद्देश्य ही समाप्त हो जाता है
प्राथमिकता बनाम सेवा-गुणवत्ता
प्राथमिकता शेड्यूलिंग और प्रीएम्प्शन को नियंत्रित करती है। सेवा-गुणवत्ता क्लास (अनुरोधों और सीमाओं से निर्धारित) नोड पर दबाव के दौरान होने वाली बेदखली को नियंत्रित करती हैं। ये संबंधित, लेकिन अलग-अलग तंत्र हैं।
त्वरित जाँच
प्रीएम्प्शन की अपनी समझ जाँचिए।
पुनरावृत्ति
आपने सीखा कि कोई PriorityClass पॉड को पूर्णांक मान के आधार पर क्रम देता है और शेड्यूलिंग के क्रम को प्रभावित करता है। प्रीएम्प्शन क्लस्टर भर जाने पर महत्वपूर्ण पॉड को कम प्राथमिकता वाले पॉड हटाने देता है। कुछ स्पष्ट स्तरों का उपयोग कीजिए और प्राथमिकता को सटीक संसाधन अनुरोधों के साथ मिलाकर उपयोग कीजिए।
एआई शिक्षक के साथ Kubernetes की बुनियाद सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “पॉड प्राथमिकता और प्रीएम्प्शन” पाठ निःशुल्क है?
हाँ — Kubernetes की बुनियाद अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “पॉड प्राथमिकता और प्रीएम्प्शन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Kubernetes की बुनियाद पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“पॉड प्राथमिकता और प्रीएम्प्शन” में मैं क्या सीखूँगा?
जानें कि PriorityClasses पॉड की प्राथमिकता कैसे तय करती हैं और महत्वपूर्ण वर्कलोड के लिए स्थान बनाने हेतु शेड्यूलर कम-प्राथमिकता वाले पॉड को कैसे हटाकर पुनर्निर्धारित कर सकता है आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Kubernetes की बुनियाद का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Kubernetes की बुनियाद शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Kubernetes की बुनियाद शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“पॉड प्राथमिकता और प्रीएम्प्शन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Kubernetes की बुनियाद पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Kubernetes की बुनियाद पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- संसाधन अनुरोध और सीमाएँ
- नोड चयनकर्ता और एफ़िनिटी
- टेंट्स और टॉलरैशन्स
- पॉड प्राथमिकता और प्रीएम्प्शन