Tự động sửa chữa worker node bị hỏng

Các điều kiện kích hoạt auto repair

BKE sẽ quyết định việc sử dụng các task auto repair dựa trên trạng thái của worker node (condition). Có thể tự kiểm tra trạng thái của worker node sử dụng lệnh kubectl describe node và kiểm tra giá trị của condition

Các điều kiện được mô tả trong bảng sau:

Check Item Description Severity Threshold Fix Test case
KubeletUnhealthy Containerd stops running and the node is unavailable. High 1. 90s
2. 120s
3. 180s
1. Restart kubelet
2. Reboot nodes
3. Recycle node
1. Stop kubelet
2-3. remove kubelet service and stop kubelet
ContainerdUnhealthy Containerd stops running and the node is unavailable. High 1. 90s
2. 120s
3. 180s
1. Restart kubelet
2. Reboot nodes
3. Recycle node
1. Stop containerd
2-3. remove containerd service and stop containerd"
SystemdIsUnresponsive Systemd is in an abnormal state and cannot launch or destroy containers. High 1. 90s
2. 120s
1. Reboot
2. Recycle
Remove systemd
NodeHasPIDPressure Kubernetes cluster node experiences PID pressure, meaning that it may not be able to start more containers. High 1. 90s
2. 120s
1. Reboot
2. Recycle
Flood process ID
OpenVPN Failed Worker Openvpn client cannot connect to OpenVPN server High 1. 60s 1. Restart OpenVPN service Stop openvpn client
ReadonlyFilesystem The node file system becomes read-only. High 1. 90s 1. Reboot Tạo 1 message giả trong /var/log/journal có nội dung Remounting filesystem read-only

Quy trình sửa chữa

Tính năng tự động sửa chữa bao gồm các giai đoạn sau: chẩn đoán các node, xác định xem có kích hoạt tự động sửa chữa hay không và chạy các tác vụ sửa chữa tự động.

Untitled

Trong quá trình sửa chữa, node sẽ chuyển giữa các trạng thái sau

  • Normal: Node hoạt động ở trạng thái bình thường
  • Error: Node đang gặp lỗi
  • Repairing: Node đang trong tình trạng sửa chữa
  • Fail to repair: Node thất bại trong việc sửa chữa
  1. Nếu node rơi vào trạng thái bất thường và đạt tới ngưỡng thời gian, BKE sẽ quyết định đưa trạng thái node thành Error
  2. Sau khi node rơi vào trạng thái Error, BKE sẽ thực hiện các tác vụ tự động sửa chữa và chuyển trạng thái thành Repairingse
  3. Khi sửa thành công node sẽ về trạng thái Normal
  4. Nếu sau tất cả lần sửa thất bại thì sẽ chuyển sang trạng thái Failed to Recover và gửi thông tin về bộ phận hỗ trợ

Lưu ý:

  • Không xóa daemonset node-problem-detector được cài sẵn trong cụm, nếu không thì sẽ không thể sử dụng được tính năng này
  • Nếu lỗi xảy ra trên nhiều node trong cụm, BKE sẽ chạy