นี่คือจุดเริ่มต้นของการตรวจสอบ: CoreDNS ไม่สามารถทำงานได้นานกว่าสองสามวินาที ทำให้เกิดข้อผิดพลาดต่อไปนี้:
$ kubectl รับพ็อด --all-namespaces
NAMESPACE NAME สถานะพร้อมเริ่มอายุใหม่
ingress-nginx ingress-nginx-controller-8xcl9 1/1 กำลังทำงาน 0 11h
ingress-nginx ingress-nginx-controller-hwhvk 1/1 กำลังทำงาน 0 11h
ingress-nginx ingress-nginx-controller-xqdqx 1/1 Running 2 (10h ago) 11h
kube-system calico-kube-controllers-684bcfdc59-cr7hr 1/1 กำลังทำงาน 0 11h
kube-system calico-node-62p58 1/1 กำลังดำเนินการ 2 (10 ชม. ที่แล้ว) 11 ชม.
kube-system calico-node-btvdh 1/1 ทำงาน 0 11 ชม
kube-system calico-node-q5bkr 1/1 ทำงาน 0 11 ชม
ระบบ kube coredns-8474476ff8-dnt6b 0/1 CrashLoopBackOff 1 (3 วินาทีที่แล้ว) 5 วินาที
kube-system coredns-8474476ff8-ftcbx 0/1 ข้อผิดพลาด 1 (2 วินาทีที่แล้ว) 5 วินาที
kube-system dns-autoscaler-5ffdc7f89d-4tshm 1/1 กำลังทำงาน 2 (10 ชั่วโมงที่แล้ว) 11 ชั่วโมง
kube-system kube-apiserver-hyzio 1/1 รัน 4 (10 ชม. ที่แล้ว) 11 ชม.
kube-system kube-controller-manager-hyzio 1/1 Running 4 (10 ชม. ที่แล้ว) 11 ชม.
ระบบ kube kube-proxy-2d8ls 1/1 ทำงาน 0 11 ชม
kube-system kube-proxy-c6c4l 1/1 รัน 4 (10 ชม. ที่แล้ว) 11 ชม.
ระบบ kube kube-proxy-nzqdd 1/1 ทำงาน 0 11 ชม
kube-system kube-scheduler-hyzio 1/1 รัน 5 (10 ชม. ที่แล้ว) 11 ชม.
ระบบ kube kubernetes-dashboard-548847967d-66dwz 1/1 กำลังทำงาน 0 11h
ระบบ kube kubernetes-metrics-scraper-6d49f96c97-r6dz2 1/1 กำลังทำงาน 0 11 ชม.
ระบบ kube nginx-proxy-dyzio 1/1 ทำงาน 0 11 ชม
ระบบ kube nginx-proxy-zyzio 1/1 ทำงาน 0 11 ชม
ระบบ kube nodelocaldns-g9wxh 1/1 ทำงาน 0 11 ชม
kube-system nodelocaldns-j2qc9 1/1 กำลังทำงาน 4 (10 ชั่วโมงที่แล้ว) 11 ชั่วโมง
ระบบ kube nodelocaldns-vk84j 1/1 ทำงาน 0 11 ชม
kube-system Registry-j5prk 1/1 ทำงาน 0 11 ชม
kube-system Registry-proxy-5wbhq 1/1 ทำงาน 0 11 ชม
kube-system Registry-proxy-77lqd 1/1 ทำงาน 0 11 ชม
kube-system Registry-proxy-s45p4 1/1 กำลังทำงาน 2 (10 ชั่วโมงที่แล้ว) 11 ชั่วโมง
kubectl อธิบาย
บนฝักนั้นไม่ได้นำมาซึ่งภาพมากนัก:
เหตุการณ์:
พิมพ์อายุเหตุผลจากข้อความ
---- ------ ---- ---- -------
ตัวกำหนดตารางเวลาเริ่มต้น 67s ปกติ กำหนด kube-system/coredns-8474476ff8-dnt6b ให้กับ zyzio สำเร็จแล้ว
Normal Pulled 25s (x4 over 68s) kubelet อิมเมจคอนเทนเนอร์ "k8s.gcr.io/coredns/coredns:v1.8.0" มีอยู่แล้วในเครื่อง
ปกติสร้าง 25 วินาที (x4 มากกว่า 68 วินาที) kubelet สร้างคอนเทนเนอร์ coredns
ปกติเริ่มต้น 25 วินาที (x4 มากกว่า 68 วินาที) kubelet เริ่มต้นคอนเทนเนอร์ coredns
คำเตือน BackOff 6s (x11 มากกว่า 66s) kubelet Back-off การรีสตาร์ทคอนเทนเนอร์ล้มเหลว
แต่การดูบันทึกได้:
$ kubectl บันทึก coredns-8474476ff8-dnt6b -n kube-system
.:53
[INFO] ปลั๊กอิน/โหลดซ้ำ: กำลังรันการกำหนดค่า MD5 = 5b233a0166923d642fdbca0794b712ab
CoreDNS-1.8.0
ลินุกซ์/amd64, go1.15.3, 054c9ae
[FATAL] ปลั๊กอิน/ลูป: ตรวจพบลูป (127.0.0.1:49048 -> :53) สำหรับโซน "." โปรดดู https://coredns.io/plugins/loop#troubleshootingข้อความค้นหา: "HINFO 2906344495550081187.9117452939332601176"
เป็นเรื่องดีที่มีการเชื่อมโยงเอกสารการแก้ไขปัญหา! ฉันเริ่มเปิดดูหน้านั้นและค้นพบว่าแท้จริงแล้วเป็นของฉัน /etc/resolv.conf
มี IP ท้องถิ่นที่มีปัญหา เนมเซิร์ฟเวอร์ 127.0.0.53
.
นอกจากนี้ฉันพบว่า จริง DNS IP ใน /run/systemd/resolve/resolv.conf
แต่ตอนนี้คำถามคือ: วิธีดำเนินการตามที่อธิบายไว้ในเอกสารประกอบการแก้ไขปัญหา โดยกล่าวว่า:
เพิ่มสิ่งต่อไปนี้ใน kubelet config yaml ของคุณ: resolvConf: (หรือผ่าน command line flag --resolv-conf เลิกใช้แล้วใน 1.10) ârealâ resolv.conf ของคุณคืออันที่มี IP จริงของเซิร์ฟเวอร์อัพสตรีมของคุณ และไม่มีที่อยู่ในโลคัล/ลูปแบ็ค แฟล็กนี้บอกให้ kubelet ส่ง resolv.conf สำรองไปยัง Pods สำหรับระบบที่ใช้ systemd-resolved โดยทั่วไป /run/systemd/resolve/resolv.conf จะเป็นตำแหน่งของ ârealâ resolv.conf แม้ว่าสิ่งนี้อาจแตกต่างกันไปขึ้นอยู่กับการกระจายของคุณ
ดังนั้น คำถามคือ:
- วิธีค้นหาหรือตำแหน่งที่จะสร้าง kubelet config yaml ที่กล่าวถึง
- ฉันควรระบุระดับใด
แก้ไขคอนเฟอเรนซ์
มูลค่าและ
- รับหลายค่าได้ไหม ฉันกำหนดเนมเซิร์ฟเวอร์สองตัว ควรกำหนดให้เป็นรายการแยกต่างหากหรือเป็นอาร์เรย์