ฉันกำลังพยายามตั้งค่าคลัสเตอร์ Kubernetes ในชุดของ raspberry pi 4s ฉันพบปัญหาที่ kubelet ล้มเหลวเมื่อเรียกใช้คำสั่ง kubeadm init
I0205 12:29:52.930582 5348 local.go:65] [etcd] เขียนรายการ Pod แบบคงที่สำหรับสมาชิก etcd ในเครื่องเป็น "/etc/kubernetes/manifests/etcd.yaml"
I0205 12:29:52.930638 5348 waitcontrolplane.go:91] [wait-control-plane] รอให้เซิร์ฟเวอร์ API ทำงานได้ดี
[wait-control-plane] กำลังรอให้ kubelet บูตเครื่องควบคุมเป็น Pods แบบคงที่จากไดเร็กทอรี "/etc/kubernetes/manifests" อาจใช้เวลาถึง 4m0 วินาที
[kubelet-check] หมดเวลาเริ่มต้น 40 วินาที
[kubelet-check] ดูเหมือนว่า kubelet ไม่ทำงานหรือมีสุขภาพดี
[kubelet-check] การเรียก HTTP เท่ากับ 'curl -sSL http://localhost:10248/healthz' ล้มเหลวโดยมีข้อผิดพลาด: รับ "http://localhost:10248/healthz": หมุน tcp [::1]:10248 : เชื่อมต่อ: การเชื่อมต่อถูกปฏิเสธ
[kubelet-check] ดูเหมือนว่า kubelet ไม่ทำงานหรือมีสุขภาพดี
[kubelet-check] การเรียก HTTP เท่ากับ 'curl -sSL http://localhost:10248/healthz' ล้มเหลวโดยมีข้อผิดพลาด: รับ "http://localhost:10248/healthz": หมุน tcp [::1]:10248 : เชื่อมต่อ: การเชื่อมต่อถูกปฏิเสธ
[kubelet-check] ดูเหมือนว่า kubelet ไม่ทำงานหรือมีสุขภาพดี
[kubelet-check] การเรียก HTTP เท่ากับ 'curl -sSL http://localhost:10248/healthz' ล้มเหลวโดยมีข้อผิดพลาด: รับ "http://localhost:10248/healthz": หมุน tcp [::1]:10248 : เชื่อมต่อ: การเชื่อมต่อถูกปฏิเสธ
[kubelet-check] ดูเหมือนว่า kubelet ไม่ทำงานหรือมีสุขภาพดี
[kubelet-check] การเรียก HTTP เท่ากับ 'curl -sSL http://localhost:10248/healthz' ล้มเหลวโดยมีข้อผิดพลาด: รับ "http://localhost:10248/healthz": หมุน tcp [::1]:10248 : เชื่อมต่อ: การเชื่อมต่อถูกปฏิเสธ
[kubelet-check] ดูเหมือนว่า kubelet ไม่ทำงานหรือมีสุขภาพดี
[kubelet-check] การเรียก HTTP เท่ากับ 'curl -sSL http://localhost:10248/healthz' ล้มเหลวโดยมีข้อผิดพลาด: รับ "http://localhost:10248/healthz": หมุน tcp [::1]:10248 : เชื่อมต่อ: การเชื่อมต่อถูกปฏิเสธ
ขออภัย เกิดข้อผิดพลาด:
หมดเวลารอตามเงื่อนไข
ข้อผิดพลาดนี้น่าจะเกิดจาก:
- คูเบเลตไม่ทำงาน
- kubelet ไม่แข็งแรงเนื่องจากการกำหนดค่าโหนดผิดพลาดในทางใดทางหนึ่ง (ปิดใช้งาน cgroups ที่จำเป็น)
หากคุณอยู่บนระบบที่ขับเคลื่อนด้วย systemd คุณสามารถลองแก้ไขข้อผิดพลาดด้วยคำสั่งต่อไปนี้:
- 'สถานะ systemctl kubelet'
- 'วารสาร -xeu kubelet'
นอกจากนี้ ส่วนประกอบของระนาบควบคุมอาจขัดข้องหรือออกเมื่อเริ่มทำงานโดยคอนเทนเนอร์รันไทม์
หากต้องการแก้ปัญหา ให้แสดงรายการคอนเทนเนอร์ทั้งหมดโดยใช้ CLI รันไทม์ของคอนเทนเนอร์ที่คุณต้องการ
ต่อไปนี้คือตัวอย่างวิธีแสดงรายการคอนเทนเนอร์ Kubernetes ทั้งหมดที่ทำงานในนักเทียบท่า:
- 'นักเทียบท่า ps -a | เกรปคูเบะ | grep -v หยุดชั่วคราว'
เมื่อคุณพบคอนเทนเนอร์ที่ล้มเหลวแล้ว คุณสามารถตรวจสอบบันทึกด้วย:
- 'บันทึกนักเทียบท่า CONTAINERID'
เริ่มต้นคลัสเตอร์ Kubernetes ไม่ได้
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/init.runWaitControlPlanePhase
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/init/waitcontrolplane.go:118
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).Run.func1
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:234
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).visitAll
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:421
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).เรียกใช้
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:207
k8s.io/kubernetes/cmd/kubeadm/app/cmd.newCmdInit.func1
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go:153
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).execute
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:856
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:974
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).Execute
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:902
k8s.io/kubernetes/cmd/kubeadm/app.Run
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/kubeadm.go:50
main.main
_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/kubeadm.go:25
runtime.main
/usr/local/go/src/runtime/proc.go:255
runtime.goexit
/usr/local/go/src/runtime/asm_arm.s:838
ขั้นตอนการดำเนินการผิดพลาด รอ-ควบคุม-ระนาบ
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).Run.func1
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:235
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).visitAll
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:421
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).เรียกใช้
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:207
k8s.io/kubernetes/cmd/kubeadm/app/cmd.newCmdInit.func1
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go:153
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).execute
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:856
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:974
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).Execute
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:902
k8s.io/kubernetes/cmd/kubeadm/app.Run
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/kubeadm.go:50
main.main
_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/kubeadm.go:25
runtime.main
/usr/local/go/src/runtime/proc.go:255
runtime.goexit
/usr/local/go/src/runtime/asm_arm.s:838
วารสาร -xeu kubelet ส่งคืนสิ่งต่อไปนี้
kubelet[6145]: แฟล็ก --network-plugin เลิกใช้แล้ว จะถูกลบออกพร้อมกับนักเทียบท่า
kubelet[6145]: แฟล็ก --network-plugin เลิกใช้แล้ว จะถูกลบออกพร้อมกับนักเทียบท่า
kubelet[6145]: I0205 12:30:42.432739 6145 server.go:446] "เวอร์ชัน Kubelet" kubeletVersion="v1.23.3"
kubelet[6145]: I0205 12:30:42.434017 6145 server.go:874] "การหมุนเวียนไคลเอ็นต์เปิดอยู่ จะบูตสแตรปในเบื้องหลัง"
kubelet[6145]: I0205 12:30:42.439452 6145 certificate_store.go:130] กำลังโหลดคู่ใบรับรอง/คีย์จาก "/var/lib/kubelet/pki/kubelet-client-current.pem"
kubelet[6145]: I0205 12:30:42.442739 6145 dynamic_cafile_content.go:156] "ตัวควบคุมการเริ่มต้น" name="client-ca-bundle::/etc/kubernetes/pki/ca.crt"
kubelet[6145]: W0205 12:30:42.442919 6145 manager.go:159] ตรวจไม่พบ cgroup ปัจจุบันบน cgroup v2
kubelet[6145]: W0205 12:30:42.661741 6145 sysinfo.go:203] โทโพโลยีของโหนดไม่พร้อมใช้งาน ให้โทโพโลยี CPU
kubelet[6145]: W0205 12:30:42.663764 6145 machine.go:65] ไม่สามารถอ่านรหัสผู้ขายได้อย่างถูกต้อง ตั้งค่าว่างไว้
kubelet[6145]: I0205 12:30:42.666660 6145 server.go:693] "--cgroups-per-qos เปิดใช้งาน แต่ไม่ได้ระบุ --cgroup-root ค่าเริ่มต้นเป็น /"
kubelet[6145]: I0205 12:30:42.667641 6145 container_manager_linux.go:281] "ตัวจัดการคอนเทนเนอร์ตรวจสอบผู้ใช้ที่ระบุ cgroup-root อยู่แล้ว" cgroupRoot=[]
kubelet[6145]: I0205 12:30:42.667940 6145 container_manager_linux.go:286] "การสร้างวัตถุตัวจัดการคอนเทนเนอร์ตามการกำหนดค่าโหนด" nodeConfig={RuntimeCgroupsName: SystemCgroups>
kubelet[6145]: I0205 12:30:42.668146 6145 topology_manager.go:133] "การสร้างตัวจัดการโทโพโลยีด้วยนโยบายต่อขอบเขต" topologyPolicyName="none" topologyScopeName="container"
kubelet[6145]: I0205 12:30:42.668188 6145 container_manager_linux.go:321] "กำลังสร้างตัวจัดการปลั๊กอินของอุปกรณ์" devicePluginEnabled=true
kubelet[6145]: I0205 12:30:42.668256 6145 state_mem.go:36] "เริ่มต้นที่เก็บสถานะในหน่วยความจำใหม่"
kubelet[6145]: I0205 12:30:42.668448 6145 kubelet.go:313] "เลิกใช้ dockershim แล้ว โปรดพิจารณาการใช้ CRI แบบสมบูรณ์"
kubelet[6145]: I0205 12:30:42.668635 6145 client.go:80] "กำลังเชื่อมต่อกับนักเทียบท่าบน dockerEndpoint" endpoint="unix:///var/run/docker.sock"
kubelet[6145]: I0205 12:30:42.668699 6145 client.go:99] "เริ่มไคลเอ็นต์นักเทียบท่าด้วยการหมดเวลาคำขอ" timeout="2m0s"
kubelet[6145]: I0205 12:30:42.705426 6145 docker_service.go:571] "ตั้งค่าโหมด Hairpin แต่ kubenet ไม่ได้เปิดใช้งาน ถอยกลับไปที่ HairpinVeth" hairpinMode=promiscuous-bridge
kubelet[6145]: I0205 12:30:42.705510 6145 docker_service.go:243] "Hairpin mode is set" hairpinMode=hairpin-veth
kubelet[6145]: I0205 12:30:42.705832 6145 cni.go:240] "ไม่สามารถอัปเดตการกำหนดค่า cni" err="ไม่พบเครือข่ายใน /etc/cni/net.d"
kubelet[6145]: I0205 12:30:42.712758 6145 cni.go:240] "ไม่สามารถอัปเดตการกำหนดค่า cni" err="ไม่พบเครือข่ายใน /etc/cni/net.d"
kubelet[6145]: I0205 12:30:42.712950 6145 docker_service.go:258] "เครือข่าย Docker cri จัดการโดยปลั๊กอินเครือข่าย" networkPluginName="cni"
kubelet[6145]: I0205 12:30:42.713256 6145 cni.go:240] "ไม่สามารถอัปเดตการกำหนดค่า cni" err="ไม่พบเครือข่ายใน /etc/cni/net.d"
kubelet[6145]: I0205 12:30:42.750856 6145 docker_service.go:264] "ข้อมูลนักเทียบท่า" dockerInfo=&{ID:GLFU:JW22:MA7Q:YPYL:UDSW:E4EC:G2M3:QSBM:G7YC:S2YF:YT6I: คอนเทนเนอร์ J34B:0 คอนเทนเนอร์>
kubelet[6145]: I0205 12:30:42.750943 6145 docker_service.go:279] "การตั้งค่า cgroupDriver" cgroupDriver="systemd"
kubelet[6145]: I0205 12:30:42.824353 6145 kubelet.go:416] "กำลังพยายามซิงค์โหนดกับเซิร์ฟเวอร์ API"
kubelet[6145]: I0205 12:30:42.824406 6145 kubelet.go:278] "การเพิ่มเส้นทางพ็อดแบบคงที่" path="/etc/kubernetes/manifests"
kubelet[6145]: I0205 12:30:42.824521 6145 kubelet.go:289] "กำลังเพิ่มแหล่งพ็อด apiserver"
kubelet[6145]: I0205 12:30:42.824593 6145 apiserver.go:42] "กำลังรอการซิงค์โหนดก่อนที่จะดู apiserver pods"
kubelet[6145]: W0205 12:30:42.827626 6145 reflector.go:324] k8s.io/client-go/informers/factory.go:134: ไม่สามารถแสดงรายการ *v1.Node: รับ "https://192.168. 1.53:6443/api/v1/nodes?fiel>
kubelet[6145]: E0205 12:30:42.828345 6145 reflector.go:138] k8s.io/client-go/informers/factory.go:134: ไม่สามารถรับชม *v1.Node: ไม่สามารถแสดงรายการ *v1.Node: รับ "https://192.168.1>
kubelet[6145]: W0205 12:30:42.829064 6145 reflector.go:324] k8s.io/client-go/informers/factory.go:134: ไม่สามารถแสดงรายการ *v1.Service: รับ "https://192.168. 1.53:6443/api/v1/service>
kubelet[6145]: E0205 12:30:42.829173 6145 reflector.go:138] k8s.io/client-go/informers/factory.go:134: ไม่สามารถรับชม *v1.Service: ไม่สามารถแสดงรายการ *v1.Service: รับ "https://192>
kubelet[6145]: I0205 12:30:42.866086 6145 kuberuntime_manager.go:248] "คอนเทนเนอร์รันไทม์เริ่มต้น" containerRuntime="docker" version="20.10.12" apiVersion="1.41.0"
kubelet[6145]: I0205 12:30:42.867183 6145 server.go:1231] "เริ่ม kubelet"
kubelet[6145]: I0205 12:30:42.867659 6145 server.go:150] "กำลังเริ่มฟัง" address="0.0.0.0" port=10250
kubelet[6145]: E0205 12:30:42.869415 6145 kubelet.go:1351] "การรวบรวมขยะรูปภาพล้มเหลวเพียงครั้งเดียว การเริ่มต้นสถิติอาจยังไม่เสร็จสมบูรณ์" err="ล้มเหลวในการรับ imageFs ใน>
kubelet[6145]: E0205 12:30:42.869315 6145 event.go:276] ไม่สามารถเขียนเหตุการณ์: '&v1.Event{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta {ชื่อ:"pi-kube-m>
kubelet[6145]: I0205 12:30:42.869879 6145 server.go:410] "การเพิ่มตัวจัดการการดีบักไปยังเซิร์ฟเวอร์ kubelet"
kubelet[6145]: I0205 12:30:42.871657 6145 fs_resource_analyzer.go:67] "กำลังเริ่ม FS ResourceAnalyzer"
kubelet[6145]: I0205 12:30:42.873710 6145 volume_manager.go:291] "กำลังเริ่มต้น Kubelet Volume Manager"
kubelet[6145]: I0205 12:30:42.875471 6145 Desire_state_of_world_populator.go:147] "populator สถานะที่ต้องการเริ่มทำงาน"
kubelet[6145]: E0205 12:30:42.880669 6145 controller.go:144] ล้มเหลวในการตรวจสอบการเช่าที่มีอยู่ จะลองอีกครั้งใน 200ms ข้อผิดพลาด: รับ "https://192.168.1.53:6443/apis/coordination.k8s.io />
kubelet[6145]: W0205 12:30:42.887766 6145 reflector.go:324] k8s.io/client-go/informers/factory.go:134: ไม่สามารถแสดงรายการ *v1.CSIDriver: รับ "https://192.168. 1.53:6443/apis/storage>
kubelet[6145]: E0205 12:30:42.888790 6145 reflector.go:138] k8s.io/client-go/informers/factory.go:134: ไม่สามารถดู *v1.CSIDriver: ไม่สามารถแสดงรายการ *v1.CSIDriver: รับ "https:/>
kubelet[6145]: E0205 12:30:42.934490 6145 kubelet.go:2347] "เครือข่ายรันไทม์คอนเทนเนอร์ไม่พร้อม" networkReady="NetworkReady=false เหตุผล:NetworkPluginNotReady ข้อความ:docker: ปลั๊กอินเครือข่ายไม่พร้อม: cni config ไม่ได้กำหนดค่าเริ่มต้น"
kubelet[6145]: E0205 12:30:42.974631 6145 kubelet.go:2422] "ข้อผิดพลาดในการรับโหนด" err="ไม่พบโหนด \"pi-kube-master\"
kubelet[6145]: I0205 12:30:42.980188 6145 kubelet_network_linux.go:57] "กฎ iptables ของโปรโตคอลที่เริ่มต้น" โปรโตคอล = IPv4
kubelet[6145]: I0205 12:30:43.046659 6145 kubelet_node_status.go:70] "กำลังพยายามลงทะเบียนโหนด" node="pi-kube-master"
kubelet[6145]: E0205 12:30:43.048340 6145 kubelet_node_status.go:92] "ไม่สามารถลงทะเบียนโหนดกับเซิร์ฟเวอร์ API" err="โพสต์ \"https://192.168.1.53:6443/api/v1/nodes\" : กด tcp 19>
kubelet[6145]: ตื่นตระหนก: การดำเนินการปรมาณู 64 บิตที่ไม่ได้จัดแนว
kubelet [6145]: goroutine 380 [กำลังทำงาน]:
kubelet [6145]: รันไทม์/ภายใน/atomic.panicUnaligned()
kubelet [6145]: /usr/local/go/src/runtime/internal/atomic/unaligned.go:8 +0x24
kubelet [6145]: รันไทม์/ภายใน/atomic.Load64(0x857016c)
kubelet [6145]: /usr/local/go/src/runtime/internal/atomic/atomic_arm.s:286 +0x14
kubelet[6145]: k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager.(*containerData).updateStats(0x8570000)
kubelet[6145]: /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager/container.go:676 +0x438
kubelet[6145]: k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager.(*containerData).housekeepingTick(0x8570000, 0x8535500, 0x5f5e100)
kubelet[6145]: /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager/container.go:587 +0x104
kubelet[6145]: k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager.(*containerData).แม่บ้านทำความสะอาด(0x8570000)
kubelet[6145]: /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager/container.go:535 +0x3bc
kubelet[6145]: สร้างโดย k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager.(*containerData).Start
kubelet[6145]: /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager/container.go:122 +0x2c
systemd[1]: kubelet.service: ออกจากกระบวนการหลักแล้ว, รหัส=ออกแล้ว, สถานะ=2/INVALIDARGUMENT
ฉันเห็นการเชื่อมต่อถูกปฏิเสธที่พอร์ต 6443 แม้ว่าจะไม่เห็นปัญหาเกี่ยวกับ iptables หรือเห็นบริการที่รับฟังบนพอร์ตนั้น ฉันยังไม่เห็นว่าคอนเทนเนอร์ใดเริ่มต้นเช่นกัน