Integrate with Network Load Balancer
Để tích hợp một Network Load Balancer với một Kubernetes cluster, bạn có thể sử dụng một Service với type là LoadBalancer. Khi bạn tạo một Service như vậy, VNGCloud LoadBalancer Controller sẽ tự động một NLB để chuyển tiếp lưu lượng đến các pod trên node của bạn. Bạn cũng có thể sử dụng các annotation để tùy chỉnh các thuộc tính của Network Load Balancer, như port, protocol,...
Chuẩn bị
Tạo một Kubernetes cluster trên VNGCloud, hoặc sử dụng một cluster đã có. Lưu ý: đảm bảo bạn đã tải xuống cluster configuration file sau khi cluster được khởi tạo thành công và truy cập vào cluster của bạn.
Khởi tạo hoặc sử dụng một service account đã tạo trên IAM và gắn policy: vLBFullAccess, vServerFullAccess. Để tạo service account bạn truy cập tại đây và thực hiện theo các bước sau:
Chọn "Create a Service Account", điền tên cho Service Account và nhấn Next Step để gắn quyền cho Service Account
Tìm và chọn Policy: vLBFullAccess và Policy: vServerFullAccess, sau đó nhấn "Create a Service Account" để tạo Service Account, Policy: vLBFullAccess vàPolicy: vServerFullAccess do VNG Cloud tạo ra, bạn không thể xóa các policy này.
Sau khi tạo thành công bạn cần phải lưu lại Client_ID và Secret_Key của Service Account để thực hiện bước tiếp theo.
Khởi tạo Service Account và cài đặt VNGCloud LoadBalancer Controller
Chú ý:
Khi bạn thực hiện khởi tạo Cluster theo hướng dẫn bên trên, nếu bạn chưa bật option Enable vLB Native Integration Driver, mặc định chúng tôi sẽ không cài sẵn plugin này vào Cluster của bạn. Bạn cần tự thực hiện Khởi tạo Service Account và cài đặt VNGCloud LoadBalancer Controller theo hướng dẫn bên dưới. Nếu bạn đã bật option Enable vLB Native Integration Driver, thì chúng tôi đã cài sẵn plugin này vào Cluster của bạn, hãy bỏ qua bước Khởi tạo Service Account, cài đặt VNGCloud LoadBalancer Controller và tiếp tục thực hiện theo hướng dẫn kể từ Deploy một Workload.
Deploy một Workload
1.Nếu bạn chưa có sẵn một Network Load Balancer đã khởi tạo trước đó trên hệ thống vLB.
Lúc này, bạn cần thực hiện:
Bước 1: Tạo Deployment, Service cho Nginx app.
Tạo file nginx-service-lb4.yaml với nội dung sau:
Hoặc sử dụng file mấu sau đây để deploy HTTP Apache Service với Internal LoadBalancer cho phép truy cập nội bộ trên cổng 8080:
Hoặc tập tin YAML mẫu để tạo Deployment và Service cho ứng dụng máy chủ UDP trong một cụm Kubernetes:
2.Nếu bạn đã có sẵn một Network Load Balancer đã khởi tạo trước đó trên hệ thống vLB và bạn muốn tái sử dụng NLB cho cluster của bạn.
Lúc này, bạn hãy nhập thông tin Load Balancer ID vào annotation vks.vngcloud.vn/load-balancer-id. Ví dụ dưới đây là tập tin YAML mẫu để triển khai Nginx với External LoadBalancer sử dụng vngcloud-controller-manager để tự động expose dịch vụ tới internet bằng bộ cân bằng tải L4 sử dụng một NLB có sẵn với ID = lb-2b9d8974-3760-4d60-8203-9671f229fb96
3.Sau khi một NLB mới đã được chúng tôi tự động khởi tạo, lúc này bạn có thể thực hiện
Chỉnh sửa cấu hình NLB của bạn theo hướng dẫn cụ thể tại Configure for a Network Load Balancer. Ví dụ như bên dưới, tôi đã thực hiện chỉnh sửa protocol và port như sau:
Cũng giống như các tài nguyên Kubernetes khác, vngcloud-controller-manager có cấu trúc gồm các trường thông tin như sau:
apiVersion: Phiên bản API cho Ingress.
kind: Loại tài nguyên, trong trường hợp này là "Service".
metadata: Thông tin mô tả Ingress, bao gồm tên, annotations.
spec: Cấu hình điều kiện của các incoming request.
Để biết thông tin chung về cách làm việc với vngcloud-controller-manager,, hãy xem tại [Configure for a Network Load Balancer]
Deploy Service này bằng lệch:
Kiểm tra thông tin Deployment, Service vừa deploy
Chạy câu lệnh sau đây để kiểm tra Deployment
Nếu kết quả trả về như bên dưới tức là bạn đã deploy Deployment thành công.
Lúc này, hệ thống vLB sẽ tự động tạo một LB tương ứng cho nginx app đã deployment, ví dụ:
Bước 3: Để truy cập vào app nginx vừa export, bạn có thể sử dụng URL với định dạng:
Bạn có thể lấy thông tin Public Endpoint của Load Balancer tại giao diện vLB. Cụ thể truy cập tại https://hcm-3.console.vngcloud.vn/vserver/load-balancer/vlb/
Ví dụ, bên dưới tôi đã truy cập thành công vào app nginx với địa chỉ : http://180.93.181.20/
Last updated