कुबेरनेट कंटेनर पर चिपक गए


99

मेरे कुबेरनेट क्लस्टर में एक पॉड "कंटेनरक्रीटिंग" पर एक रन बनाने के बाद अटक गया है। मैं इस ऑपरेशन के लिए लॉग कैसे देखता हूं ताकि निदान किया जा सके कि यह क्यों अटक गया है? kubectl logsकाम करने के लिए प्रतीत नहीं होता है क्योंकि कंटेनर को गैर-लंबित स्थिति में होना चाहिए।


kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/… संभावित चरणों पर प्रलेखन है। दुर्भाग्य से यह शामिल नहीं है ContainerCreating...
Xiong Chiamiov

जवाबों:


125

kubectl describe podsछवियों को खींचने, कंटेनरों की शुरुआत सहित फली से जुड़े सभी घटनाओं को सूचीबद्ध करेगा। यह मदद का हो सकता है।


5
क्या होगा अगर कंटेनर बिना किसी घटना के कंटेनर में फंस गया? मेरे लिए घटनाओं को "कोई घटना नहीं" के रूप में दिखाया गया है।
बॉब

1
कुछ घटनाओं को दिखाने में थोड़ा समय लगता है। उदाहरण के लिए मेरे लिए एक डिस्क माउंट करने का समयबाह्य समय एक घटना के रूप में दिखाने से पहले लगभग 2 मिनट लगते हैं।
जुवाडैक

8
यह तब होता है जब आप रहस्यों का उपयोग कर रहे होते हैं और वे नहीं मिलते हैं (जैसे याम्ल में एक टाइपो या आप इसे पहले बनाना भूल गए थे)। लगभग सभी अन्य संभावित त्रुटियों के लिए इसे CrashLoopback या त्रुटि मिलती है, लेकिन रहस्यों के साथ यह सिर्फ कंटेनर में फंस जाता है, यदि आप पॉड का वर्णन करते हैं, तो आप बहुत ही अंत में देखेंगे कि कोई संदेश गुप्त नहीं पाया गया, लेकिन यह बमुश्किल कहता है समस्या के बारे में कुछ नहीं।
डैनियस

हाँ आमतौर पर आपके पास कुछ भी करने से पहले कोई घटना नहीं होती है।
एरिकबवर्क

आज सुबह मेरे पास आया और यह एक hostPath में एक वॉल्यूम के लिए एक टाइपो था। याय चिपचिपा कीबोर्ड।
जो ब्लॉक

4

मेरे मामले में, डॉकर की इंटरनेट तक पहुंच अवरुद्ध थी। यह प्रॉक्सी का उपयोग करके हल किया गया था ( सैंडिलस की टिप्पणी का उपयोग करके ):

  1. minikube stop
  2. minikube delete
  3. export http_proxy=http://user:pass@ip:port
  4. export https_proxy=http://user:pass@ip:port
  5. export no_proxy=192.168.99.0/24
  6. minikube start --logtostderr --v=0 --bootstrapper=localkube --vm-driver hyperv 
      --hyperv-virtual-switch "Primary Virtual Switch" --docker-env HTTP_PROXY=$http_proxy \
      --docker-env HTTPS_PROXY=$https_proxy --docker-env NO_PROXY=$no_proxy
    
  7. export no_proxy=$no_proxy,$(minikube ip)
  8. export NO_PROXY=$no_proxy,$(minikube ip)

फिर, यह जांचने के लिए कि क्या डॉकटर के पास इंटरनेट है, चलाएं:

$ docker pull tutum/hello-world

क्लस्टर में (क्लस्टर का उपयोग करके कनेक्ट करें minikube ssh); यदि डाउनलोड शुरू होता है तो प्रक्रिया को रोकें।

मेरी दूसरी समस्या धीमी इंटरनेट कनेक्शन थी। चूँकि आवश्यक docker की छवियाँ 100MB के क्रम पर हैं, दोनों docker कंटेनर और Kubernetes पॉड्स 30 मिनट के भीतर \pauseऔर ContainerCreatingराज्यों में बने रहे ।

यह जाँचने के लिए कि क्या डॉकटर चित्र डाउनलोड कर रहा है, चलाएँ:

$ ls -l /var/lib/docker/tmp

क्लस्टर में, जो अस्थायी छवि फ़ाइल दिखाती है [s] जिसे डाउनलोड किया जा रहा है, अन्यथा खाली।

आप minikube में विकसित करने और वीपीएन का उपयोग कर रहे हैं, तो डोकर के माध्यम से अपने वीपीएन का उपयोग कर सकते Fiddler । यही है, docker को fiddler के ip: port से जोड़ा जाएगा, और fiddler को VPN से जोड़ा जाएगा। अन्यथा, वीपीएन आपके होस्ट और मिनिक्यूब वीएम के बीच साझा नहीं किया जाता है।


आज इस बग से थोड़ा मिला। अभी भी यकीन नहीं है कि यह क्या कारण है। चीजें ठीक एक मिनट और अगले काम कर रही थीं, इस मुद्दे को काट दिया। ठीक करने के लिए धन्यवाद। इसने मेरे लिए काम किया।
जिम

0

एक बार जब मैंने यह मारा, क्योंकि मेरे संसाधन घोषणाएं गलती से बहुत छोटी थीं।

संसाधन: सीमाएं: सीपीयू: 1000 मीटर मेमोरी: 1024M अनुरोध: सीपीयू: 1000 मीटर मेमोरी: 1024M

बनाम

संसाधन: सीमाएं: सीपीयू: 1000 मीटर मेमोरी: 1024 मीटर अनुरोध: सीपीयू: 1000 मीटर मेमोरी: 1024 मीटर

उस मीटर को बड़ा करना संसाधन उपयोग में एक बहुत बड़ा अंतर बनाता है। मैं कंटेनरक्रीटिंग पर अड़ा हुआ था क्योंकि मैंने अपने कंटेनर को पर्याप्त मेमोरी नहीं दी थी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.