Điểm:0

dịch vụ kubelet không chạy (dao động) trong nút chính Kubernetes

lá cờ gb

Tôi đang cố gắng tạo Cụm Kubernetes bằng kubeadm. Tôi đã khởi động máy chủ Ubuntu 18.04, cài đặt docker (đảm bảo rằng docker.service đang chạy), cài đặt kubeadm kubelet và kubectl.

Sau đây là các bước mà tôi đã làm:

sudo apt-get cập nhật
sudo apt-get cài đặt docker.io -y
sudo systemctl kích hoạt docker
sudo systemctl bắt đầu docker
cuộn tròn -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key thêm
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial chính"
sudo apt-get cài đặt kubeadm kubelet kubectl -y
sudo apt-mark giữ kubeadm kubelet kubectl 
phiên bản kubeadm
hoán đổi âa

Sudo hostnamectl set-hostname master-node
Sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Một lần sau khi tôi chạy Sudo kubeadm init --pod-network-cidr=10.244.0.0/16, tôi gặp lỗi sau:

root@ip-172-31-10-50:/home/ubuntu# Sudo kubeadm init --pod-network-cidr=192.168.0.0/16
[init] Sử dụng phiên bản Kubernetes: v1.23.1
[preflight] Chạy kiểm tra trước chuyến bay
[preflight] Kéo hình ảnh cần thiết để thiết lập cụm Kubernetes
[preflight] Quá trình này có thể mất một hoặc hai phút, tùy thuộc vào tốc độ kết nối internet của bạn
[preflight] Bạn cũng có thể thực hiện hành động này trước bằng cách sử dụng 'kéo hình ảnh cấu hình kubeadm'
[certs] Sử dụng thư mục certificateDir "/etc/kubernetes/pki"
[certs] Sử dụng cơ quan cấp chứng chỉ ca hiện có
[certs] Sử dụng khóa và chứng chỉ apiserver hiện có trên đĩa
[certs] Sử dụng khóa và chứng chỉ apiserver-kubelet-client hiện có trên đĩa
[certs] Sử dụng tổ chức phát hành chứng chỉ front-proxy-ca hiện có
[certs] Sử dụng khóa và chứng chỉ ứng dụng khách-proxy trước hiện có trên đĩa
[certs] Sử dụng tổ chức phát hành chứng chỉ etcd/ca hiện có
[certs] Sử dụng chứng chỉ và khóa máy chủ/etcd hiện có trên đĩa
[certs] Sử dụng khóa và chứng chỉ etcd/peer hiện có trên đĩa
[certs] Sử dụng chứng chỉ và khóa etcd/healthcheck-client hiện có trên đĩa
[certs] Sử dụng khóa và chứng chỉ apiserver-etcd-client hiện có trên đĩa
[certs] Sử dụng khóa "sa" hiện có
[kubeconfig] Sử dụng thư mục kubeconfig "/etc/kubernetes"
[kubeconfig] Sử dụng tệp kubeconfig hiện có: "/etc/kubernetes/admin.conf"
[kubeconfig] Sử dụng tệp kubeconfig hiện có: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Sử dụng tệp kubeconfig hiện có: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Sử dụng tệp kubeconfig hiện có: "/etc/kubernetes/scheduler.conf"
[kubelet-start] Viết tệp môi trường kubelet có cờ vào tệp "/var/lib/kubelet/kubeadm->flags.env"
[kubelet-start] Viết cấu hình kubelet vào tệp "/var/lib/kubelet/config.yaml"
[kubelet-start] Bắt đầu kubelet
[mặt phẳng điều khiển] Sử dụng thư mục kê khai "/etc/kubernetes/manifests"
[control-plane] Tạo bảng kê khai Pod tĩnh cho "kube-apiserver"
[control-plane] Tạo bảng kê khai Pod tĩnh cho "kube-controller-manager"
[control-plane] Tạo bảng kê khai Pod tĩnh cho "kube-scheduler"
[etcd] Tạo tệp kê khai Pod tĩnh cho etcd cục bộ trong "/etc/kubernetes/manifests"
[wait-control-plane] Chờ kubelet khởi động mặt phẳng điều khiển dưới dạng Pod tĩnh từ thư mục "/etc/kubernetes/manifests". Quá trình này có thể mất tới 4m0s
[kubelet-check] Thời gian chờ ban đầu là 40 giây đã qua.
[kubelet-check] Có vẻ như kubelet không chạy hoặc hoạt động bình thường.
[kiểm tra kubelet] Lệnh gọi HTTP bằng 'curl -sSL http://localhost:10248/healthz' không thành công do lỗi: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect : kết nối bị từ chối.

tôi đã cố chạy kubectl init --pod-network-cidr sử dụng CIDR của Flannel(10.244.0.0/16) và cũng CIDR của Calico(192.168.0.0/16). Tuy nhiên, tôi đã nhận được lỗi tương tự.

Ngoài ra, tôi quan sát thấy rằng tình trạng của Kubelet trong trường hợp EC2 của tôi bị dao động. Khi tôi chạy trạng thái systemctl kubelet.service, đôi khi nó không chạy và đôi khi Kubelet đang chạy. Nó xảy ra tự động. Hãy nghĩ rằng đây là những gì thất bại khởi tạo kubectl kể từ kiểm tra kubelet nói rõ ràng: "Có vẻ như kubelet không chạy hoặc hoạt động bình thường"

Sau khi chạy trạng thái systemctl kubelet.service, lỗi:

root@ip-172-31-10-50:/home/ubuntu# systemctl status kubelet.service
â kubelet.service - kubelet: Tác nhân nút Kubernetes
Đã tải: đã tải (/lib/systemd/system/kubelet.service; đã bật; giá trị đặt sẵn của nhà cung cấp: đã bật)
Đăng nhập: /etc/systemd/system/kubelet.service.d
ââ10-kubeadm.conf
Hoạt động: đang kích hoạt (tự động khởi động lại) (Kết quả: mã thoát) kể từ Thứ Tư 2021-12-29 17:52:35 UTC; 3 giây trước
Tài liệu: https://kubernetes.io/docs/home/
Quá trình: 22901 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS (mã=đã thoát, trạng thái=1/THẤT BẠI)
PID chính: 22901 (mã=đã thoát, trạng thái=1/THẤT BẠI)

Và khi tôi tiếp tục chạy trạng thái systemctl kubelet.service, sau vài giây, kubectl.service dường như đang chạy và sau vài giây, nó lại bị lỗi.

...bỏ qua...
â kubelet.service - kubelet: Tác nhân nút Kubernetes
Đã tải: đã tải (/lib/systemd/system/kubelet.service; đã bật; giá trị đặt trước của nhà cung cấp: đã bật)
Đăng nhập: /etc/systemd/system/kubelet.service.d
ââ10-kubeadm.conf
Hoạt động: hoạt động (đang chạy) kể từ Thứ Năm 2021-12-30 18:50:49 UTC; 125 mili giây trước
Tài liệu: https://kubernetes.io/docs/home/
PID chính: 12895 (kubelet)
Nhiệm vụ: 9 (giới hạn: 4686)
Nhóm C: /system.slice/kubelet.service
ââ12895 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf > --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib /kubelet/conf

Tôi không chắc tại sao kubelet lại dao động theo cách này.
Có ai biết làm thế nào để sửa lỗi này?

lá cờ jp
kiểm tra nhật ký để tìm nhật ký `kubelet`
arjunbnair avatar
lá cờ gb
1. Không thể chạy kubelet" err="không thể chạy Kubelet: cấu hình sai: trình điều khiển kubelet cgroup: \"systemd\" khác với trình điều khiển cgroup docker: \"cgroupfs\"" 2. kubelet.service: Quá trình chính đã thoát, mã=đã thoát, trạng thái=1/THẤT BẠI 3. kubelet.service: Không thành công với kết quả 'exit-code'. 4. kubelet.service: Hết thời gian tạm dừng dịch vụ, lên lịch khởi động lại. 5. kubelet.service: Công việc khởi động lại theo lịch trình, bộ đếm khởi động lại ở mức 45. 6. Đã dừng kubelet: Tác nhân nút Kubernetes.
Điểm:1
lá cờ jp

Nhật ký lỗi có câu trả lời của bạn:

không thể chạy Kubelet: cấu hình sai: trình điều khiển cgroup kubelet: "systemd" khác với trình điều khiển cgroup docker: "cgroupfs""

Xem tài liệu Kubernetes về cách định cấu hìnhtrình điều khiển cgroup

arjunbnair avatar
lá cờ gb
Cảm ơn. Điều này đã giúp.
Điểm:0
lá cờ gb

Tôi đã có thể khắc phục sự cố kubelet.service bằng cách chỉnh sửa /etc/systemd/system/kubelet.service.d/10-kubeadm.conf.

Trong tập tin, tôi đã thêm Môi trường="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd" và nhận xét ra Môi trường="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml".

/etc/systemd/system/kubelet.service.d/10-kubeadm.conf để tham khảo:

# Lưu ý: Dropin này chỉ hoạt động với kubeadm và kubelet v1.11+
[Dịch vụ]
Môi trường="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
#Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
Môi trường="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"
# Đây là tệp mà "kubeadm init" và "kubeadm join" tạo ra trong thời gian chạy, tự động điền biến KUBELET_KUBEADM_ARGS
Tệp môi trường=-/var/lib/kubelet/kubeadm-flags.env
# Đây là tệp mà người dùng có thể sử dụng để ghi đè đối số kubelet như là phương sách cuối cùng. Tốt nhất, người dùng nên sử dụng
# thay vào đó, đối tượng .NodeRegistration.KubeletExtraArgs trong tệp cấu hình. KUBELET_EXTRA_ARGS phải được lấy từ tệp này.
Tệp môi trường=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS

Rồi chạy: systemctl daemon-tải lạisystemctl khởi động lại kubelet
Bằng cách này, kubelet.service luôn chạy.

Cảm ơn!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.