Google Cloud - Cân Bằng Tải Ứng Dụng Nội Bộ HTTP
Giới thiệu
Trong bài viết này, chúng ta sẽ tìm hiểu cách triển khai một Cân Bằng Tải Ứng Dụng Nội Bộ (Internal Application Load Balancer) sử dụng giao thức HTTP trên Google Cloud Platform (GCP). Việc thiết lập cân bằng tải nội bộ giúp chia sẻ tải giữa các máy chủ trong cùng một vùng, cải thiện hiệu suất và tính sẵn sàng của ứng dụng.
Bước 1: Chuẩn bị
Trước khi bắt đầu, bạn cần thực hiện một số bước chuẩn bị:
- Bước 1.1: Tạo Mẫu Phiên Bản và Nhóm Phiên Bản Quản Lý. Bạn có thể tham khảo bài viết trước để thực hiện điều này:
Hướng Dẫn Tạo MIGs và Cân Bằng Tải Ngoại Bộ
Bước 2: Tạo Subnet Dành Riêng cho Cân Bằng Tải
- Đi đến: VPC Networks -> vpc3-custom -> SUBNETS -> THÊM SUBNET
- Tên: lb-subnet-proxyonly-us-central1
- Mô tả: lb-subnet-proxyonly-us-central1
- Khu vực: us-central1
- Mục đích: Regional Managed Proxy
- Vai trò: Active
- Dải IPv4: 10.129.0.0/23
- Nhấn vào: THÊM
Bước 3: Tạo Quy Tắc Tường Lửa
fw-allow-proxy-only-subnet: Quy tắc cho phép kết nối từ subnet chỉ dành cho proxy đến các backend.
bash
# Quy Tắc Tường Lửa: Cho phép kết nối từ Subnet Proxy cho Tất cả Phiên Bản trong mạng
gcloud compute firewall-rules create vpc3-custom-allow-proxy-only-subnet \
--network=vpc3-custom \
--action=allow \
--direction=ingress \
--source-ranges=10.129.0.0/23 \
--rules=tcp:80,tcp:443,tcp:8080
Bước 4: Tạo Kiểm Tra Sức Khỏe
bash
# Tạo Kiểm Tra Sức Khỏe Khu Vực
gcloud compute health-checks create http regional-http-health-check --port=80 --region=us-central1
Bước 5: Tạo Cân Bằng Tải Ứng Dụng - HTTP
- Đi đến: Network Services -> Load Balancing -> TẠO CÂN BẰNG TẢI
- Chọn: Application Load Balancer (HTTP/S): BẮT ĐẦU CẤU HÌNH
- Chỉ định: Chỉ giữa các VM của tôi hoặc dịch vụ serverless
- Toàn cầu hay Khu vực: Cân Bằng Tải Nội Bộ Khu Vực
- Tên Cân Bằng Tải: regional-lb-internal-http
- Khu Vực: us-central1
- Mạng: vpc3-custom
Cấu Hình Backend
- Nhấn vào: TẠO DỊCH VỤ BACKEND
- Tên: regional-mybackend-svc1
- Mô tả: regional-mybackend-svc1
- Loại Backend: Nhóm Phiên Bản
- Giao Thức: HTTP
- Cổng Được Đặt Tên: webserver80 (TỰ ĐỘNG ĐIỀN KHI CHỌN BACKEND LÀ mig1-lbdemo)
- Thời Gian Chờ: 30 giây
bash
# Cấu hình Backend cho nhóm phiên bản 1
Instance Group: zmig-us-1
Port Numbers: 80
REST ALL LEAVE TO DEFAULTS
# Cấu hình Backend cho nhóm phiên bản 2
Instance Group: zmig-us-2
Port Numbers: 80
REST ALL LEAVE TO DEFAULTS
- Kiểm Tra Sức Khỏe: regional-http-health-check
- Bảo Mật: Chính sách bảo mật backend Cloud Armor: KHÔNG
- Nhấn vào: TẠO
Quy Tắc Định Tuyến
- Chế Độ: Quy tắc host và path đơn giản
- REST ALL LEAVE TO DEFAULTS
Cấu Hình Frontend
- Nhấn vào: THÊM IP VÀ CỔNG FRONTEND
- Tên: frontend-http
- Mô tả: frontend-http
- Giao thức: HTTP
- Subnet: mysubnet1
- Cổng: 80
- Địa chỉ IP: regional-internal-lb-ip1 TẠO MỘT IP TĨNH NỘI BỘ MỚI
- Truy cập toàn cầu: Bật
- Nhấn vào: HOÀN TẤT
Bước 6: Xác Nhận Cân Bằng Tải
- Đi đến: Network Services -> Load Balancing -> global-lb-external-http
- Kiểm tra các Tab
bash
LOAD BALANCERS
BACKENDS
FRONTENDS
Bước 7: Kiểm Tra từ cùng một khu vực: us-central1
Lưu ý Quan Trọng: CHỜ TỪ 3 đến 5 phút trước khi Cân Bằng Tải hoàn toàn hoạt động
bash
# Kết nối đến bất kỳ VM nào được tạo như một phần của MIG
gcloud compute ssh --zone "us-central1-c" "zmig-us-2-9jm9" --project "gcplearn9"
# Truy cập Ứng Dụng
curl http://INTERNAL-LB-IP
curl http://10.135.0.8
Bước 8: Kiểm Tra từ khu vực khác: us-east1 (Truy Cập Toàn Cầu Bật)
Vì Truy Cập Toàn Cầu đã được bật, xác minh xem cân bằng tải nội bộ này có thể truy cập từ các khu vực khác không
bash
# Tạo VM Khách Hàng trong khu vực us-east1
gcloud compute instances create us-east1-clientvm \
--zone=us-east1-c \
--subnet=us-east1-subnet
# Kết nối đến VM sử dụng gcloud
gcloud compute ssh --zone "us-east1-c" "us-east1-clientvm"
# Truy cập Ứng Dụng
curl http://INTERNAL-LB-IP
curl http://10.135.0.8
Bước 9: Xóa Cân Bằng Tải
- Xóa Cân Bằng Tải được tạo trong bài hướng dẫn này.
- Xóa VM Thử Nghiệm.
- Không xóa dịch vụ backend.
Thực hành tốt nhất
- Đảm bảo rằng bạn đã cấu hình đầy đủ các quy tắc tường lửa trước khi triển khai cân bằng tải.
- Theo dõi hiệu suất của cân bằng tải để tối ưu hóa các tham số cấu hình.
Cạm bẫy thường gặp
- Không cấu hình chính xác nhóm phiên bản có thể dẫn đến lỗi kết nối.
- Quên tạo kiểm tra sức khỏe có thể gây ra sự cố về khả năng sẵn sàng.
Mẹo hiệu suất
- Sử dụng các subnet không chồng chéo để tránh xung đột địa chỉ IP.
- Sử dụng các chính sách bảo mật để bảo vệ backend.
Khắc phục sự cố
- Nếu không thể kết nối đến cân bằng tải, hãy kiểm tra lại các quy tắc tường lửa và kiểm tra sức khỏe.
🌟 Cảm ơn bạn đã đọc! Nếu bài viết này hữu ích, hãy thích ❤️, theo dõi, hoặc chia sẻ để tôi có động lực tạo thêm nhiều nội dung hơn nữa.
— Latchu | Kỹ Sư DevOps & Đám Mây Cao Cấp
☁️ AWS | GCP | ☸️ Kubernetes | 🔐 Bảo Mật | ⚡ Tự Động Hóa
📌 Chia sẻ hướng dẫn thực hành, thực tiễn tốt nhất & giải pháp đám mây trong thế giới thực.