Kubernetes ติดอยู่ที่ ContainerCreating


99

พ็อดในคลัสเตอร์ Kubernetes ของฉันติดอยู่ที่ "ContainerCreating" หลังจากรันการสร้าง ฉันจะดูบันทึกการทำงานนี้เพื่อวิเคราะห์สาเหตุที่ติดอยู่ได้อย่างไร kubectl logsดูเหมือนจะไม่ทำงานเนื่องจากคอนเทนเนอร์ต้องอยู่ในสถานะไม่รอดำเนินการ


kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/…เป็นเอกสารเกี่ยวกับขั้นตอนที่เป็นไปได้ น่าเสียดายที่มันไม่รวมContainerCreating...
Xiong Chiamiov

คำตอบ:


125

kubectl describe podsจะแสดงรายการกิจกรรมทั้งหมดที่เกี่ยวข้องกับพ็อดรวมถึงการดึงรูปภาพเริ่มต้นของคอนเทนเนอร์ มันอาจจะช่วยได้


5
เกิดอะไรขึ้นถ้าคอนเทนเนอร์ติดอยู่ที่ ContainerCreating โดยไม่มีเหตุการณ์ใด ๆ ? สำหรับฉันแล้วกิจกรรมจะแสดงเป็น "ไม่มีกิจกรรม"
บ๊อบ

1
เหตุการณ์บางอย่างอาจใช้เวลาสักครู่ในการแสดง ตัวอย่างเช่นการหมดเวลาพยายามติดตั้งดิสก์สำหรับฉันใช้เวลาประมาณ 2 นาทีก่อนที่จะปรากฏเป็นเหตุการณ์
jwadsack

8
มันเกิดขึ้นเมื่อคุณใช้ความลับและไม่พบ (เช่นพิมพ์ผิดใน yaml หรือคุณลืมที่จะสร้างมันก่อน) สำหรับข้อผิดพลาดที่เป็นไปได้อื่น ๆ เกือบทั้งหมดมันจะได้รับ CrashLoopback หรือ Error States แต่ด้วยความลับมันเพิ่งติดอยู่ใน ContainerCreating ถ้าคุณอธิบายพ็อดแล้วคุณจะเห็นข้อความท้ายสุดที่บอกว่าไม่พบความลับ แต่แทบจะพูดว่า ไม่มีอะไรเกี่ยวกับปัญหา
danius

โดยปกติแล้วคุณไม่มีกิจกรรมใด ๆ ก่อนที่เขาจะเริ่มทำอะไรบางอย่าง
erikbwork

เกิดขึ้นกับฉันในเช้าวันนี้และมันก็เป็นคำสะกดผิดใน hostPath สำหรับหนังสือ แป้นพิมพ์เหนียว
โจบล็อค

4

ในกรณีของฉันการเข้าถึงอินเทอร์เน็ตของนักเทียบท่านั้นถูกปิดกั้น มันได้รับการแก้ไขโดยใช้พร็อกซี่ ( โดยใช้ความคิดเห็นของ sandylss ):

  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); หยุดกระบวนการถ้ามันเริ่มดาวน์โหลด

ปัญหาที่สองของฉันคือการเชื่อมต่ออินเทอร์เน็ตช้า เนื่องจากภาพของนักเทียบท่าที่ต้องการนั้นอยู่ที่ 100 MB ทั้งที่เก็บนักเทียบท่าและฝัก Kubernetes ยังคงอยู่\pauseและอยู่ในContainerCreatingสถานะเป็นเวลา 30 นาที

ในการตรวจสอบว่านักเทียบท่ากำลังดาวน์โหลดภาพหรือไม่ให้เรียกใช้:

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

ในคลัสเตอร์ซึ่งแสดงไฟล์รูปภาพชั่วคราว [s] ที่ถูกดาวน์โหลดว่างเปล่าเป็นอย่างอื่น

หากคุณมีการพัฒนาใน minikube และการใช้ VPN, นักเทียบท่าสามารถใช้ VPN ของคุณผ่านทางไวโอลิน นั่นคือนักเทียบท่าจะเชื่อมต่อกับ ip: พอร์ตของพู้ทำเล่นและพู้ทำเล่นเชื่อมต่อกับ VPN มิฉะนั้น VPN จะไม่แชร์ระหว่างโฮสต์ของคุณกับ minikube VM


มีข้อผิดพลาดเล็กน้อยในวันนี้ ยังไม่แน่ใจว่าเกิดจากอะไร สิ่งต่าง ๆ ใช้งานได้ดีในหนึ่งนาทีและต่อไปปัญหานี้ถูกครอบตัด ขอบคุณสำหรับการแก้ไข มันใช้งานได้สำหรับฉัน
Jim

0

ครั้งหนึ่งที่ฉันโดนสิ่งนี้เป็นเพราะการประกาศทรัพยากรของฉันมีขนาดเล็กมากโดยบังเอิญ

ทรัพยากร: ข้อ จำกัด : cpu: หน่วยความจำ 1000 เมตร: คำขอ 1024M: cpu: หน่วยความจำ 1,000 เมตร: 1024M

VS

ทรัพยากร: ข้อ จำกัด : cpu: หน่วยความจำ 1000 เมตร: คำขอ 1024m: cpu: หน่วยความจำ 1,000 เมตร: 1024m

การใช้ประโยชน์จาก m ทำให้เกิดความแตกต่างอย่างมากในการใช้ทรัพยากร ฉันติดอยู่ที่ ContainerCreating เพราะฉันไม่ได้ให้หน่วยความจำเพียงพอกับคอนเทนเนอร์ของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.