Cho phép integrate vLB vào dịch vụ Containers của VNG CLOUD

Nhu cầu: Khách hàng có nhu cầu triển khai 2 website: httpd.app.comnginx.app.com theo kiến trúc microservice trên hạ tầng VNG Cloud.

Giải pháp: Sử dụng dịch vụ vLB(Load Balancer) kết hợp với dịch vụ vContainer trên VNG Cloud.

Kiến trúc giải pháp:


Triển khai:

1. Khởi tạo vLB và vContainer

1. Tạo Network LoadBalancer(Layer 4)

Note: Như ở trên, chúng ta sẽ tạo 1 Listener trên Port 80. Nếu muốn sử dụng TLS cho website, có thể tạo thêm Listener trên Port 443 và cấu hình TLS ở Ingress Controller. Bài này sẽ chỉ triển khai với Listener Port 80.

2. Nhấn Create Load Balancer để tạo vLB

3. Sau đó truy cập vào bảng điều khiển tạo K8S tại đường link: https://hcm-3.console.vngcloud.vn/vserver/container/cluster:

Note: Khi tạo vContainer, chúng ta có thể chọn Enable Ingress Controller để tạo cluster với Ingress Controller đã được triển khai sẵn. Để sử dụng Ingress Controller với những tính năng phù hợp theo nhu cầu của ứng dụng, trong bài viết này sẽ không chọn Enable Ingress Controller mà sẽ tự triển khai Nginx Ingress Controller, vì thế bạn cần tắt Ingress Control khi khởi tạo K8S.

4. Kiểm tra việc khởi tạo cluster và tải config file để access cluster:

2. Triển khai Nginx Ingress Controller

  1. Copy và chạy command trên để triển khai Nginx Ingress Controller:

  2. Kiểm tra: → Như vậy chúng ta đã triển khai thành công Nginx Ingress Controller.

  3. Service ingress-nginx-controller được khởi tạo với Type: NodePort và lắng nghe trên Port: 30398, 31873 của các Minion Node.

3. Attach vLB với vContainer

Note: Mặc định vLB không thể kết nối tới vContainer Cluster dù nằm trong cùng VPC/Subnet. Do đó cần tạo mới một Security Group và attach cho Minion Node.

  1. Tạo Security Group: Do chỉ có 1 Listener Port 80 trên vLB do đó chỉ cần 1 Inbound rule. Trong trường hợp có Listener Port 443, vui lòng tạo thêm Inbound rule.

  2. Update Security Group cho Minion Node:

  3. Điền 30398. Khi đó Listener sẽ forward traffic tới Backend Pool với port 30398. vLB sẽ định kỳ health check các Pool Member thông qua Monitor Port, traffic sẽ không được gửi tới những member không health check thành công.:

  4. Nhấn Lưu để hoàn tất attach vLB với vContainer

4. Triển khai ứng dụng

  1. Chuẩn bị YAML file: service.yaml, deployment.yaml và app-ingress.yaml

  2. Triển khai:

  1. Kiểm tra Review the vLB status:

  2. Edit file host trên laptop cá nhân để kiểm tra: C:\Windows\System32\drivers\etc\hosts:

  3. Mở trình duyệt web và kiểm tra:

Last updated