Kiến trúc cluster
Phân bổ tài nguyên worker node
Trong một worker node, ngoài container workload (các ứng dụng được triển khai lên cluster), các thành phần của Bizfly Kubernetes Engine và các thành phần của Kubernetes (vd: kubelet) cần (reserve) một lượng tài nguyên (cpu/memory) nhất định để thực hiện các tác vụ của chúng.
Do vậy, bạn sẽ thấy sự chênh lệch tài nguyên giữa Capacity (cấu hình thực tế của worker node) và Allocatable (lượng tài nguyên khả dụng trong Kubernetes Engine cluster). Worker node cấu hình càng cao thì thường chạy nhiều workload hơn, và sẽ yêu cầu nhiều tài nguyên hơn cho các thành phần của Kubernetes.
Để kiểm tra lượng tài nguyên có thể sử dụng cho một worker node hãy thực hiện lệnh sau, thay thế NODE_NAME bằng tên node bạn muốn kiểm tra:
kubectl describe node NODE_NAME | grep Allocatable -B 7 -A 6
Kết quả cho thấy lượng tài nguyên thực tế của worker node Capacity và lượng tài nguyên có thể sử dụng Allocatable
Ví dụ worker node có cấu hình 2 vCPUs và 2 GiB Memory
Capacity:
cpu: 2
ephemeral-storage: 51558604Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 2041040Ki
pods: 110
Allocatable:
cpu: 1930m
ephemeral-storage: 47516409368
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 1428688Ki
pods: 110
Eviction threshold
Kubelet dựa vào ngưỡng Eviction threshold để quyết định khi nào thì node được coi là đang quá tải và thực hiện terminate các pods để giảm tải cho worker node.
Eviction threshold đối với Memory ở mức mặc định là 100MiB
Allocatable resources được tính toán theo công thức sau:
ALLOCATABLE = CAPACITY - RESERVED - EVICTION-THRESHOLD
RESERVED CPU được tính theo công thức sau:
-
6% của core đầu tiên
-
1% của core tiếp theo (tối đa 2 cores)
-
0.5% của 2 core tiếp theo (tối đa 4 cores)
-
0.25% của phần core còn lại ngoài 4 cores trên
RESERVED Memory được tính theo công thức sau:
-
255 MiB với node có ít hơn 1 GB Memory
-
25% của 4 GiB memory đầu tiên
-
20% của 4 GiB memory tiếp theo (tối đa 8 GiB)
-
10% của 8 GiB memory tiếp theo (tối đa 16 GiB)
-
6% của 112 GiB memory tiếp theo (tối đa 128 GiB)
-
2% của phần memory còn lại ngoài 128 GiB trên