यह दो चरणों में चलता है। filtering उन nodes को हटा देता है जो pod को होस्ट नहीं कर सकते, इसका आधार होता है allocatable capacity के मुकाबले resource requests, node selectors, वे taints जिन्हें pod tolerate नहीं करता, और volume या affinity की शर्तें। फिर scoring बचे हुए nodes को नियमों से रैंक करता है, जैसे nodes में फैलाव और कम लोड वाले को तरजीह। जीतने वाले से bind होता है, और उस node का kubelet असल में pod चालू करता है।
इंटरव्यूअर यह क्यों पूछते हैं
असली incidents में scheduling pending pods और असमान लोड की शक्ल में आती है, तो इंटरव्यूअर जानना चाहता है कि आप इसे डिबग कर सकते हैं। जो अहम बात वे सुनना चाहते हैं वह यह कि scheduling requests पर होती है, limits या असली इस्तेमाल पर नहीं, और capacity वाले incidents में ज़्यादातर हैरान चेहरे इसी से बनते हैं। affinity, taints और topology spread constraints दिखाते हैं कि आपने placement जानबूझकर गढ़ी है, डिफ़ॉल्ट पर छोड़ नहीं दिया।
अपना जवाब कैसे स्ट्रक्चर करें
- दो चरणों का नाम लें: पहले filter, फिर score, फिर bind।
- साफ कहें कि placement requests से चलती है, limits या लाइव इस्तेमाल से नहीं।
- लीवर गिनाएं: selectors, affinity, taints, topology spread।
- बताएं कि Pending में अटके pod को आप कैसे डिबग करते हैं।
उदाहरण जवाब
scheduler ऐसे pods पर नज़र रखता है जिन्हें कोई node नहीं मिला है, और उन्हें filtering तथा scoring से गुज़ारता है। filtering हर वह node बाहर कर देती है जो चल ही नहीं सकता: pod के requests के लिए पर्याप्त allocatable CPU या memory नहीं, node selector मेल नहीं खाता, ऐसा taint जिसकी कोई toleration नहीं, या ऐसा volume जो उस zone में attach नहीं हो सकता। फिर scoring बचे हुए को रैंक करती है, फैलाव और संतुलित इस्तेमाल को तरजीह देते हुए, और सबसे ऊपर वाला node जीतकर bind हो जाता है। ऑपरेशनल तौर पर जो बात मायने रखती है वह यह कि scheduling requests पर होती है, इस पर नहीं कि pod असल में कितना इस्तेमाल करता है। तो dashboards में cluster पंद्रह प्रतिशत भरा दिख सकता है और फिर भी कुछ schedule करने से मना कर सकता है, क्योंकि सबने requests असली इस्तेमाल से कहीं ऊपर सेट कर रखे हैं। जब कोई pod Pending में बैठा हो, मैं सीधे उस pod के events देखता हूं, क्योंकि scheduler ठीक ठीक बता देता है कि कौन सा predicate और कितने nodes पर फेल हुआ। placement गढ़ने के लिए मैं availability के वास्ते zones के आर पार topology spread constraints इस्तेमाल करता हूं, और खास hardware वाले nodes से आम workloads दूर रखने के लिए taints और tolerations।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- pod के evict होने और preempt होने में क्या फर्क है?
- requests और limits quality of service classes के साथ कैसे जुड़ते हैं?
- एक ही सर्विस के दो replicas एक node पर न आएं, यह कैसे करेंगे?
DevOps इंजीनियर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें