Overview về Tính năng Suspend Sun Container Service¶
1. Giới thiệu tổng quát¶
Tính năng Suspend cho phép người dùng tạm dừng hoạt động của các workloads trong hệ thống Kubernetes bằng cách scale down số lượng replicas của các deployments về 0. Khi kích hoạt Suspend, tất cả các instances của workload sẽ bị dừng, nhưng cấu hình vẫn được giữ nguyên. Điều này giúp người dùng giảm tài nguyên sử dụng mà không mất dữ liệu hoặc thông tin cấu hình, cho phép khởi động lại workloads khi cần thiết.
Khi giảm số replicas về 0, Sun Container Service sẽ dừng tất cả các instances đang chạy của workloads, nhưng vẫn giữ nguyên cấu hình. Điều này cho phép người dùng khởi động lại workload bất kỳ lúc nào bằng cách tăng số replicas trở lại.
Tính năng này được thiết kế để tối ưu hóa tài nguyên và hỗ trợ bảo trì hệ thống một cách an toàn, đặc biệt trong các tình huống không yêu cầu workloads hoạt động liên tục.
2. Use Case áp dụng¶
2.1. Tiết kiệm tài nguyên trong các giai đoạn không hoạt động¶
Tình huống áp dụng:
Một dịch vụ chỉ hoạt động vào các khung giờ cố định (ví dụ: hệ thống xử lý báo cáo cuối ngày).
Một môi trường thử nghiệm hoặc phát triển không cần chạy liên tục, chỉ kích hoạt khi có yêu cầu.
Phân tích tác dụng:
Giảm chi phí vận hành: Tính năng Suspend cho phép giảm hoàn toàn số replicas của workloads về 0, dẫn đến việc không sử dụng tài nguyên tính toán (CPU, RAM) và lưu lượng mạng không cần thiết. Điều này đặc biệt hiệu quả với các hệ thống triển khai trên nền tảng đám mây, nơi tài nguyên được tính phí dựa trên mức sử dụng.
Dễ dàng khởi động lại: Dữ liệu và cấu hình của workloads được giữ nguyên, cho phép người dùng nhanh chóng khởi động lại khi cần mà không phải cấu hình lại từ đầu.
2.2. Hỗ trợ bảo trì hệ thống và nâng cấp¶
Tình huống áp dụng:
Người dùng cần bảo trì một phần hệ thống mà không muốn ảnh hưởng đến toàn bộ cluster.
Nâng cấp hoặc kiểm tra tính tương thích của các thành phần hệ thống mà không cần xóa workloads.
Phân tích tác dụng:
Tạm dừng hoạt động an toàn: Suspend cho phép dừng hoàn toàn workloads, đảm bảo rằng không có lưu lượng truy cập hoặc hoạt động nào xảy ra trong quá trình bảo trì.
Không mất dữ liệu: Vì dữ liệu và cấu hình không bị xóa, người dùng có thể khôi phục hoạt động nhanh chóng sau bảo trì mà không lo mất mát dữ liệu.
Kiểm tra tính tương thích: Trong trường hợp cần thử nghiệm nâng cấp hoặc sửa lỗi, người dùng có thể tạm dừng các workloads liên quan để kiểm tra mà không làm gián đoạn các dịch vụ khác.
2.3. Quản lý tài nguyên hiệu quả trong môi trường phát triển/thử nghiệm¶
Tình huống áp dụng:
Một nhóm phát triển sử dụng Kubernetes để thử nghiệm các tính năng mới, nhưng không cần workloads chạy liên tục sau giờ làm việc.
Các môi trường staging hoặc sandbox cần tạm dừng để tránh xung đột tài nguyên với môi trường sản xuất.
Phân tích tác dụng:
Tối ưu hóa chi phí phát triển: Suspend giảm tài nguyên sử dụng của môi trường thử nghiệm khi không cần thiết, đặc biệt quan trọng khi phát triển trên các nền tảng đám mây.
Đảm bảo tính ổn định: Bằng cách tạm dừng các môi trường không cần thiết, người dùng tránh được các lỗi phát sinh do xung đột tài nguyên hoặc tải không mong muốn.
2.4. Tạm dừng dịch vụ trong trường hợp khẩn cấp¶
Tình huống áp dụng:
Một dịch vụ gặp sự cố bảo mật và cần ngừng hoạt động ngay lập tức để giảm thiểu rủi ro.
Hệ thống cần tối ưu hóa tài nguyên cho các dịch vụ quan trọng hơn trong tình trạng khẩn cấp (ví dụ: dịch vụ cấp cứu, hệ thống phân tích thời gian thực).
Phân tích tác dụng:
Ngừng hoạt động nhanh chóng: Tính năng Suspend cho phép người dùng dừng tất cả các workloads của một Container Service chỉ với một thao tác, giúp phản ứng nhanh trong các tình huống khẩn cấp.
Đảm bảo an toàn: Khi workloads được dừng, không có lưu lượng truy cập mới, giảm nguy cơ bị khai thác hoặc tấn công từ bên ngoài.
Tái phân phối tài nguyên: Các tài nguyên giải phóng từ workloads bị suspend có thể được tái sử dụng cho các dịch vụ quan trọng hơn trong thời gian khẩn cấp.
2.5. Tối ưu hóa quản lý tài nguyên cho hệ thống đa môi trường¶
Tình huống áp dụng:
Một hệ thống triển khai nhiều môi trường (Production, Staging, Development) và cần tạm dừng một trong số các môi trường để tập trung tài nguyên cho các môi trường khác.
Các môi trường ít sử dụng như Development chỉ cần khởi động khi có yêu cầu từ nhóm phát triển.
Phân tích tác dụng:
Đơn giản hóa quản lý môi trường: Suspend giúp người dùng dễ dàng quản lý trạng thái của từng môi trường trong hệ thống. Người dùng có thể linh hoạt bật/tắt môi trường khi cần mà không cần phải xóa hoặc cấu hình lại.
Cân bằng tài nguyên: Việc tạm dừng các môi trường ít sử dụng giải phóng tài nguyên để phục vụ các môi trường cần tải cao hơn, giúp tối ưu hóa hiệu suất tổng thể của hệ thống.
3. Cách thức thực hiện¶
3.1. Trường hợp Spinner đang ở chế độ Manual Scale¶
Người dùng chọn Suspend
Click nút Suspend trong giao diện quản lý Spinner.
Hệ thống kiểm tra trạng thái Scaling Mode
Nếu Spinner đang ở chế độ Manual Scale, một Popup xuất hiện để hiển thị:
Spinner Volume Type: No Volume, Shared Volume, Dedicated Volume.
Số replicas hiện tại.
Scaling Mode: Manual Scale.
Cảnh báo về phạm vi ảnh hưởng khi Suspend (dừng workloads, không nhận lưu lượng mới, giữ nguyên cấu hình).
Xác nhận của người dùng
Người dùng nhấn Go to Scale để xác nhận và hệ thống xử lý:
Giảm số replicas về 0.
Bật trạng thái Suspend: ON trên giao diện Spinner.
Thay đổi trạng thái và chức năng
Header Page: Hiển thị trạng thái Suspend: ON.
Menu Settings: Tùy chọn chuyển từ Suspend: ON sang Suspend: OFF.
Chức năng bị vô hiệu hóa:
Chỉnh sửa cấu hình Spinner: General, Image, Compute.
Xem và chỉnh sửa Terminal, Log, Events.
Chuyển đổi chế độ Scaling Mode (Auto Scale).
Publish Service, Rollback, Roll Forward, Advanced Options.
3.2. Trường hợp Spinner đang ở chế độ Auto Scale¶
Người dùng chọn Suspend
Click nút Suspend trong giao diện quản lý Spinner.
Hệ thống kiểm tra trạng thái Scaling Mode
Nếu Spinner đang ở chế độ Auto Scale, Popup hiển thị yêu cầu người dùng:
Chuyển chế độ Scaling từ Auto Scale về Manual Scale trước khi thực hiện Suspend.
Xác nhận các thông tin:
Spinner Volume Type: No Volume, Shared Volume, Dedicated Volume.
Số replicas hiện tại.
Scaling Mode: Auto Scale.
Xử lý chuyển đổi
Người dùng nhấn Go to Scale để chuyển đến màn hình Scaling.
Tại đây, chuyển chế độ Scaling từ Auto Scale về Manual Scale.
Thực hiện Suspend
Sau khi chuyển về Manual Scale, lặp lại các bước tương tự như trong chế độ Manual Scale để hoàn tất việc suspend.
3.4. Sử dụng API để Suspend Workload trong Sun Container Service¶
Đối với các tổ chức hoặc người dùng muốn tự động hóa quy trình suspend workloads thay vì thực hiện thủ công qua giao diện người dùng, việc sử dụng API là một giải pháp hiệu quả. Dưới đây là hướng dẫn chi tiết cách sử dụng API để kích hoạt và quản lý trạng thái Suspend của container service.
Quy trình tổng quát sử dụng API để Suspend Spinner¶
Lấy trạng thái hiện tại của Spinner
Gọi API
PUT /spinner-management/v2/spinner/suspend
để kiểm tra trạng thái Scaling Mode và Suspend.
Lưu ý quan trọng khi sử dụng API¶
Quyền hạn người dùng:
Các API yêu cầu quyền truy cập phù hợp. Người dùng cần được phân quyền để thực hiện các thao tác bật/tắt Suspend hoặc thay đổi Scaling Mode.
Tác động khi bật Suspend:
Tất cả các Pods sẽ bị xóa, và workloads sẽ không nhận lưu lượng truy cập mới.
Thời gian xử lý:
Việc đưa số lượng replicas về 0 và xóa Pods có thể mất vài giây đến vài phút tùy thuộc vào số lượng workloads.
Kiểm tra trạng thái trước khi thao tác:
Trước khi kích hoạt hoặc tắt Suspend, luôn kiểm tra trạng thái Spinner để đảm bảo điều kiện cần thiết đã được đáp ứng.
4. Các lưu ý quan trọng¶
4.1. Phạm vi ảnh hưởng khi Suspend: ON¶
Dừng toàn bộ workloads:
Số replicas của tất cả các workloads được giảm về 0, tất cả các Pod sẽ bị xóa khỏi Cluster.
Không có Pod mới nào được tạo ra.
Các workloads không nhận thêm lưu lượng truy cập mới.
Giữ nguyên cấu hình và dữ liệu:
Dedicated Volume: Dữ liệu trong volume của Pod sẽ được giữ nguyên.
Shared Volume và No Volume: Không bị ảnh hưởng.
Hạn chế thao tác:
Khi Suspend: ON, tất cả các chức năng chỉnh sửa liên quan đến Spinner đều bị vô hiệu hóa.
4.2. Chuyển đổi trạng thái Suspend¶
Khi Suspend: OFF
Chế độ mặc định, Spinner hoạt động bình thường với số Min Replica như cấu hình ban đầu.
Người dùng không thể scale down replicas xuống 0.
Khi Suspend: ON
Người dùng có thể scale down replicas xuống 0, và workloads sẽ tạm dừng hoạt động hoàn toàn.
4.3. Ảnh hưởng của việc scale down replicas về 0¶
Tất cả các Pod hiện tại sẽ bị xóa.
Các service, port, và endpoint vẫn tồn tại nhưng không có Pod nào được liên kết.
Workloads không còn hoạt động và không tạo thêm Pod mới.
Tính năng Suspend là một giải pháp hiệu quả để quản lý tài nguyên, đặc biệt trong các trường hợp cần tiết kiệm chi phí hoặc tạm dừng hoạt động mà vẫn giữ nguyên cấu hình hệ thống. Bằng cách giảm số replicas về 0, người dùng có thể đảm bảo rằng hệ thống không sử dụng tài nguyên không cần thiết mà vẫn có thể khởi động lại nhanh chóng khi cần thiết.