1. Giới thiệu
Chào mừng bạn đến với Lớp học lập trình về Quản lý lưu lượng truy cập nâng cao (Envoy) trong Lớp học lập trình HTTP bên ngoài!
Phiên bản mới nhất của Trình cân bằng tải ngoài HTTP(S) với tính năng Quản lý lưu lượng nâng cao chứa tất cả các tính năng của Trình cân bằng tải HTTP(S) bên ngoài toàn cầu cổ điển hiện tại của chúng tôi, nhưng với danh sách ngày càng nhiều gồm các tính năng Quản lý lưu lượng truy cập nâng cao. Một số chức năng trong số này là mới đối với Trình cân bằng tải và một số chức năng cung cấp các tính năng nâng cao cho các chức năng hiện có. Một số tính năng trong danh sách này bao gồm:
- Phân chia lưu lượng truy cập có trọng số
- Yêu cầu phản chiếu
- Phát hiện điểm ngoại lai
- Thử gửi lại yêu cầu
- Chèn lỗi
- Các lựa chọn khác về Đối tượng chung sở thích trong phiên phụ trợ
- Các tuỳ chọn khác để Chuyển đổi tiêu đề
- Chia sẻ tài nguyên trên nhiều nguồn gốc (CORS)
- Các thuật toán cân bằng tải mới
Kiến thức bạn sẽ học được
- Cách thiết lập Nhóm thực thể được quản lý cũng như các quy tắc tường lửa và VPC có liên quan
- Cách sử dụng các tính năng quản lý lưu lượng truy cập nâng cao của trình cân bằng tải mới
- Cách xác thực rằng các tính năng quản lý lưu lượng truy cập nâng cao đang hoạt động như dự kiến.
Bạn cần có
- Kết nối mạng cơ bản và kiến thức cơ bản về HTTP
- Kiến thức cơ bản về dòng lệnh Unix/Linux
Cấu trúc liên kết của lớp học lập trình và trường hợp sử dụng
Hình 1 – Cấu trúc liên kết định tuyến trình cân bằng tải HTTP
Trong lớp học lập trình này, bạn sẽ thiết lập 3 nhóm thực thể được quản lý, một ở miền Đông, miền Tây và miền Trung. Bạn sẽ tạo một trình cân bằng tải https bên ngoài toàn cầu. Trình cân bằng tải sẽ sử dụng một số tính năng trong danh sách các tính năng nâng cao mà trình cân bằng tải dựa trên envoy hỗ trợ. Sau khi được triển khai, bạn sẽ tạo một số nội dung tải được mô phỏng và xác minh rằng các cấu hình mà bạn đặt đang hoạt động đúng cách.
2. Thiết lập và yêu cầu
Thiết lập môi trường theo tiến độ riêng
- Đăng nhập vào Google Cloud Console rồi tạo dự án mới hoặc sử dụng lại dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.
- Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự không được API của Google sử dụng và bạn có thể cập nhật chuỗi này bất cứ lúc nào.
- Mã dự án phải là duy nhất trong tất cả các dự án Google Cloud và không thể thay đổi (bạn không thể thay đổi mã này sau khi đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường bạn không quan tâm đến sản phẩm đó là gì. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (và mã này thường được xác định là
PROJECT_ID
). Vì vậy, nếu không thích, bạn có thể tạo một mã ngẫu nhiên khác hoặc bạn có thể thử mã của riêng mình để xem có mã này chưa. Sau đó, video sẽ được "đóng băng" sau khi tạo dự án. - Có giá trị thứ ba là Project Number (Số dự án) mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu này.
- Tiếp theo, bạn sẽ cần bật tính năng thanh toán trong Cloud Console để sử dụng tài nguyên/API trên Cloud. Việc chạy qua lớp học lập trình này sẽ không tốn nhiều chi phí. Để tắt các tài nguyên để bạn không phải chịu thanh toán ngoài hướng dẫn này, hãy làm theo mọi thao tác "dọn dẹp" hướng dẫn ở cuối lớp học lập trình. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí 300 USD.
Khởi động Cloud Shell
Mặc dù bạn có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trong Đám mây.
Trong Bảng điều khiển GCP, hãy nhấp vào biểu tượng Cloud Shell ở thanh công cụ trên cùng bên phải:
Sẽ chỉ mất một chút thời gian để cấp phép và kết nối với môi trường. Sau khi hoàn tất, bạn sẽ thấy như sau:
Máy ảo này chứa tất cả các công cụ phát triển mà bạn cần. Phiên bản này cung cấp thư mục gốc có dung lượng ổn định 5 GB và chạy trên Google Cloud, giúp nâng cao đáng kể hiệu suất và khả năng xác thực của mạng. Bạn có thể thực hiện tất cả công việc trong phòng thí nghiệm này chỉ bằng một trình duyệt.
Trước khi bắt đầu
Bên trong Cloud Shell, hãy đảm bảo rằng bạn thiết lập mã dự án
dự án danh sách cấu hình gcloud
Dự án thiết lập cấu hình gcloud [YOUR-PROJECT-NAME]
PROJECT_ID=[YOUR-PROJECT-NAME]
lặp lại $PROJECT_ID
Cho phép API
Bật tất cả dịch vụ cần thiết
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com
3. Tạo mạng lưới VPC
Tạo mạng lưới VPC
Của Cloud Shell
gcloud compute networks create httplbs --subnet-mode=auto
Đầu ra
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/httplbs]. NAME: httplbs SUBNET_MODE: AUTO BGP_ROUTING_MODE: REGIONAL IPV4_RANGE: GATEWAY_IPV4:
Tạo các quy tắc tường lửa VPC
Sau khi tạo VPC, giờ bạn sẽ tạo các quy tắc về tường lửa. Quy tắc tường lửa sẽ được dùng để cho phép tất cả IP truy cập IP ngoài trên trang web của ứng dụng kiểm thử trên cổng 80 đối với lưu lượng truy cập http.
Của Cloud Shell
gcloud compute firewall-rules create httplb-allow-http-rule \ --allow tcp:80 \ --network httplbs \ --source-ranges 0.0.0.0/0 \ --priority 700
Đầu ra
Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/httplb-allow-http-rule]. Creating firewall...done. NAME: httplb-allow-http-rule NETWORK: httplbs DIRECTION: INGRESS PRIORITY: 700 ALLOW: tcp:80 DENY: DISABLED: False
4. Thiết lập Nhóm thực thể được quản lý
Bạn cần thiết lập Nhóm thực thể được quản lý bao gồm các mẫu cho tài nguyên phụ trợ mà Trình cân bằng tải HTTP sử dụng. Trước tiên, chúng ta sẽ tạo Instance Mẫu xác định cấu hình cho máy ảo sẽ được tạo cho từng khu vực. Tiếp theo, đối với một phần phụ trợ ở mỗi khu vực, chúng ta sẽ tạo một Nhóm thực thể được quản lý tham chiếu đến một Mẫu thực thể.
Nhóm thực thể được quản lý có thể theo vùng hoặc theo Khu vực. Đối với bài tập trong phòng thí nghiệm này, chúng ta sẽ tạo 3 Nhóm thực thể được quản lý theo khu vực, một ở us-east1, một ở us-west1 và một ở us-central1.
Trong phần này, bạn có thể thấy tập lệnh khởi động được tạo sẵn. Tập lệnh này sẽ được tham chiếu khi tạo thực thể. Tập lệnh khởi động này cài đặt và bật các chức năng của máy chủ web mà chúng ta sẽ dùng để mô phỏng ứng dụng web. Vui lòng khám phá tập lệnh này.
Tạo mẫu thực thể phía Đông, Tây và Trung tâm
Bước đầu tiên là tạo mẫu thực thể us-east-1.
Của Cloud Shell
gcloud compute instance-templates create us-east1-template \ --region=us-east1 \ --network=httplbs \ --tags=http-server, \ --image-family=debian-9 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Đầu ra
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-east1-template]. NAME: us-east1-template MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: CREATION_TIMESTAMP: 2021-11-11T11:02:37.511-08:00
Bước tiếp theo là tạo mẫu thực thể us-west-1.
Của Cloud Shell
gcloud compute instance-templates create us-west1-template \ --region=us-west1 \ --network=httplbs \ --tags=http-server, \ --image-family=debian-9 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Đầu ra
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-west1-template]. NAME: us-west1-template MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: CREATION_TIMESTAMP: 2021-11-11T11:03:08.577-08:00
Bước tiếp theo là tạo mẫu thực thể us-central-1.
Của Cloud Shell
gcloud compute instance-templates create us-central1-template \ --region=us-central1 \ --network=httplbs \ --tags=http-server, \ --image-family=debian-9 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Đầu ra
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-central1-template]. NAME: us-central1-template MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: CREATION_TIMESTAMP: 2021-11-11T11:03:44.179-08:00
Giờ đây, bạn có thể xác minh các mẫu thực thể của chúng ta đã được tạo thành công bằng lệnh gcloud sau đây:
Của Cloud Shell
gcloud compute instance-templates list
Đầu ra
NAME MACHINE_TYPE PREEMPTIBLE CREATION_TIMESTAMP us-central1-template n1-standard-1 2021-11-09T09:25:37.263-08:00 us-east1-template n1-standard-1 2021-11-09T09:24:35.275-08:00 us-west1-template n1-standard-1 2021-11-09T09:25:08.016-08:00
Tạo nhóm thực thể được quản lý ở miền Đông, miền Tây và miền Trung
Bây giờ, chúng ta phải tạo một nhóm thực thể được quản lý từ các mẫu thực thể đã tạo trước đó.
Của Cloud Shell
gcloud compute instance-groups managed create us-east1-mig \ --base-instance-name=us-east1-mig \ --size=1 \ --template=us-east1-template \ --zone=us-east1-b
Đầu ra
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-east1-b/instanceGroupManagers/us-east1-mig]. NAME: us-east1-mig LOCATION: us-east1-b SCOPE: zone BASE_INSTANCE_NAME: us-east1-mig SIZE: 0 TARGET_SIZE: 1 INSTANCE_TEMPLATE: us-east1-template AUTOSCALED: no
Của Cloud Shell
gcloud compute instance-groups managed create us-west1-mig \ --base-instance-name=us-west1-mig \ --size=1 \ --template=us-west1-template \ --zone=us-west1-a
Đầu ra
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroupManagers/us-west1-mig]. NAME: us-west1-mig LOCATION: us-west1-a SCOPE: zone BASE_INSTANCE_NAME: us-west1-mig SIZE: 0 TARGET_SIZE: 1 INSTANCE_TEMPLATE: us-west1-template AUTOSCALED: no
Của Cloud Shell
gcloud compute instance-groups managed create us-central1-mig \ --base-instance-name=us-central1-mig \ --size=1 \ --template=us-central1-template \ --zone=us-central1-a
Đầu ra
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-central1-a/instanceGroupManagers/us-central1-mig]. NAME: us-central1-mig LOCATION: us-central1-a SCOPE: zone BASE_INSTANCE_NAME: us-central1-mig SIZE: 0 TARGET_SIZE: 1 INSTANCE_TEMPLATE: us-central1-template AUTOSCALED: no
Chúng ta có thể xác minh các nhóm thực thể của mình đã được tạo thành công hay chưa bằng lệnh gcloud sau đây:
Của Cloud Shell
gcloud compute instance-groups list
Đầu ra
NAME LOCATION SCOPE NETWORK MANAGED INSTANCES us-central1-mig us-central1 zone httplbs Yes 1 us-west1-mig us-west1 zone httplbs Yes 1 us-east1-mig us-east1 zone httplbs Yes 1
Xác minh chức năng của máy chủ web
Mỗi phiên bản đều được định cấu hình để chạy máy chủ web Apache bằng tập lệnh PHP đơn giản hiển thị:
Để đảm bảo máy chủ web của bạn hoạt động bình thường, hãy chuyển đến Compute Engine -> thực thể máy ảo. Đảm bảo rằng các bản sao mới (ví dụ: us-east1-mig-xxx) đã được tạo theo định nghĩa về nhóm thực thể tương ứng.
Bây giờ, hãy thực hiện yêu cầu web trong trình duyệt của bạn tới yêu cầu đó để đảm bảo máy chủ web đang chạy (quá trình này có thể mất một phút để khởi động). Trên trang các phiên bản máy ảo trong phần Compute Engine, hãy chọn một phiên bản do nhóm thực thể của bạn tạo rồi nhấp vào IP bên ngoài (công khai) của phiên bản đó.
Hoặc, trong trình duyệt, hãy điều hướng đến http://<IP_Address>
5. Thiết lập Trình cân bằng tải
Tạo tính năng Kiểm tra tình trạng
Trước tiên, chúng tôi phải tạo một quy trình kiểm tra tình trạng cơ bản để đảm bảo các dịch vụ của chúng tôi có thể hoạt động bình thường. Chúng tôi sẽ tạo một quy trình kiểm tra tình trạng cơ bản. Bạn sẽ có nhiều lựa chọn tuỳ chỉnh nâng cao hơn.
Của Cloud Shell
gcloud compute health-checks create http http-basic-check \ --port 80
Đặt trước địa chỉ IP ngoài
Ở bước này, bạn cần phải đặt trước một địa chỉ IP tĩnh có sẵn trên toàn cầu. Địa chỉ này sau đó sẽ được đính kèm vào Trình cân bằng tải.
Của Cloud Shell
gcloud compute addresses create lb-ipv4-2 \ --ip-version=IPV4 \ --global
Hãy nhớ ghi lại Địa chỉ IP đã được đặt trước.
gcloud compute addresses describe lb-ipv4-2 \ --format="get(address)" \ --global
Tạo dịch vụ phụ trợ
Bây giờ, chúng ta phải tạo một dịch vụ phụ trợ cho từng nhóm thực thể được quản lý mà chúng ta đã tạo trước đó. Một hướng cho miền Đông, miền Tây và miền Trung.
Tạo dịch vụ phụ trợ cho nhóm thực thể được quản lý ở miền Đông.
Của Cloud Shell
gcloud compute backend-services create east-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
Tạo một dịch vụ phụ trợ cho nhóm thực thể do phương Tây quản lý.
Của Cloud Shell
gcloud compute backend-services create west-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
Tạo dịch vụ phụ trợ cho nhóm thực thể do Trung tâm quản lý.
Của Cloud Shell
gcloud compute backend-services create central-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
Thêm MIG vào dịch vụ phụ trợ
Giờ đây, khi đã tạo các dịch vụ phụ trợ tương ứng cho từng cụm ứng dụng, chúng ta phải thêm các Nhóm phiên bản được quản lý mà chúng ta đã tạo trước đó vào mỗi dịch vụ phụ trợ.
Thêm East MIG vào dịch vụ phụ trợ.
Của Cloud Shell
gcloud compute backend-services add-backend east-backend-service \ --balancing-mode='UTILIZATION' \ --instance-group=us-east1-mig \ --instance-group-zone=us-east1-b \ --global
Thêm West MIG vào dịch vụ phụ trợ.
Của Cloud Shell
gcloud compute backend-services add-backend west-backend-service \ --balancing-mode='UTILIZATION' \ --instance-group=us-west1-mig \ --instance-group-zone=us-west1-a \ --global
Thêm MIG Trung tâm vào dịch vụ phụ trợ.
Của Cloud Shell
gcloud compute backend-services add-backend central-backend-service \ --balancing-mode='UTILIZATION' \ --instance-group=us-central1-mig \ --instance-group-zone=us-central1-a \ --global
Tạo bản đồ URL
Bản đồ URL là nơi các tính năng quản lý lưu lượng truy cập nâng cao cho phòng thí nghiệm này sẽ hoạt động. Chúng tôi phải tạo một tệp .yaml chứa cấu hình đó. Trong tệp .yaml, chúng tôi đã tạo một kết quả so khớp tiền tố trên /roundrobbin, do đó, chỉ có các cấu hình này ảnh hưởng đến việc so khớp lưu lượng truy cập /roundrobbin. Chúng ta đã chỉ định rằng 50% lưu lượng truy cập nên đến dịch vụ east-backend và 50% lưu lượng truy cập nên đến dịch vụ west-backend-service. Chúng tôi cũng đã thêm một giá trị tiêu đề phản hồi:{test}. Giá trị này sẽ xuất hiện trên tất cả các câu trả lời. Cuối cùng, chúng tôi bổ sung thêm rằng tất cả lưu lượng truy cập phải được phản ánh sang dịch vụ phụ trợ trung tâm. Lưu lượng truy cập được sao chép và gửi tại đây chỉ cho mục đích thử nghiệm.
Lưu ví dụ dưới dạng tệp .yaml trên máy của bạn.
defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service kind: compute #urlMap name: web-map-http hostRules: - hosts: - '*' pathMatcher: matcher1 pathMatchers: - defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service name: matcher1 routeRules: - matchRules: - prefixMatch: /roundrobbin priority: 2 headerAction: responseHeadersToAdd: - headerName: test headerValue: value replace: True routeAction: weightedBackendServices: - backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service weight: 50 - backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/west-backend-service weight: 50 retryPolicy: retryConditions: ['502', '504'] numRetries: 3 perTryTimeout: seconds: 1 nanos: 50 requestMirrorPolicy: backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/central-backend-service
Tạo Bản đồ URL để nhập tài liệu từ máy của bạn. Lưu ý rằng đường dẫn nguồn sẽ khác nhau, tuỳ thuộc vào nơi bạn lưu tệp .yaml.
Của Cloud Shell
gcloud compute url-maps import web-map-http \ --source /Users/[USERNAME]/Documents/Codelab/lbconfig.yaml \ --global
Tạo giao diện người dùng HTTP
Bước cuối cùng trong việc tạo trình cân bằng tải là tạo giao diện người dùng. Thao tác này sẽ liên kết địa chỉ IP mà bạn đặt trước trước đó với bản đồ URL của trình cân bằng tải mà bạn đã tạo.
Của Cloud Shell
gcloud compute target-http-proxies create http-lb-proxy-adv \ --url-map=web-map-http
Tiếp theo, bạn cần tạo quy tắc chuyển tiếp chung. Quy tắc này sẽ ánh xạ địa chỉ IP đã đặt trước trước đó với proxy HTTP.
Của Cloud Shell
gcloud compute forwarding-rules create http-content-rule \ --load-balancing-scheme EXTERNAL_MANAGED \ --address=lb-ipv4-2 \ --global \ --target-http-proxy=http-lb-proxy-adv \ --ports=80
6. Xác minh rằng các Tính năng lưu lượng truy cập nâng cao đang hoạt động
Để xác minh rằng tính năng phân chia lưu lượng truy cập được triển khai đang hoạt động, bạn cần tạo một số lượt tải. Để làm việc này, chúng ta sẽ tạo một máy ảo mới để mô phỏng tải.
Tạo quy tắc cho phép tường lửa SSH
Để tạo lưu lượng truy cập từ bạn qua SSH vào máy ảo mà bạn gửi, trước tiên, bạn cần tạo một quy tắc tường lửa để cho phép lưu lượng truy cập SSH vào máy ảo đó.
Của Cloud Shell
gcloud compute firewall-rules create fw-allow-ssh \ --network=httplbs \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Đầu ra
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED fw-allow-ssh httplbs INGRESS 1000 tcp:22 False
Tạo Siege-vm
Bây giờ, bạn sẽ tạo siege-vm mà bạn sẽ dùng để tạo lượt tải
Của Cloud Shell
gcloud compute instances create siege-vm \ --network=httplbs \ --zone=us-east4-c \ --machine-type=e2-medium \ --tags=allow-ssh,http-server \ --metadata=startup-script='sudo apt-get -y install siege'
Đầu ra
NAME ZONE MACHINE_TYPE INTERNAL_IP EXTERNAL_IP STATUS siege-vm us-east4-c e2-medium 10.150.0.3 34.85.218.119 RUNNING
Tiếp theo, bạn có thể SSH vào máy ảo mà mình đã tạo. Sau khi tạo tệp này, hãy nhấp vào SSH để chạy thiết bị đầu cuối và kết nối.
Sau khi kết nối, hãy chạy lệnh sau để tạo tải. Sử dụng địa chỉ IP mà trước đó bạn đã đặt trước cho trình cân bằng tải http bên ngoài.
Của Cloud Shell
siege -c 250 http://$lb-ipv4-2/roundrobbin
Đầu ra
New configuration template added to /home/cloudcurriculumdeveloper/.siege Run siege -C to view the current settings in that file [alert] Zip encoding disabled; siege requires zlib support to enable it: No such file or directory ** SIEGE 4.0.2 ** Preparing 250 concurrent users for battle. The server is now under siege...
Kiểm tra tình trạng phân phối tải
Bây giờ, Chiến dịch bao vây đang chạy, đã đến lúc kiểm tra để đảm bảo rằng lưu lượng truy cập đang được phân bổ đồng đều cho các nhóm thực thể được quản lý ở phía đông và phía tây. Ngoài ra, bạn có thể kiểm tra để đảm bảo rằng tính năng phản chiếu lưu lượng truy cập đang hoạt động và lưu lượng truy cập đang được gửi đến nhóm thực thể được quản lý ở trung tâm.
Trong Cloud Console, trên trình đơn Điều hướng, hãy nhấp vào Network Services > Cân bằng tải. Chọn web-map-http của trình cân bằng tải. Chuyển đến thẻ Giám sát và bạn có thể thấy biểu đồ bên dưới.
Bạn sẽ có thể xem chế độ phân chia lưu lượng truy cập theo thời gian thực cho MIG này. Lưu lượng truy cập sẽ được chia đều vì bạn đã định cấu hình tỷ lệ phân chia theo thứ tự vòng tròn là 50/50.
Để kiểm tra xem chính sách phản chiếu lưu lượng truy cập mà bạn đã tạo có hoạt động không, bạn cần kiểm tra hoạt động sử dụng nhóm thực thể được quản lý trung tâm trong dịch vụ phụ trợ trung tâm. Để thực hiện việc này, hãy chuyển đến phần tính toán, công cụ tính toán, nhóm thực thể rồi chọn us-central1-mig. Tiếp theo, hãy chuyển đến thẻ giám sát.
Bạn sẽ thấy các biểu đồ được điền sẵn, minh hoạ rằng lưu lượng truy cập đã được đồng bộ hoá với nhóm thực thể được quản lý này.
Dừng cuộc bao vây
Bây giờ, bạn đã chứng minh được rằng tính năng chia tách lưu lượng truy cập nâng cao đang hoạt động, đã đến lúc bạn dừng vòng vây. Để thực hiện việc này, hãy quay lại thiết bị đầu cuối SSH của siege-vm rồi nhấn tổ hợp phím Ctrl+C để dừng cuộc bao vây.
Xác thực tiêu đề phản hồi đang được gửi
Trước khi dọn dẹp, bạn có thể xác thực nhanh xem tiêu đề phản hồi thích hợp có đang được gửi bởi trình cân bằng tải http hay không. Bạn đã định cấu hình trang này để gửi kiểm tra tiêu đề có giá trị nội dung. Chạy lệnh curl từ Cloud shell sẽ đưa ra phản hồi dự kiến.
Của Cloud Shell
curl -svo /dev/null http://lb-ipv4-2/roundrobbin
Đầu ra
* Trying lb-ipv4-2.. * TCP_NODELAY set * Connected to lb-ipv4-2 ( lb-ipv4-2) port 80 (#0) > GET /roundrobbin HTTP/1.1 > Host: lb-ipv4-2 > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 404 Not Found < date: Wed, 10 Nov 2021 17:05:27 GMT < server: envoy < Content-Length: 273 < content-type: text/html; charset=iso-8859-1 < via: 1.1 google < test: value < { [273 bytes data] * Connection #0 to host 34.149.2.26 left intact * Closing connection 0
7. Vệ sinh phòng thí nghiệm
Giờ đây, khi chúng ta hoàn tất môi trường phòng thí nghiệm, đã đến lúc chia nhỏ môi trường này. Vui lòng chạy các lệnh sau để xoá môi trường thử nghiệm.
Của Cloud Shell
gcloud compute instances delete siege-vm --zone=us-east4-c gcloud compute forwarding-rules delete http-content-rule --global gcloud compute target-http-proxies delete http-lb-proxy-adv gcloud compute url-maps delete web-map-http gcloud compute backend-services delete east-backend-service --global gcloud compute backend-services delete west-backend-service --global gcloud compute backend-services delete central-backend-service --global gcloud compute addresses delete lb-ipv4-2 --global gcloud compute health-checks delete http-basic-check gcloud compute instance-groups managed delete us-east1-mig --zone us-east1-b gcloud compute instance-groups managed delete us-west1-mig --zone us-west1-a gcloud compute instance-groups managed delete us-central1-mig --zone us-central1-a gcloud compute instance-templates delete "us-east1-template" gcloud compute instance-templates delete "us-west1-template" gcloud compute instance-templates delete "us-central1-template" gcloud compute firewall-rules delete httplb-allow-http-rule gcloud compute firewall-rules delete fw-allow-ssh gcloud compute networks delete httplbs
8. Xin chúc mừng!
Bạn đã hoàn thành Lớp học lập trình về Quản lý lưu lượng truy cập nâng cao (Envoy) qua HTTP bên ngoài!
Nội dung đã đề cập
- Cách thiết lập Nhóm thực thể được quản lý cũng như các quy tắc tường lửa và VPC có liên quan
- Cách sử dụng các tính năng quản lý lưu lượng truy cập nâng cao của trình cân bằng tải mới
- Cách xác thực rằng các tính năng quản lý lưu lượng truy cập nâng cao đang hoạt động như dự kiến.
Các bước tiếp theo
- Hãy thử một số tính năng định tuyến nâng cao khác như viết lại URL, thêm tiêu đề CORS và nhiều tính năng khác ( link)