Kubernetes Pod Quality of Service (QoS)
Table of contents
Khi triển khai một pod, Kubernetes chỉ định một QoS class tới các pod dựa trên các request và các tham số về giới hạn.
Pod Quality of Service là gì? (QoS)
Kubernetes pod lập lịch dựa trên giá trị request để đảm bảo node được lập lịch có đủ tài nguyên cần thiết để chạy được pod.
Tuy nhiên một node có thể bị quá tải (overcommitted) nếu các pod cố sử dụng mọi phạm vi giới hạn của nó nhiều hơn số tài nguyên khả dụng của node.
Khi các pod trên node cố gắng sử dụng các tài nguyên không khả dụng trên node, Kubernetes sẽ dùng QoS class để định nghĩa pod nào sẽ phải exit trước.
Có ba loại Pod QoS:
Best effort
Pod sẽ ở trong best-effort class nếu bạn không chỉ định bất kì request hay limit nào về CPU/RAM. Best-effort pod là các pod ưu tiên thấp. Best effort pod sẽ bị kill đầu tiên nếu node hết tài nguyên.
Burstable
Nếu bạn đặt request thấp hơn limit, pod sẽ ở trong burstable class. Nếu node hết tài nguyên, burstable pod sẽ bị kill nếu không còn best-effort pod nào hoạt động.
Guaranteed
The pod gets a guaranteed class if the request and limit values are the same. It is considered the highest priority pod and gets killed if there are no best-effort or burstable pods.
Pod trong guaranteed class nếu giá trị request và limit bằng nhau. Đây là các pod ưu tiên cao nhất và sẽ bị kill nếu không còn best-effort hay burstable pod nào hoạt động nữa.
Để tìm hiểu rõ hơn bạn hãy tham khảo bài viết sau: