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.
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
- 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
- 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ànhRepairing
se - Khi sửa thành công node sẽ về trạng thái
Normal
- 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