Google Cloud - Nhóm Phiên Quản Lý Khu Vực (MIG)
Bước 1: Giới thiệu
Trong bài viết này, chúng ta sẽ khám phá cách thiết lập và quản lý Google Cloud Load Balancers cùng với Nhóm Phiên Quản Lý Khu Vực (Managed Instance Groups - MIG). Để bắt đầu, hãy thực hiện các bước sau:
i. Tạo VPC
- Tên VPC:
vpc3-custom
ii. Tạo Quy Tắc Tường Lửa Ingress
- Cho phép ICMP
- Cho phép SSH trên cổng 22
- Cho phép tất cả IP, tất cả cổng giữa các phiên bản VM trong một mạng VPC
- Cho phép lưu lượng từ hệ thống kiểm tra sức khỏe của Google Cloud (130.211.0.0/22 và 35.191.0.0/16)
iii. Tạo hai subnet trong hai khu vực
us-central1-subnetus-east1-subnet
iv. Tạo Mẫu Phiên Bản trong các khu vực us-central1 và us-east1
v. Tạo Kiểm Tra Sức Khỏe Toàn Cầu (áp dụng cho cả hai khu vực)
vi. Tạo Managed Instance Groups trong các khu vực us-central1 và us-east1
- Tạo Managed Instance Group (MIG)
- Tạo cổng được đặt tên cho MIG
Bước 2: Tạo Mạng VPC
# Thiết lập Dự Án
gcloud config set project PROJECT_ID
gcloud config set project gcpdemos
# Tạo Mạng VPC
gcloud compute networks create vpc3-custom --subnet-mode=custom --bgp-routing-mode=global
Bước 3: Tạo Quy Tắc Tường Lửa VPC
# Quy Tắc Tường Lửa-1: Cho phép kết nối ICMP từ bất kỳ nguồn nào đến bất kỳ phiên bản nào trên mạng
gcloud compute firewall-rules create vpc3-custom-allow-icmp \
--network=vpc3-custom \
--description="Cho phép kết nối ICMP từ bất kỳ nguồn nào đến bất kỳ phiên bản nào trên mạng" \
--direction=INGRESS \
--priority=65534 \
--source-ranges=0.0.0.0/0 \
--action=ALLOW \
--rules=icmp
# Quy Tắc Tường Lửa-2: Cho phép TCP từ bất kỳ nguồn nào đến bất kỳ phiên bản nào trên mạng qua cổng 22.
gcloud compute firewall-rules create vpc3-custom-allow-ssh \
--network=vpc3-custom \
--description="Cho phép TCP từ bất kỳ nguồn nào đến bất kỳ phiên bản nào trên mạng qua cổng 22." \
--direction=INGRESS \
--priority=65534 \
--source-ranges=0.0.0.0/0 \
--action=ALLOW \
--rules=tcp:22
# (TÙY CHỌN) Quy Tắc Tường Lửa-3: Cho phép kết nối từ bất kỳ nguồn nào đến bất kỳ phiên bản nào trên mạng qua các giao thức tùy chỉnh
gcloud compute firewall-rules create vpc3-custom-allow-custom \
--network=vpc3-custom \
--description="Cho phép kết nối từ bất kỳ nguồn nào đến bất kỳ phiên bản nào trên mạng qua các giao thức tùy chỉnh." \
--direction=INGRESS \
--priority=65534 \
--source-ranges=10.128.0.0/9 \
--action=ALLOW \
--rules=all
# Quy Tắc Tường Lửa-4: Quy tắc Ingress cho phép lưu lượng từ các hệ thống kiểm tra sức khỏe của Google Cloud (130.211.0.0/22 và 35.191.0.0/16).
gcloud compute firewall-rules create vpc3-custom-allow-health-check \
--network=vpc3-custom \
--description="Cho phép lưu lượng từ hệ thống kiểm tra sức khỏe của Google Cloud" \
--direction=ingress \
--source-ranges=130.211.0.0/22,35.191.0.0/16 \
--action=ALLOW \
--rules=tcp:80
Bước 4: Tạo Subnets
# Subnet1: Tạo Subnet trong khu vực us-central1
gcloud compute networks subnets create us-central1-subnet \
--description="us-central1-subnet" \
--range=10.135.0.0/20 \
--stack-type=IPV4_ONLY \
--network=vpc3-custom \
--region=us-central1
# Subnet2: Tạo Subnet trong khu vực us-east1
gcloud compute networks subnets create us-east1-subnet \
--description="us-east1-subnet" \
--range=10.145.0.0/20 \
--stack-type=IPV4_ONLY \
--network=vpc3-custom \
--region=us-east1
Bước 5: Tạo Kiểm Tra Sức Khỏe - Toàn Cầu
# Tạo kiểm tra sức khỏe - toàn cầu
gcloud compute health-checks create http global-http-health-check --port 80
Bước 6: Xem Xét Script Khởi Động
#!/bin/bash
sudo apt install -y telnet
sudo apt install -y nginx
sudo systemctl enable nginx
sudo chmod -R 755 /var/www/html
HOSTNAME=$(hostname)
sudo echo "<!DOCTYPE html> <html> <body style='background-color:rgb(250, 210, 210);'> <h1>Welcome to Latchu@DevOps - WebVM App1 </h1> <p><strong>VM Hostname:</strong> $HOSTNAME</p> <p><strong>VM IP Address:</strong> $(hostname -I)</p> <p><strong>Application Version:</strong> V1</p> <p>Google Cloud Platform - Demos</p> </body></html>" | sudo tee /var/www/html/index.html
Đảm bảo rằng tệp nginx-webserver.sh này có sẵn trong GCloud Shell
Bước 7: us-central1: Tạo Mẫu Phiên Bản và Nhóm Phiên Quản Lý
- Ghi chú quan trọng:
i. Tải lên tệp nginx-webserver.sh vào Google Cloud shell nếu bạn đang chạy các lệnh gcloud trên cloud shell
ii. Đảm bảo tệp nginx-webserver.sh có mặt trong thư mục hiện tại mà bạn đang chạy lệnh gcloud này
- Tạo Mẫu Phiên Bản
- Tạo Nhóm Phiên Quản Lý
i. Tạo Nhóm Phiên Quản Lý (MIG)
ii. Tạo cổng được đặt tên cho MIG
# 1. us-central1: Tạo Mẫu Phiên Bản
gcloud compute instance-templates create it-lbdemo-us-central1 \
--region=us-central1 \
--network=vpc3-custom \
--subnet=us-central1-subnet \
--machine-type=e2-micro \
--metadata-from-file=startup-script=nginx-webserver.sh
# 2. Tạo nhóm phiên quản lý và chọn mẫu phiên bản.
gcloud compute instance-groups managed create mig1-us-central1 \
--template=it-lbdemo-us-central1 \
--size=2 \
--zones=us-central1-b,us-central1-c \
--health-check=global-http-health-check
# 3. Thêm một cổng được đặt tên cho nhóm phiên bản
gcloud compute instance-groups set-named-ports mig1-us-central1 \
--named-ports webserver80:80 \
--region us-central1
Bước 8: us-east1: Tạo Mẫu Phiên Bản và Nhóm Phiên Quản Lý
- Tạo Mẫu Phiên Bản
- Tạo Nhóm Phiên Quản Lý
i. Tạo Nhóm Phiên Quản Lý (MIG)
ii. Tạo cổng được đặt tên cho MIG
# 1. us-east1: Tạo Mẫu Phiên Bản
gcloud compute instance-templates create it-lbdemo-us-east1 \
--region=us-east1 \
--network=vpc3-custom \
--subnet=us-east1-subnet \
--machine-type=e2-micro \
--metadata-from-file=startup-script=nginx-webserver.sh
# 2. us-east1: Tạo nhóm phiên quản lý và chọn mẫu phiên bản.
gcloud compute instance-groups managed create mig2-us-east1 \
--template=it-lbdemo-us-east1 \
--size=2 \
--zones=us-east1-c,us-east1-d \
--health-check=global-http-health-check
# 3. us-east1: Thêm một cổng được đặt tên cho nhóm phiên bản
gcloud compute instance-groups set-named-ports mig2-us-east1 \
--named-ports webserver80:80 \
--region us-east1
Bước 9: Xác minh các tài nguyên sau
- VPC
- Subnets
- Tường lửa
- Kiểm tra sức khỏe
- Mẫu phiên bản
- Nhóm phiên quản lý
Cân Bằng Tải Đám Mây - Cân Bằng Tải Ứng Dụng (HTTP/S)
Cân Bằng Tải Ứng Dụng (HTTP/S)
- Cân bằng tải dựa trên Proxy lớp 7
- Dữ liệu khách hàng được chấm dứt trên Cân Bằng Tải và một Kết Nối mới được tạo từ cân bằng tải đến các backend
Cung cấp
- Lập định tuyến dựa trên nội dung và kiểm tra sức khỏe ứng dụng
- Cân bằng tải bên ngoài & bên trong
Toàn cầu - hỗ trợ các backend ở nhiều khu vực
Khu vực - hỗ trợ các backend chỉ trong một khu vực
Khả năng truy cập
Bên ngoài: Có thể truy cập qua Internet
Nội bộ: Có thể truy cập đến các hệ thống trong VPC hoặc các hệ thống kết nối với VPC
Lý tưởng cho các ứng dụng web, API và microservices
Cân Bằng Tải Ứng Dụng Toàn Cầu HTTP
Thực hiện Cân Bằng Tải Ứng Dụng Toàn Cầu Google Cloud - HTTP
Bước 1: Giới thiệu
Yêu cầu tiên quyết-1: Tạo Mẫu Phiên Bản, Tạo Nhóm Phiên Quản Lý như trong giai đoạn đầu tiên.
Tạo Cân Bằng Tải Ứng Dụng Toàn Cầu - HTTP
Bước 2: Tạo Cân Bằng Tải HTTP Toàn Cầu
Cân Bằng Tải Ứng Dụng (HTTP/S)
- Đi tới Dịch vụ Mạng -> Cân Bằng Tải -> TẠO CÂN BẰNG TẢI
- Chọn Cân Bằng Tải Ứng Dụng (HTTP/S): BẮT ĐẦU CẤU HÌNH
- Đối diện Internet hay chỉ nội bộ: Từ Internet đến các VM hoặc dịch vụ không máy chủ của tôi
- Toàn cầu hay Khu vực: Cân Bằng Tải Ứng Dụng bên ngoài toàn cầu
- Nhấp vào TIẾP TỤC
- Tên Cân Bằng Tải:
global-lb-external-http
Cấu Hình Frontend
- Nhấp vào THÊM ĐỊA CHỈ FRONTEND VÀ CỔNG
- Tên:
frontend-http - Mô tả:
frontend-http - Giao thức:
HTTP - Phiên bản IP:
IPv4 - Địa chỉ IP:
global-lb-ip1TẠO ĐỊA CHỈ IP CÔNG KHAI MỚI - Cổng: 80
- Nhấp vào XONG
Cấu Hình Backend
- Nhấp vào TẠO DỊCH VỤ BACKEND
- Tên:
mybackend-svc1 - Mô tả:
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 BACKEND ĐƯỢC CHỌN DƯỚI DẠNG MIG) - Thời gian chờ: 30
- BACKENDS
Nhóm Phiên Bản: mig1-us-central1
Số cổng: 80
Tất cả đều để mặc định
Nhấp vào XONG
Nhóm Phiên Bản: mig1-us-east1
Số cổng: 80
Tất cả đều để mặc định
Nhấp vào XONG
- Vô hiệu hóa Cloud CDN
- Kiểm tra sức khỏe:
http-health-check - Bảo mật:
Chính sách bảo mật backend Cloud Armor: KHÔNG
- Nhấp vào TẠO
Quy Tắc Định Tuyến
- Chế độ: Quy tắc đơn giản về máy chủ và đường dẫn
- Tất cả để mặc định
Xem Xét và Hoàn Tất
- Xem xét tất cả các cài đặt
- Nhấp vào TẠO
Bước 3: Xác minh Cân Bằng Tải
- Đi tới Dịch vụ Mạng -> Cân Bằng Tải ->
global-lb-external-http - Xem xét các Tab
CÂN BẰNG TẢI
BACKENDS
FRONTENDS
Bước 4: Truy cập Ứng Dụng bằng IP LB trên trình duyệt
Ghi chú quan trọng: CHỜ 3 đến 5 phút trước khi Cân Bằng Tải hoạt động hoàn toàn.
# Truy cập Ứng Dụng
http://LB-IP
Bước 5: Kiểm tra chức năng đa khu vực (Gửi lưu lượng đến khu vực gần nhất với khách hàng)
Để mô phỏng người dùng ở một vị trí địa lý khác, bạn có thể kết nối với một trong các phiên bản máy ảo của bạn ở một khu vực khác, và sau đó chạy lệnh curl từ phiên bản đó để xem yêu cầu đi đến một phiên bản trong khu vực gần nhất.
# Thiết lập Dự Án
gcloud config set project PROJECT_ID
gcloud config set project gcpdemos
# Khu vực: us-central1
gcloud compute ssh --zone "us-central1-c" "mig1-us-central1-xq12"
curl http://LB-IP
curl http://34.36.49.82/
# Khu vực: us-east1
gcloud compute ssh --zone "us-east1-d" "mig2-us-east1-693l"
curl http://LB-IP
curl http://34.36.49.82/
Bước 6: Xóa Cân Bằng Tải
- Xóa cân bằng tải được tạo như một phần của bản demo này.
- Đừng xóa dịch vụ backend vì chúng ta cần sử dụng trong bản demo tiếp theo.
🌟 Cảm ơn bạn đã đọc! Nếu bài viết này mang lại giá trị, một lượt thích ❤️, theo dõi hoặc chia sẻ sẽ khuyến khích tôi tiếp tục tạo ra nhiều nội dung hơn.
— Latchu | Kỹ Sư DevOps & Đám Mây Cấp Cao
☁️ AWS | GCP | ☸️ Kubernetes | 🔐 Bảo Mật | ⚡ Tự Động Hóa
📌 Chia sẻ hướng dẫn thực hành, quy tắc tốt nhất & giải pháp đám mây thực tế