Score:0

ข้อผิดพลาด kubelet สถานะติดอยู่ที่ 'ใช้งานอยู่: เปิดใช้งาน (รีสตาร์ทอัตโนมัติ)'

ธง it

ฉันกำลังเผชิญกับสิ่งนี้ ข้อผิดพลาดของคูเบล บนคลัสเตอร์ k8s ของฉันที่เรียกใช้ CentOS 7 ข้อผิดพลาดนี้ปรากฏขึ้นหลังจากที่ฉันรีบูตโหนดคลัสเตอร์เมื่อเร็วๆ นี้ ฉันไม่พบปัญหาที่คล้ายกันก่อนหน้านี้ ฉันจะรีบูตเครื่อง

ฉันพยายามวิ่ง สลับ -a เพื่อปิดใช้งานการสลับ แต่ไม่สามารถแก้ไขปัญหาได้

นี่คือ systemctl สถานะ kubelet -l บันทึก:

[root@test-master ~]# systemctl สถานะ kubelet -l
â kubelet.service - kubelet: ตัวแทนโหนด Kubernetes
   โหลดแล้ว: โหลดแล้ว (/usr/lib/systemd/system/kubelet.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: ปิดใช้งาน)
  ดรอปอิน: /usr/lib/systemd/system/kubelet.service.d
           ââ10-kubeadm.conf
   ใช้งานอยู่: กำลังเปิดใช้งาน (รีสตาร์ทอัตโนมัติ) (ผลลัพธ์: exit-code) ตั้งแต่วันจันทร์ที่ 2022-05-30 13:59:51 +08; 822ms ที่แล้ว
     เอกสาร: https://kubernetes.io/docs/
  กระบวนการ: 9325 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS (รหัส=ออก สถานะ=1/ล้มเหลว)
 PID หลัก: 9325 (รหัส=ออก สถานะ=1/ล้มเหลว)

May 30 13:59:51 test-master kubelet[9325]: Insecure values: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_RC4_128_SHA. (เลิกใช้แล้ว: พารามิเตอร์นี้ควรตั้งค่าผ่านไฟล์ปรับแต่งที่ระบุโดยแฟล็ก --config ของ Kubelet โปรดดู https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ สำหรับข้อมูลเพิ่มเติม)
30 พฤษภาคม 13:59:51 kubelet ทดสอบหลัก [9325]: --tls-min-version string รองรับเวอร์ชัน TLS ขั้นต่ำ ค่าที่เป็นไปได้: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13 (เลิกใช้แล้ว: พารามิเตอร์นี้ควรตั้งค่าผ่านไฟล์ปรับแต่งที่ระบุโดยแฟล็ก --config ของ Kubelet ดู https://kubernetes.io/docs/tasks/administer-cluster/kubelet- config-file/ สำหรับข้อมูลเพิ่มเติม)
30 พฤษภาคม 13:59:51 kubelet ทดสอบหลัก [9325]: --tls-private-key-file string ไฟล์ที่มีการจับคู่คีย์ส่วนตัว x509 --tls-cert-file (เลิกใช้แล้ว: พารามิเตอร์นี้ควรตั้งค่าผ่านไฟล์ปรับแต่งที่ระบุโดยแฟล็ก --config ของ Kubelet โปรดดู https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ สำหรับข้อมูลเพิ่มเติม)
30 พฤษภาคม 13:59:51 kubelet ทดสอบหลัก [9325]: --topology-manager-policy string นโยบาย Topology Manager ที่จะใช้ ค่าที่เป็นไปได้: 'none', 'best-effort', 'restricted', 'single-numa-node' (ค่าเริ่มต้น "ไม่มี") (เลิกใช้แล้ว: พารามิเตอร์นี้ควรตั้งค่าผ่านไฟล์กำหนดค่าที่ระบุโดยแฟล็ก --config ของ Kubelet ดู https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ สำหรับข้อมูลเพิ่มเติม.)
30 พฤษภาคม 13:59:51 kubelet ทดสอบหลัก [9325]: --topology-manager-scope string ขอบเขตที่ใช้คำแนะนำโทโพโลยี Topology Manager รวบรวมคำใบ้จาก Hint Providers และนำไปใช้กับขอบเขตที่กำหนดเพื่อให้แน่ใจว่าการรับเข้าพ็อด ค่าที่เป็นไปได้: 'คอนเทนเนอร์', 'พ็อด' (ค่าเริ่มต้น "คอนเทนเนอร์") (เลิกใช้แล้ว: พารามิเตอร์นี้ควรตั้งค่าผ่านไฟล์กำหนดค่าที่ระบุโดยแฟล็ก --config ของ Kubelet ดู https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ สำหรับข้อมูลเพิ่มเติม.)
30 พฤษภาคม 13:59:51 kubelet ทดสอบหลัก [9325]: -v, --v หมายเลขระดับสำหรับการใช้คำฟุ่มเฟือยระดับบันทึก
30 พฤษภาคม 13:59:51 kubelet ทดสอบหลัก [9325]: --version version[=true] พิมพ์ข้อมูลเวอร์ชันและออก
30 พฤษภาคม 13:59:51 kubelet ทดสอบหลัก [9325]: --vmodule pattern=N,... รายการที่คั่นด้วยเครื่องหมายจุลภาคของการตั้งค่า pattern=N สำหรับการบันทึกไฟล์ที่กรอง (ใช้ได้เฉพาะกับรูปแบบบันทึกข้อความ)
30 พฤษภาคม 13:59:51 kubelet ทดสอบหลัก [9325]: --volume-plugin-dir string เส้นทางแบบเต็มของไดเร็กทอรีที่จะค้นหาปลั๊กอินโวลุ่มบุคคลที่สามเพิ่มเติม (ค่าเริ่มต้น "/usr/libexec/kubernetes/kubelet -plugins/volume/exec/") (เลิกใช้แล้ว: พารามิเตอร์นี้ควรตั้งค่าผ่านไฟล์กำหนดค่าที่ระบุโดยแฟล็ก --config ของ Kubelet โปรดดู https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config -file/ สำหรับข้อมูลเพิ่มเติม)
30 พฤษภาคม 13:59:51 kubelet ทดสอบหลัก [9325]: --volume-stats-agg-period ระยะเวลา ระบุช่วงเวลาสำหรับ kubelet เพื่อคำนวณและแคชการใช้ดิสก์โวลุ่มสำหรับพ็อดและวอลุ่มทั้งหมด หากต้องการปิดใช้งานการคำนวณปริมาตร ให้ตั้งค่าเป็นจำนวนลบ (ค่าเริ่มต้น 1m0s) (เลิกใช้แล้ว: พารามิเตอร์นี้ควรตั้งค่าผ่านไฟล์ปรับแต่งที่ระบุโดยแฟล็ก --config ของ Kubelet ดู https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ สำหรับข้อมูลเพิ่มเติม ข้อมูล.)

นี่คือเนื้อหาของ /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf กล่าวถึงในบันทึกก่อนหน้า:

[root@test-master ~]# cat /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
# หมายเหตุ: dropin นี้ใช้ได้กับ kubeadm และ kubelet v1.11+ เท่านั้น
[บริการ]
สภาพแวดล้อม = "KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
สภาพแวดล้อม = "KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# นี่คือไฟล์ที่ "kubeadm init" และ "kubeadm join" สร้างขึ้นที่รันไทม์ เติมตัวแปร KUBELET_KUBEADM_ARGS แบบไดนามิก
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# นี่คือไฟล์ที่ผู้ใช้สามารถใช้เพื่อแทนที่ kubelet args เป็นทางเลือกสุดท้าย ผู้ใช้ควรใช้
# วัตถุ .NodeRegistration.KubeletExtraArgs ในไฟล์การกำหนดค่าแทน KUBELET_EXTRA_ARGS ควรมาจากไฟล์นี้
EnvironmentFile=-/etc/sysconfig/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS

ฉันได้ลองเพิ่ม สภาพแวดล้อม = "KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --fail-swap-on=false" ไปยังไฟล์ที่กล่าวถึง ที่นี่ พร้อมด้วย systemctl daemon-โหลดซ้ำ และ systemctl รีสตาร์ท kubelet แต่มันไม่ได้ช่วย

ขออภัย ฉันไม่แน่ใจเกี่ยวกับเวอร์ชันของเซิร์ฟเวอร์ แต่ควรเป็นเวอร์ชันเดียวกับของฉัน เวอร์ชันไคลเอนต์ [v1.23.3].

[root@test-master ~]# เวอร์ชัน kubectl
เวอร์ชันไคลเอนต์: version.Info{ เมเจอร์:"1", รอง:"23", GitVersion:"v1.23.3", GitCommit:"816c97ab8cff8a1c72eccca1026f7820e93e0d25", GitTreeState:"สะอาด", BuildDate:"2022-01-25T21:25: 17Z", GoVersion:"go1.17.6", คอมไพเลอร์:"gc", แพลตฟอร์ม:"linux/amd64"}
การเชื่อมต่อกับเซิร์ฟเวอร์ 10.17.98.171:6443 ถูกปฏิเสธ - คุณระบุโฮสต์หรือพอร์ตที่ถูกต้องหรือไม่

มีวิธีใดบ้างที่ฉันสามารถกอบกู้คลัสเตอร์ของฉันโดยไม่ต้องรีเซ็ตคลัสเตอร์ทั้งหมด ฉันหวังว่าฉันจะสามารถเข้าถึงการปรับใช้ของฉันก่อนหน้านี้ที่ทำงานอยู่ในคลัสเตอร์


อัปเดต:

ฉันพยายามค้นหาข้อความแสดงข้อผิดพลาดในบันทึกโดยใช้ วารสารctl -fu kubelet และนี่คือสิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้

31 พฤษภาคม 08:58:12 test-master systemd[1]: kubelet.service หมดเวลาแล้ว กำลังตั้งเวลารีสตาร์ท
31 พฤษภาคม 08:58:12 test-master systemd[1]: หยุด kubelet: ตัวแทนโหนด Kubernetes
31 พฤษภาคม 08:58:12 test-master systemd[1]: เริ่ม kubelet: Kubernetes Node Agent
31 พฤษภาคม 08:58:12 kubelet ทดสอบหลัก [5280]: ข้อผิดพลาด: ไม่สามารถแยกวิเคราะห์การตั้งค่าสถานะ kubelet: การตั้งค่าสถานะที่ไม่รู้จัก: --network-plugin

นอกจากนี้นี่คือของฉัน รุ่นของ kubelet Kubernetes v1.24.1.

ดูเหมือนว่าจะเกี่ยวข้องกับปัญหานี้ใน GitHub https://github.com/kubernetes/website/issues/33640.

Joe S avatar
it flag
@SYN ขอบคุณสำหรับคำแนะนำที่ช่วยให้ฉันตีกรอบปัญหาให้แคบลง
SYN avatar
hk flag
SYN
ไม่สามารถเข้าถึง kubernetes API ตาม "เวอร์ชัน kubectl" ของคุณ ตรวจสอบบริการ Kubernetes API (หรือพ็อด) จากนั้นตรวจสอบ "journalctl -fu kubelet" ซึ่งจะบอกได้มากกว่า systemctl status kubelet ที่คุณแชร์จนถึงตอนนี้ จะมีบันทึกจำนวนมาก มองหาคำนำหน้า "E" (ข้อผิดพลาด)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา