Last updated
Last updated
Fleet Management là tính năng giúp gom nhóm các Kubernetes cluster trên nhiều zone/region, cho phép quản lý traffic linh hoạt giữa các cluster. Khi sử dụng Global Load Balancer (GLB), có hai cơ chế phân phối traffic chính:
North-South Traffic Management với GLB
Cách hoạt động: Một GLB duy nhất sẽ route traffic đến các cụm cluster theo vùng địa lý (VD: HAN, HCM...), giúp tối ưu hóa hiệu suất và giảm chi phí so với việc sử dụng nhiều Load Balancer riêng lẻ.
Hỗ trợ cho cluster có Network Type: ✅ Calico Overlay ✅ Cilium Overlay ✅ Cilium VPC Native
East-West Traffic Management với GLB
Cách hoạt động: Nếu một backend service trong một cluster gặp sự cố, traffic sẽ failover sang backend của các cluster khác trong fleet, đảm bảo không bị downtime.
Chỉ hỗ trợ cho cluster có Network Type: ✅ Cilium VPC Native
Thực hiện theo hướng dẫn sau đây để tạo một Fleet và quản lý phân phối traffic với GLB:
Bước 1: Đăng nhập vào VKS Portal tại link:
Bước 2: Chọn mục Fleet Management
Bước 3: Chọn Create a fleet
Bước 4: Nhập tên gợi nhớ cho fleet ở mục Fleet Name. Tên Fleet phải có độ dài từ 5 tới 50 ký tự, bao gồm các ký tự a-z, 0-9, '-'
Bước 5: Chọn Region chứa Cluster của bạn
Bước 6: Chọn danh sách cluster bạn muốn thêm vào fleet và chọn Register.
Bước 7: Tại danh sách Cluster đã được thêm, bạn cần chỉ định một cluster làm host. Các Cluster còn lại sẽ là member. Ví dụ trong hình, tôi chỉ định cluster có tên demo-fleet-03 làm host và cluster có tên demo-cluster-04 làm member.
Bước 8: Chọn loại Traffic flow mà bạn mong muốn, tùy thuộc vào loại Network type của các cluster bạn đã chọn mà loại Traffic flow bạn có thể chọn sẽ hiển thị tương ứng.
Bước 9: Chọn Create
Bước 10: Thực hiện triển khai một service trên host cluster. Đầu tiên, bạn cần tải KubeConfig của Host Cluster về và thực hiện kết nối tới host cluster này. Sau khi tải xuống file KubeConfig và cập nhật thành file config trong thư mục ~/.kube
, bạn có thể kiểm tra kết nối tới cluster bằng lệnh:
Tiếp theo, hãy thực hiện triển khai một service, trong đó:
Với Traffic Flow: East West Traffic Management with Multi Cluster Service: bạn có thể tạo service type LoadBalancer, NodePort hoặc ClusterIP.
Với Traffic Flow: North South Trafic Management with GLB: bạn có thể tạo service type LoadBalance hoặc NodePort.
Ví dụ bên dưới, tôi tạo một file nginx.yaml
chứa service nginx loại LoadBalancer tại namespace default
:
Bước 11: Thực hiện tạo file glb-nginx.yaml
chứa service GLB thông qua YAML mẫu sau:
Chú ý:
Một vGLB chỉ có thể được sử dụng cho một Fleet duy nhất.
Tuy nhiên, nếu bạn có một vGLB chưa được sử dụng trong bất kỳ Fleet nào, bạn có thể tái sử dụng nó bằng cách thêm annotation vào file YAML khi tạo vGLB.
Bước 12: Áp dụng cấu hình GLB bằng lệnh:
Thay glb-nginx.yaml
bằng tên file YAML của bạn.
Bước 13: Kiểm tra trạng thái của GLB bằng lệnh:
Bạn sẽ thấy danh sách các GLB đã tạo cùng với trạng thái của chúng.
Ví dụ:
Bước 14: Lấy địa chỉ IP hoặc hostname của GLB để truy cập service bằng lệnh:
Bước 15: Kiểm tra khả năng hoạt động của Fleet bằng cách gửi request đến GLB:
Thay <GLB_Endpoint>
bằng địa chỉ IP hoặc hostname lấy được từ bước trên.
Ví dụ:
Hoặc truy cập trực tiếp như ảnh:
Bước 16: Thử nghiệm failover bằng cách tắt backend service trong một cluster và quan sát cách traffic được phân phối sang cluster khác trong Fleet:
Test Traffic Flow MCS (East-West):
Sau đó, kiểm tra truy cập lại GLB để xác nhận rằng traffic đã được chuyển đến cluster khác.
Coming soon
Test North-South Traffic với GLB:
Coming soon
Sau khi hoàn thành các bước trên, bạn đã thiết lập thành công Fleet Management trên VKS với Global Load Balancer để quản lý traffic giữa các cluster hiệu quả.
Sau khi tạo một Fleet, bạn có thể thêm các cluster Kubernetes hiện có vào Fleet qua 2 cách:
Cách 1: Tại mục Fleet Management, chọn Chỉnh sửa Fleet sau đó chọn một cluster từ danh sách có sẵn và nhấn "Register" để thêm vào Fleet.
Cách 2: Đăng ký trực tiếp cluster vào Fleet ngay trong quá trình tạo cluster.
Nếu không cần sử dụng một cluster trong Fleet nữa, bạn có thể hủy đăng ký (Unregister) bằng cách:
Bước 1: Truy cập vào phần Fleet Management.
Bước 2: Chọn cluster cần loại bỏ.
Bước 3: Nhấn "Remove" hoặc "Unregister" (chỉ xóa cluster khỏi Fleet, không xóa cluster khỏi hệ thống VKS).
Sau khi tạo Fleet, bạn có thể chỉnh sửa cấu hình của nó:
Thay đổi Host Cluster trong Fleet hiện có.
Thêm hoặc loại bỏ các member cluster khi cần, nhưng luôn đảm bảo Fleet có ít nhất một host cluster.
Khi không còn cần sử dụng Fleet, bạn có thể xóa nó bằng cách:
Bước 1: Truy cập vào Fleet Management.
Bước 2: Chọn Fleet cần xóa.
Bước 3: Nhấn "Delete" và xác nhận.
Chú ý:
Mỗi Fleet cần có ít nhất một host cluster, các cluster còn lại sẽ đóng vai trò là member cluster. Sau khi Fleet được tạo, bạn có thể thêm/bớt member cluster hoặc thay đổi host cluster.
Một cluster không thể đăng ký vào nhiều Fleet cùng lúc. Nếu muốn đổi Fleet, bạn cần gỡ đăng ký (Unregister) khỏi Fleet cũ trước khi thêm vào Fleet mới.
Không thể xóa một cluster nếu nó đang là host cluster trong một Fleet. Nếu bạn muốn xóa một cluster đang là host, bạn cần chuyển vai trò host sang cluster khác trước khi xóa cluster đó. Nếu không có host cluster, Fleet sẽ không hoạt động đúng cách.
Nếu bạn muốn sử dụng Private cluster cho Fleet, bạn bắt buộc phải thiết lập NAT để giao tiếp với GLB do hiện tại chúng tôi chưa hỗ trợ Private Service Endpoint tới GLB.
Khi xóa một Fleet, các cluster bên trong Fleet vẫn tồn tại và có thể được sử dụng độc lập hoặc thêm vào Fleet khác.
Lúc này, hệ thống sẽ tạo mới một vGLB trên hệ thống vGLB, bạn có thể kiểm tra vGLB được tạo tai .