कुबेरनेट्स इंटरव्यू में शब्दावली (pod, deployment, service) से आगे बढ़कर ऑपरेशन्स (pod क्रैश होने पर क्या होता है, फँसे हुए rollout को कैसे डीबग करें) और डिज़ाइन (किसी ऐप को सुरक्षित तरीके से कैसे चलाएँगे) पर सवाल आते हैं। इंटरव्यूअर को कमांड और लक्षण पसंद होते हैं, इसलिए अभ्यास करें कि आप असल में क्या टाइप करेंगे और आप क्या देखने की उम्मीद करेंगे।
नीचे 26 सवाल और उनके जवाब हैं, जो विषय के अनुसार समूहित हैं। जहाँ संभव हो, उदाहरणों को अपने खुद के क्लस्टर अनुभव से बदलें।
आर्किटेक्चर और ऑब्जेक्ट्स
1. कुबेरनेट्स क्या है?
मशीनों के क्लस्टर पर कंटेनर चलाने और मैनेज करने के लिए एक ओपन सोर्स सिस्टम। आप बताते हैं कि आपको क्या स्टेट चाहिए, जैसे किसी सर्विस की तीन कॉपी, और कुबेरनेट्स उसे मैच करने के लिए लगातार काम करता रहता है।
2. क्लस्टर के मुख्य कंपोनेंट्स कौन-कौन से हैं?
कंट्रोल प्लेन में API सर्वर (मुख्य दरवाज़ा), etcd (डेटा स्टोर), शेड्यूलर (जो हर pod के लिए नोड चुनता है), और कंट्रोलर मैनेजर (जो कंट्रोल लूप चलाता है) होते हैं। हर वर्कर नोड पर kubelet (जो pods चलाता है), एक कंटेनर रनटाइम, और kube-proxy (जो सर्विस नेटवर्किंग संभालता है) चलता है।
3. Pod क्या है?
सबसे छोटी डिप्लॉय करने योग्य इकाई। इसमें एक या अधिक कंटेनर होते हैं जो नेटवर्क नेमस्पेस और स्टोरेज साझा करते हैं। ज़्यादातर pods में एक मुख्य कंटेनर होता है, और अतिरिक्त कंटेनर साइडकार या init कंटेनर होते हैं।
4. Deployment, ReplicaSet और StatefulSet में क्या अंतर है?
एक ReplicaSet एक जैसे कई pods चालू रखता है। एक Deployment ReplicaSets को मैनेज करता है और आपको रोलिंग अपडेट और रोलबैक देता है। एक StatefulSet स्टेटफुल ऐप्स के लिए होता है: pods को स्थिर नाम, स्थिर स्टोरेज, और क्रमबद्ध स्टार्ट और स्टॉप मिलता है।
5. DaemonSet क्या है? Job? CronJob?
एक DaemonSet हर नोड पर एक pod चलाता है, जैसे लॉग कलेक्टर जैसे एजेंट के लिए। एक Job किसी काम को पूरा होने तक चलाता है। एक CronJob Jobs को एक शेड्यूल पर चलाता है।
6. Labels, selectors और annotations क्या हैं?
Labels ऑब्जेक्ट्स पर key-value पेयर होते हैं, और selectors label के आधार पर ऑब्जेक्ट्स चुनते हैं। Services इसी तरह pods ढूँढती हैं, और Deployments अपने ReplicaSets ढूँढते हैं। Annotations भी key-value डेटा रखते हैं, लेकिन ये टूल्स द्वारा इस्तेमाल किए जाने वाले गैर-पहचान वाले मेटाडेटा के लिए होते हैं।
7. Namespace क्या है?
क्लस्टर को वर्चुअल समूहों में बाँटने का एक तरीका, आमतौर पर टीम या एनवायरनमेंट के अनुसार। Namespaces नामों को स्कोप करते हैं, और आप हर namespace पर रिसोर्स कोटा और एक्सेस नियम लागू कर सकते हैं। ये अपने आप में कोई मज़बूत सुरक्षा सीमा नहीं हैं।
नेटवर्किंग
8. Service के प्रकार कौन-कौन से हैं?
| प्रकार | यह क्या करता है |
|---|---|
| ClusterIP | एक स्थिर आंतरिक IP, जो केवल क्लस्टर के अंदर से पहुँचा जा सकता है (डिफ़ॉल्ट) |
| NodePort | हर नोड पर एक पोर्ट खोलता है |
| LoadBalancer | क्लाउड प्रोवाइडर के ज़रिए एक बाहरी लोड बैलेंसर बनाता है |
| ExternalName | सर्विस को एक DNS नाम से मैप करता है |
9. Ingress क्या है?
एक ऑब्जेक्ट जो बाहरी HTTP और HTTPS ट्रैफ़िक को होस्ट और पाथ के आधार पर सर्विसेज़ तक रूट करता है, और यह काम एक ingress controller करता है। नया Gateway API इसका और ज़्यादा सक्षम उत्तराधिकारी है।
10. Pods एक-दूसरे को कैसे ढूँढते हैं?
Services और क्लस्टर DNS के ज़रिए। shop namespace में api नाम की सर्विस api.shop.svc.cluster.local के रूप में पहुँची जा सकती है, या उसी namespace के अंदर से सिर्फ़ api के रूप में।
11. NetworkPolicy क्या है?
एक नियम सेट जो नियंत्रित करता है कि कौन से pods किससे बात कर सकते हैं। डिफ़ॉल्ट रूप से सभी pods एक-दूसरे तक पहुँच सकते हैं। पॉलिसीज़ (और उन्हें लागू करने वाले नेटवर्क प्लगइन) के साथ, आप ट्रैफ़िक को सीमित कर सकते हैं, उदाहरण के लिए केवल API pods को डेटाबेस तक पहुँचने देना।
कॉन्फ़िगरेशन और स्टोरेज
12. ConfigMap और Secret में क्या अंतर है?
दोनों कॉन्फ़िगरेशन रखते हैं जो एनवायरनमेंट वेरिएबल्स या फ़ाइलों के रूप में इंजेक्ट किया जाता है। Secrets संवेदनशील डेटा के लिए होते हैं, लेकिन डिफ़ॉल्ट रूप से ये केवल base64-एनकोडेड होते हैं, एन्क्रिप्टेड नहीं। एन्क्रिप्शन एट रेस्ट चालू करें, RBAC से एक्सेस सीमित करें, और किसी बाहरी secrets मैनेजर पर विचार करें।
13. PersistentVolumes और PersistentVolumeClaims क्या हैं?
एक PersistentVolume क्लस्टर में स्टोरेज का एक टुकड़ा है। एक PersistentVolumeClaim किसी pod का स्टोरेज के लिए अनुरोध है। एक StorageClass कुबेरनेट्स को वॉल्यूम अपने आप प्रोविज़न करने देता है। सामान्य कंटेनर फ़ाइलसिस्टम में डेटा तब गायब हो जाता है जब pod बदल दिया जाता है।
14. Requests और limits क्या हैं?
Requests वे रिसोर्स हैं जो शेड्यूलर किसी कंटेनर के लिए आरक्षित करता है। Limits वह अधिकतम हैं जो यह इस्तेमाल कर सकता है। मेमोरी लिमिट से ज़्यादा होने पर कंटेनर मार दिया जाता है (OOMKilled), जबकि CPU लिमिट से ज़्यादा होने पर थ्रॉटलिंग होती है।
विश्वसनीयता और अपडेट
15. Liveness, readiness और startup probes क्या हैं?
Liveness जाँचता है कि कंटेनर को रीस्टार्ट करना चाहिए या नहीं। Readiness जाँचता है कि उसे ट्रैफ़िक मिलना चाहिए या नहीं। Startup धीमे शुरू होने वाले ऐप्स को बाकी probes शुरू होने से पहले समय देता है। एक आम गलती यह है कि liveness probe को डेटाबेस पर निर्भर बना दिया जाए, जिससे डेटाबेस डाउन होने पर हर pod रीस्टार्ट हो सकता है।
16. Rolling update कैसे काम करता है?
Deployment नए pods बनाता है और पुराने वाले धीरे-धीरे हटाता है, जिसे maxSurge और maxUnavailable नियंत्रित करते हैं। Readiness probes तय करते हैं कि कोई नया pod कब तैयार माना जाएगा। अगर कुछ गड़बड़ हो जाए, तो kubectl rollout undo पिछले revision पर वापस ले जाता है।
17. Autoscaling कैसे काम करता है?
Horizontal Pod Autoscaler CPU जैसे metrics के आधार पर pods की संख्या बदलता है। Vertical Pod Autoscaler requests और limits को समायोजित करता है। Cluster autoscaler तब nodes जोड़ता या हटाता है जब pods को schedule नहीं किया जा पाता या nodes कम उपयोग में हों।
18. Node maintenance के दौरान ऐप को उपलब्ध कैसे रखते हैं?
कई replicas चलाएँ, उन्हें अलग-अलग nodes या zones में फैलाएँ, और PodDisruptionBudget सेट करें ताकि voluntary evictions में कम से कम इतने ही चलते रहें। kubectl drain से nodes को drain करें।
समस्या-निवारण
19. एक pod CrashLoopBackOff में है। आप क्या करेंगे?
कंटेनर शुरू होता है और फिर बार-बार बंद हो जाता है। यह देखने के लिए कि वह क्यों फेल हुआ, kubectl logs <pod> --previous चलाएँ, events, exit codes और probe failures के लिए kubectl describe pod देखें, और configuration, गायब secrets तथा resource limits जाँचें।
20. एक pod Pending में अटका है। आप क्या जाँचेंगे?
kubectl describe pod दिखाता है कि scheduler उसे क्यों नहीं रख पाया: किसी भी node पर पर्याप्त CPU या memory नहीं, node selectors या taints जो मेल नहीं खाते, या कोई unbound volume claim।
21. एक pod OOMKilled है। आप क्या करेंगे?
उसने अपनी memory limit पार कर ली। usage trend देखें, पता लगाएँ कि कोई leak है या limit ही बहुत कम है, और limit बढ़ाएँ या ऐप ठीक करें। requests को असली usage के करीब रखें ताकि scheduling यथार्थपरक हो।
22. कोई service reachable नहीं है। आप इसे कैसे debug करेंगे?
- जाँचें कि pods चल रहे हैं और ready हैं।
- जाँचें कि service का selector pod labels से मेल खाता है (kubectl get endpoints)।
- एक अस्थायी pod से cluster के अंदर से टेस्ट करें।
- port, target port और कंटेनर के listening address को जाँचें।
- network policies जाँचें, फिर ingress और DNS।
सुरक्षा और संचालन
23. RBAC कैसे काम करता है?
Roles resources पर permissions तय करते हैं, और bindings उन्हें users, groups या service accounts को देते हैं। जहाँ संभव हो namespaced Roles इस्तेमाल करें, cluster-admin से बचें, और हर workload को उसका अपना service account दें जिसमें सिर्फ़ ज़रूरी कम से कम permissions हों।
24. आप cluster को सुरक्षित कैसे करते हैं?
least privilege के साथ RBAC इस्तेमाल करें, API access सीमित करें, images scan करें, containers को non-root के रूप में चलाएँ और जहाँ संभव हो read-only filesystem रखें, network policies लागू करें, secrets encrypt करें, Kubernetes को अपडेट रखें, और गतिविधि का audit करें।
25. Helm क्या है?
Kubernetes के लिए एक package manager। एक chart templated manifests का सेट है, और एक release अपनी values वाला इंस्टॉल किया गया instance है। यह आपको अलग-अलग environments में deployments को दोबारा इस्तेमाल करने और version करने में मदद करता है। Kustomize एक और तरीका है जो सादे manifests को patch करता है।
26. आप एक web app को Kubernetes पर सुरक्षित तरीके से कैसे deploy करेंगे?
"कम से कम तीन replicas वाला एक Deployment जो zones में फैले हों, requests और limits सेट हों, readiness और liveness probes हों, TLS के साथ एक Service और एक Ingress हो, config ConfigMaps और Secrets में हो, एक HPA हो, और एक PodDisruptionBudget हो। rolling updates और आसान rollback वाली pipeline से deploy करें, और rollout के दौरान error rate और latency पर नज़र रखें।"
जानने योग्य commands
| काम | Command |
|---|---|
| pods की सूची | kubectl get pods -n <namespace> |
| pod विवरण और events | kubectl describe pod <pod> |
| Logs | kubectl logs <pod> -c <container> (crash के बाद --previous जोड़ें) |
| pod में shell | kubectl exec -it <pod> -- sh |
| वापस roll back करें | kubectl rollout undo deployment/<name> |
| Scale करें | kubectl scale deployment/<name> --replicas=5 |
| manifest लागू करें | kubectl apply -f file.yaml |
तैयारी कैसे करें
kind या minikube से locally एक छोटा cluster चलाएँ और जान-बूझकर चीज़ें तोड़ें: गलत image tag, फेल होता probe, बहुत कम memory limit। describe और logs के output पढ़ने का अभ्यास करें। एक असली incident तैयार करें जिसे आपने संभाला था और उसके बाद आपने क्या बदला। design की तैयारी के लिए हमारी system design guide देखें, और cloud विषयों के लिए AWS interview guide।
अपने debugging steps बोलकर बताएँ, क्योंकि interviewers को आपके जाँचने के क्रम की परवाह होती है। transcript वाला mock interview दिखाएगा कि आपने कहाँ कोई step छोड़ दिया। किसी भी live interview में AI tools को लेकर employer के नियमों का पालन करें।
YesToTheOffer के साथ Kubernetes साक्षात्कार उत्तरों का अभ्यास करें
एक मॉक तकनीकी साक्षात्कार चलाएँ, अपने डीबगिंग चरणों के बारे में बात करें, और बाद में अपने ट्रांसक्रिप्ट की समीक्षा करें। 30 मुफ्त मिनट, कोई सदस्यता नहीं।



