- Cơ sở dữ liệu (Databases), là một bộ sản phẩm cơ sở dữ liệu được
1.5.2. Tính năng tự động scale up và scale down
Với GKE xử lý các tình huống tự động co dãn (autoscaling) bằng cách sử dụng các tính năng như sau:
Cơng cụ co dãn theo chiều ngang (Horizontal Pod Autoscaler - HPA):
- Tính năng tự động điều chỉnh Pod theo chiều ngang (HPA) dành cho các ứng dụng mở rộng quy mô đang chạy trong Pod dựa trên các chỉ số thể hiện tải (Hình 1.7).
Ta có thể định cấu hình mức sử dụng CPU hoặc các số liệu tùy chỉnh khác (ví dụ: yêu cầu mỗi giây). Tóm lại, HPA thêm và xóa các bản sao của Pods và nó phù hợp nhất cho những worker node có thể phản ứng với mức tăng đột biến sử dụng và tắt một cách nhẹ nhàng để tránh sự bất ổn của khối lượng cơng việc.
Hình 1.7. Hình ảnh mơ tả cơng cụ co dãn theo chiều ngang trên kubernetes.
- Như Hình 1.7 cho thấy, HPA yêu cầu ngưỡng sử dụng mục tiêu, được biểu thị bằng tỷ lệ phần trăm, cho phép ta tùy chỉnh thời điểm tự động kích hoạt tỷ lệ. Trong ví dụ này, mức sử dụng CPU mục tiêu là 70%. Điều đó có nghĩa là khối lượng cơng việc của ta có bộ đệm CPU 30% để xử lý các yêu cầu trong khi các bản sao mới đang quay vòng. Một bộ đệm nhỏ ngăn chặn việc mở rộng quy mơ sớm, nhưng nó có thể làm ứng dụng của ta quá tải trong thời gian tăng đột biến. Tuy nhiên, một bộ đệm lớn gây lãng phí tài nguyên, làm tăng chi phí của bạn. Mục tiêu chính xác là ứng dụng cụ thể và ta phải xem kích thước bộ đệm là đủ để xử lý các yêu cầu trong hai hoặc ba phút trong thời gian tăng đột biến. Ngay cả khi ta đảm bảo rằng ứng dụng của mình có thể khởi động trong vài giây, ta cần thêm thời gian này khi Cluster Autoscaler thêm các node mới vào cụm của ta hoặc khi các Pod bị điều chỉnh do thiếu tài nguyên.
- Không giống như HPA, thêm và xóa các bản sao Pod để phản ứng nhanh với mức tăng đột biến sử dụng, Vertical Pod Autoscaler (VPA) quan sát các Pod theo thời gian và dần dần tìm ra tài nguyên CPU và bộ nhớ tối ưu theo yêu cầu của các Pod (Hình 1.8). Việc thiết lập các nguồn lực phù hợp là rất quan trọng đối với sự ổn định và hiệu quả chi phí. Nếu tài nguyên Pod của ta quá nhỏ, ứng dụng của ta có thể bị điều chỉnh hoặc có thể bị lỗi do lỗi hết bộ nhớ. Nếu nguồn lực của ta q lớn, ta sẽ lãng phí và do đó, các hóa đơn sẽ lớn hơn. VPA dành cho khối lượng công việc không trạng thái và trạng thái không được HPA xử lý hoặc khi ta khơng biết các u cầu tài ngun Pod thích hợp.
Hình 1.8. Hình ảnh mơ tả cơng cụ co dãn theo chiều dọc trên kubernetes.
Cluster Autoscaler
Cluster Autoscaler (CA) tự động thay đổi kích thước cơ sở hạ tầng máy tính bên dưới. CA cung cấp các node cho các pod khơng có chỗ để chạy trong cụm và
loại bỏ các node chưa được sử dụng. CA được tối ưu hóa cho chi phí của cơ sở hạ tầng (Hình 1.8). Nói cách khác, nếu có hai hoặc nhiều loại nút trong cụm, CA chọn loại ít tốn kém nhất phù hợp với nhu cầu nhất định.
Không giống như HPA và VPA, CA không phụ thuộc vào số liệu tải. Thay vào đó, nó dựa trên mô phỏng lập lịch và các yêu cầu Pod đã khai báo. Cách tốt nhất là bật CA bất cứ khi nào ta đang sử dụng HPA hoặc VPA. Phương pháp này đảm bảo rằng nếu bộ phân tích tự động Pod của ta xác định rằng ta cần thêm dung lượng, thì cơ sở hạ tầng cơ bản của ta sẽ phát triển tương ứng.
Hình 1.9. Hình ảnh mơ tả Cluster Autoscaler trên GKE.
PodDisruptBudget
- Nhãn .spec.selector để chỉ định tập hợp các nhóm mà nó áp dụng. Trường này là bắt buộc.
- .spec.minAvailable là mơ tả về số lượng nhóm từ tập hợp đó vẫn phải có sau khi trục xuất, ngay cả khi khơng có nhóm bị loại bỏ. minAvailable có thể là số tuyệt đối hoặc tỷ lệ phần trăm.
- .spec.maxUnavailable (có sẵn trong Kubernetes 1.7 trở lên) là mơ tả về số lượng nhóm từ tập hợp đó có thể khơng khả dụng sau khi trục xuất. Nó có thể là một số tuyệt đối hoặc một tỷ lệ phần trăm.