1. Giới thiệu
Private Service Connect là một tính năng của mạng Google Cloud, cho phép người dùng truy cập riêng tư vào các dịch vụ được quản lý từ bên trong mạng VPC của họ. Tương tự, tính năng này cho phép nhà sản xuất dịch vụ được quản lý lưu trữ các dịch vụ này trong mạng VPC riêng của họ và cung cấp kết nối riêng tư cho người tiêu dùng.
Cho đến nay, sau khi các dịch vụ PSC được hiển thị thông qua một tệp đính kèm dịch vụ, bạn không thể thay đổi bộ cân bằng tải dịch vụ mà không xoá tệp đính kèm dịch vụ và làm gián đoạn khả năng kết nối của điểm cuối PSC người dùng. Với việc giới thiệu tính năng có thể biến đổi của PSC, nhà sản xuất có thể cập nhật trình cân bằng tải trong khi vẫn giữ được kết nối điểm cuối PSC. Việc duy trì kết nối điểm cuối PSC với tệp đính kèm dịch vụ trong khi thay đổi bộ cân bằng tải có lợi ích là không yêu cầu bất kỳ hành động nào ở phía người dùng.
Hiện tại, khả năng biến đổi PSC sẽ hỗ trợ
- Di chuyển sang quy tắc chuyển tiếp của trình cân bằng tải cùng loại (ví dụ: Network Passthrough sang Network Passthrough)
- Di chuyển sang quy tắc chuyển tiếp của trình cân bằng tải thuộc một loại khác (ví dụ: Truyền qua mạng đến Trình cân bằng tải ứng dụng)
Khả năng thay đổi PSC không hỗ trợ việc chỉnh sửa quy tắc chuyển tiếp tại chỗ.
Trong phòng thí nghiệm này, bạn sẽ tạo một dịch vụ web của nhà sản xuất được hiển thị thông qua một bộ cân bằng tải Network Passthrough nội bộ, đảm bảo rằng dịch vụ này có khả năng kết nối thông qua một điểm cuối PSC, sau đó cập nhật mối liên kết giữa tệp đính kèm dịch vụ với một quy tắc chuyển tiếp mới cho một bộ cân bằng tải Application nội bộ.
Kiến thức bạn sẽ học được
- Tạo một dịch vụ web Apache đơn giản được hiển thị dưới dạng dịch vụ nhà sản xuất PSC.
- Tạo một điểm cuối PSC.
- Tạo một vùng riêng tư Cloud DNS cho các lệnh gọi dịch vụ của người dùng.
- Cập nhật quy tắc chuyển tiếp được liên kết với tệp đính kèm dịch vụ bằng cách sử dụng Khả năng thay đổi PSC.
Bạn cần có
- Một dự án trên Google Cloud có quyền của chủ sở hữu
- Kiến thức cơ bản về mạng Google Cloud
2. Môi trường thử nghiệm
Theo truyền thống, Nhà sản xuất và Người tiêu dùng làm việc trong các dự án khác nhau. Để đơn giản, chúng ta sẽ thực hiện tất cả các thao tác trong cùng một dự án, nhưng mỗi bước sẽ được gắn nhãn là dự án Producer hoặc Consumer trong trường hợp người dùng muốn làm việc trong các dự án khác nhau.
Trong lớp học này, chúng ta sẽ bắt đầu bằng cách tạo producer-vpc với 3 mạng con; một mạng con để lưu trữ dịch vụ nhà sản xuất và máy ảo thử nghiệm, một mạng con cho các quy tắc chuyển tiếp của trình cân bằng tải và một mạng con NAT PSC. Chúng ta sẽ cần một Cloud Router và Cloud NAT để có thể truy cập Internet nhằm tải các gói Linux xuống. Chúng ta sẽ hiển thị dịch vụ Apache, được định cấu hình thông qua một nhóm thực thể không được quản lý, thông qua một trình cân bằng tải Network Passthrough nội bộ theo vùng và liên kết quy tắc chuyển tiếp với một tệp đính kèm dịch vụ.
Về phía người tiêu dùng, chúng ta sẽ tạo consumer-vpc với một mạng con duy nhất để lưu trữ điểm cuối PSC và một máy ảo ứng dụng kiểm thử. Chúng ta sẽ định cấu hình một vùng riêng tư Cloud DNS để truy cập vào dịch vụ thông qua tên máy chủ.
Để giới thiệu tính năng Thay đổi của PSC, về phía nhà sản xuất, chúng ta sẽ thêm 2 mạng con bổ sung; một mạng con để lưu trữ máy ảo dịch vụ mới và một mạng con chỉ dành cho proxy của trình cân bằng tải. Chúng ta sẽ tạo một máy ảo mới lưu trữ máy chủ web Apache, được định cấu hình thông qua một nhóm thực thể không được quản lý và hiển thị thông qua một trình cân bằng tải ứng dụng nội bộ theo khu vực mới. Chúng tôi sẽ cập nhật tệp đính kèm dịch vụ để trỏ đến quy tắc chuyển tiếp mới và kiểm tra để đảm bảo rằng khả năng kết nối ở phía người tiêu dùng vẫn được duy trì.

3. Thiết lập và yêu cầu
Thiết lập môi trường theo tốc độ của riêng bạn
- Đăng nhập vào Google Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một 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ự mà các API của Google không sử dụng. Bạn luôn có thể cập nhật thông tin này.
- Mã dự án là mã duy nhất trên tất cả các dự án trê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 thì bạn không cần quan tâm đến chuỗi này. 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 (thường được xác định là
PROJECT_ID). Nếu không thích mã nhận dạng được tạo, bạn có thể tạo một mã nhận dạng ngẫu nhiên khác. Hoặc bạn có thể thử tên người dùng của riêng mình để xem tên đó có được chấp nhận hay không. Bạn không thể thay đổi tên này sau bước này và tên này sẽ tồn tại trong suốt thời gian của dự án. - Để bạn nắm được thông tin, có một giá trị thứ ba là Số dự án mà một số API sử dụng. Tìm hiểu thêm về cả 3 giá trị này trong tài liệu.
- Tiếp theo, bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên/API trên đám mây. Việc thực hiện lớp học lập trình này sẽ không tốn nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh bị tính phí ngoài phạm vi hướng dẫn này, bạn có thể xoá các tài nguyên đã tạo hoặc xoá dự án. 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í trị giá 300 USD.
Khởi động Cloud Shell
Mặc dù 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 trên Cloud.
Trên Bảng điều khiển Google Cloud, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ ở trên cùng bên phải:

Quá trình này chỉ mất vài phút để cung cấp và kết nối với môi trường. Khi quá trình này kết thúc, bạn sẽ thấy như sau:

Máy ảo này được trang bị tất cả các công cụ phát triển mà bạn cần. Nó cung cấp một thư mục chính có dung lượng 5 GB và chạy trên Google Cloud, giúp tăng cường đáng kể hiệu suất mạng và hoạt động xác thực. Bạn có thể thực hiện mọi thao tác trong lớp học lập trình này trong trình duyệt. Bạn không cần cài đặt bất cứ thứ gì.
4. Trước khi bắt đầu
Bật API
Trong Cloud Shell, hãy đảm bảo rằng bạn đã thiết lập mã dự án
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] export project=[YOUR-PROJECT-NAME] export region=us-central1 export zone=$region-a echo $project echo $region echo $zone
Bật tất cả các dịch vụ cần thiết
gcloud services enable compute.googleapis.com gcloud services enable dns.googleapis.com
5. Xây dựng mạng lưới nhà sản xuất [Dự án nhà sản xuất]
Tạo mạng VPC
Từ Cloud Shell
gcloud compute networks create producer-vpc \
--subnet-mode=custom
Tạo mạng con
Chúng ta sẽ bắt đầu bằng cách triển khai 3 mạng con vào producer-vpc. Một sẽ dùng để triển khai dịch vụ nhà sản xuất, một cho các quy tắc chuyển tiếp của bộ cân bằng tải và một sẽ được liên kết với Tệp đính kèm dịch vụ PSC cho mạng con NAT PSC của chúng tôi.
Từ Cloud Shell
gcloud compute networks subnets create producer-service-subnet \
--network=producer-vpc \
--range=10.0.0.0/28 \
--region=$region
gcloud compute networks subnets create producer-fr-subnet \
--network=producer-vpc \
--range=192.168.0.0/28 \
--region=$region
gcloud compute networks subnets create psc-nat-subnet \
--network=producer-vpc \
--range=10.100.0.0/28 \
--region=$region \
--purpose=PRIVATE_SERVICE_CONNECT
Tạo Cloud NAT
Bạn cần có Cloud NAT để cài đặt các gói phù hợp cho dịch vụ nhà sản xuất của chúng tôi.
Từ Cloud Shell
gcloud compute routers create $region-cr \
--network=producer-vpc \
--region=$region
Từ Cloud Shell
gcloud compute routers nats create $region-nat \
--router=$region-cr \
--region=$region \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
Tạo Chính sách và quy tắc cho Tường lửa mạng
Từ Cloud Shell
gcloud compute network-firewall-policies create producer-vpc-policy --global
gcloud compute network-firewall-policies associations create \
--firewall-policy producer-vpc-policy \
--network producer-vpc \
--name network-producer-vpc \
--global-firewall-policy
Để cho phép IAP kết nối với các phiên bản máy ảo, hãy tạo một quy tắc tường lửa có:
- Áp dụng cho tất cả các phiên bản máy ảo mà bạn muốn có thể truy cập bằng IAP.
- Cho phép lưu lượng truy cập vào từ dải IP 35.235.240.0/20. Dải này chứa tất cả địa chỉ IP mà IAP sử dụng để chuyển tiếp TCP.
Từ Cloud Shell
gcloud compute network-firewall-policies rules create 1000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "SSH with IAP" \
--direction INGRESS \
--src-ip-ranges 35.235.240.0/20 \
--layer4-configs tcp:22 \
--global-firewall-policy
Chúng ta sẽ bắt đầu với 3 quy tắc tường lửa. Một cổng sẽ cho phép truy cập vào các VM để kiểm tra tình trạng của trình cân bằng tải (2000), một cổng cho phép truy cập vào các VM từ dải NAT PSC (3000) và một cổng cho phép kết nối giữa các VM trong mạng con dịch vụ cho mục đích kiểm thử (4000). Chúng ta sẽ tạo tất cả các quy tắc cho cổng 80 vì chúng ta sẽ sử dụng cổng này cho dịch vụ của mình.
Từ Cloud Shell
gcloud compute network-firewall-policies rules create 2000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "LB healthchecks" \
--direction INGRESS \
--src-ip-ranges 130.211.0.0/22,35.191.0.0/16 \
--layer4-configs tcp:80 \
--global-firewall-policy
gcloud compute network-firewall-policies rules create 3000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "allow access from PSC NAT subnet" \
--direction INGRESS \
--src-ip-ranges 10.100.0.0/28 \
--layer4-configs tcp:80 \
--global-firewall-policy
gcloud compute network-firewall-policies rules create 4000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "allow access between producer service VMs and testing client for testing purposes" \
--direction INGRESS \
--src-ip-ranges 10.0.0.0/28 \
--layer4-configs tcp:80 \
--global-firewall-policy
6. Tạo dịch vụ nhà sản xuất [Dự án nhà sản xuất]
Chúng ta sẽ tạo một dịch vụ web Apache đơn giản bằng cách sử dụng một nhóm phiên bản không được quản lý hiển thị "Tôi là một Dịch vụ nhà sản xuất".
Tạo phiên bản
Từ Cloud Shell
gcloud compute instances create producer-service-vm \
--network producer-vpc \
--subnet producer-service-subnet \
--zone $zone \
--no-address \
--metadata startup-script='#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
a2enmod ssl
sudo a2ensite default-ssl
echo "I am a Producer Service." | \
tee /var/www/html/index.html
systemctl restart apache2'
Tạo Nhóm phiên bản chưa được quản lý
Từ Cloud Shell
gcloud compute instance-groups unmanaged create producer-uig \ --zone=$zone
Thêm producer-service-vm vào nhóm thực thể không được quản lý mà chúng ta vừa tạo.
Từ Cloud Shell
gcloud compute instance-groups unmanaged add-instances producer-uig \ --zone=$zone \ --instances=producer-service-vm
Tạo các thành phần của trình cân bằng tải
Đối với phiên bản 1 của dịch vụ nhà sản xuất, chúng ta sẽ hiển thị dịch vụ bằng Trình cân bằng tải truyền qua mạng trên cổng 80.
Triển khai quy trình kiểm tra tình trạng cho cổng 80.
Từ Cloud Shell
gcloud compute health-checks create http producer-hc \
--region=$region
Triển khai dịch vụ phụ trợ và thêm phụ trợ vào dịch vụ phụ trợ.
Từ Cloud Shell
gcloud compute backend-services create producer-bes \ --load-balancing-scheme=internal \ --protocol=tcp \ --region=$region \ --health-checks=producer-hc \ --health-checks-region=$region gcloud compute backend-services add-backend producer-bes \ --region=$region \ --instance-group=producer-uig \ --instance-group-zone=$zone
Tạo địa chỉ IP tĩnh sẽ được dùng cho quy tắc chuyển tiếp của bộ cân bằng tải.
Từ Cloud Shell
gcloud compute addresses create producer-fr-ip\ --region $region \ --subnet producer-fr-subnet \ --addresses 192.168.0.2
Tạo quy tắc chuyển tiếp của trình cân bằng tải để hiển thị cổng 80, sử dụng dịch vụ phụ trợ và địa chỉ IP mà chúng ta đã tạo trước đó.
Từ Cloud Shell
gcloud compute forwarding-rules create producer-fr \ --region=$region \ --load-balancing-scheme=internal \ --network=producer-vpc \ --subnet=producer-fr-subnet \ --address=producer-fr-ip \ --ip-protocol=TCP \ --ports=80 \ --backend-service=producer-bes \ --backend-service-region=$region
7. Kiểm thử Dịch vụ nhà sản xuất [Dự án nhà sản xuất]
Tạo một máy ảo kiểm thử trong producer-service-subnet, đăng nhập vào máy ảo đó và kiểm thử một lệnh gọi đến dịch vụ Apache.
Từ Cloud Shell
gcloud compute instances create producer-test-vm \
--zone=$zone \
--subnet=producer-service-subnet \
--no-address
Từ Cloud Shell
gcloud compute ssh producer-test-vm \
--zone=$zone \
--command="curl -s 192.168.0.2/index.html"
Kết quả đầu ra dự kiến
I am a Producer Service.
8. Cung cấp dịch vụ của nhà sản xuất thông qua tệp đính kèm dịch vụ [Dự án của nhà sản xuất]
Tạo tệp đính kèm dịch vụ. Liên kết địa chỉ này với quy tắc chuyển tiếp mà chúng ta đã tạo bằng psc-nat-subnet.
Từ Cloud Shell
gcloud compute service-attachments create producer-attachment \
--region=$region \
--producer-forwarding-rule=producer-fr \
--connection-preference=ACCEPT_AUTOMATIC \
--nat-subnets=psc-nat-subnet
Bạn nên ghi lại URI của Service Attachment (selfLink) vì bạn sẽ cần URI này trong bước tiếp theo để định cấu hình Điểm cuối PSC. Bạn có thể lấy khoá này bằng cách thực thi lệnh sau trong Cloud Shell.
Từ Cloud Shell
gcloud compute service-attachments describe producer-attachment --region=$region
Đoạn nhạc mẫu
connectionPreference: ACCEPT_AUTOMATIC creationTimestamp: '2026-02-10T07:50:04.250-08:00' description: '' enableProxyProtocol: false fingerprint: xxx id: 'xxx' kind: compute#serviceAttachment name: producer-attachment natSubnets: - https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/psc-nat-subnet pscServiceAttachmentId: high: 'xxx' low: 'xxx' reconcileConnections: false region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/producer-attachment targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-fr
Sao chép URI bắt đầu từ projects
Ví dụ: projects/$project/regions/$region/serviceAttachments/producer-attachment
9. Xây dựng mạng lưới người tiêu dùng [Dự án người tiêu dùng]
Tạo mạng VPC
Từ Cloud Shell
gcloud compute networks create consumer-vpc \
--subnet-mode=custom
Tạo mạng con
Một mạng con duy nhất sẽ được triển khai, nơi chúng ta sẽ triển khai điểm cuối PSC và một máy ảo ứng dụng kiểm thử.
Từ Cloud Shell
gcloud compute networks subnets create consumer-subnet \
--network=consumer-vpc \
--range=10.0.0.0/28 \
--region=$region
Tạo Chính sách và quy tắc cho Tường lửa mạng
Từ Cloud Shell
gcloud compute network-firewall-policies create consumer-vpc-policy --global
gcloud compute network-firewall-policies associations create \
--firewall-policy consumer-vpc-policy \
--network consumer-vpc \
--name network-consumer-vpc \
--global-firewall-policy
Chúng ta cũng sẽ định cấu hình consumer-vpc để sử dụng IAP cho SSH.
Từ Cloud Shell
gcloud compute network-firewall-policies rules create 1000 \
--action ALLOW \
--firewall-policy consumer-vpc-policy \
--description "SSH with IAP" \
--direction INGRESS \
--src-ip-ranges 35.235.240.0/20 \
--layer4-configs tcp:22 \
--global-firewall-policy
10. Tạo điểm cuối Kết nối dịch vụ riêng tư [Dự án người dùng]
Dành riêng địa chỉ IP tĩnh sẽ được dùng cho điểm cuối PSC.
Từ Cloud Shell
gcloud compute addresses create psc-endpoint-ip \
--region=$region \
--subnet=consumer-subnet \
--addresses 10.0.0.2
Tạo điểm cuối PSC bằng địa chỉ IP tĩnh được đặt trước và URI đính kèm dịch vụ mà chúng ta đã lưu ý trước đó.
Từ Cloud Shell
gcloud compute forwarding-rules create psc-endpoint \ --region=$region \ --network=consumer-vpc \ --address=psc-endpoint-ip \ --target-service-attachment=projects/$project/regions/$region/serviceAttachments/producer-attachment
11. Định cấu hình một vùng DNS riêng tư cho Điểm cuối PSC [Dự án của người dùng]
Khi sử dụng Cloud DNS, chúng ta sẽ định cấu hình một vùng DNS riêng tư có tên DNS là myservice.com để dùng với điểm cuối PSC.
Từ Cloud Shell
gcloud dns managed-zones create "consumer-service" \
--dns-name=myservice.com \
--description="consumer service dns" \
--visibility=private \
--networks=consumer-vpc
gcloud dns record-sets transaction start \
--zone="consumer-service"
Tạo một bản ghi A cho myservice.com và trỏ bản ghi đó đến địa chỉ IP của điểm cuối PSC.
Từ Cloud Shell
gcloud dns record-sets transaction add 10.0.0.2 \ --name=myservice.com \ --ttl=300 \ --type=A \ --zone="consumer-service" gcloud dns record-sets transaction execute \ --zone="consumer-service"
12. Kiểm thử điểm cuối PSC [Dự án người tiêu dùng]
Tạo một máy ảo khách
Từ Cloud Shell
gcloud compute instances create consumer-client-vm \
--zone=$zone \
--subnet=consumer-subnet \
--no-address
Kiểm tra khả năng kết nối điểm cuối PSC
Từ Cloud Shell
gcloud compute ssh consumer-client-vm \
--zone=$zone \
--command="curl -s myservice.com/index.html"
Kết quả đầu ra dự kiến
I am a Producer Service.
Trong phần tiếp theo của lớp học lập trình, chúng ta sẽ tạo và di chuyển sang dịch vụ nhà sản xuất mới, giới thiệu tính năng PSC Mutability (Khả năng thay đổi PSC) cho phép cập nhật liền mạch mà không yêu cầu bất kỳ bản cập nhật nào về cấu hình phía người dùng.
13. Tạo dịch vụ nhà sản xuất đã cập nhật [Dự án nhà sản xuất]
Để cập nhật dịch vụ nhà sản xuất, chúng ta sẽ triển khai một VM mới chạy máy chủ web Apache tương tự với thông báo "Tôi là một dịch vụ MỚI của Nhà sản xuất". Chúng ta sẽ thêm VM đó vào một nhóm thực thể mới không được quản lý và sử dụng nhóm thực thể không được quản lý đó làm phần phụ trợ cho trình cân bằng tải mới. Thay vì sử dụng trình cân bằng tải Network Passthrough, chúng tôi sẽ cập nhật trình cân bằng tải thành trình cân bằng tải ứng dụng nội bộ theo khu vực.
Cập nhật mạng
Tạo một mạng con mới sẽ được dùng cho mạng con chỉ dành cho proxy của Bộ cân bằng tải ứng dụng.
Từ Cloud Shell
gcloud compute networks subnets create lb-proxy-subnet \
--network=producer-vpc \
--range=10.200.0.0/24 \
--region=$region \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE
Tạo một mạng con mới để lưu trữ dịch vụ mới của chúng tôi.
Từ Cloud Shell
gcloud compute networks subnets create producer-service-new-subnet \
--network=producer-vpc \
--range=10.0.1.0/28 \
--region=$region
Tạo một quy tắc tường lửa mới cho phép kết nối với dịch vụ nhà sản xuất mới của chúng tôi từ mạng con chỉ có proxy.
Từ Cloud Shell
gcloud compute network-firewall-policies rules create 3001 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "allow access from proxy only subnet" \
--direction INGRESS \
--src-ip-ranges 10.200.0.0/24 \
--layer4-configs tcp:80 \
--global-firewall-policy
Tạo phiên bản
Từ Cloud Shell
gcloud compute instances create new-producer-service-vm \
--network producer-vpc \
--subnet producer-service-new-subnet \
--zone $zone \
--no-address \
--metadata startup-script='#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
a2enmod ssl
sudo a2ensite default-ssl
echo "I am a NEW Producer Service." | \
tee /var/www/html/index.html
systemctl restart apache2'
Tạo Nhóm phiên bản chưa được quản lý
Từ Cloud Shell
gcloud compute instance-groups unmanaged create producer-new-uig \
--zone=$zone
gcloud compute instance-groups unmanaged add-instances producer-new-uig \
--zone=$zone \
--instances=new-producer-service-vm
gcloud compute instance-groups unmanaged set-named-ports producer-new-uig \
--named-ports=http:80 \
--zone=$zone
Tạo thành phần bộ cân bằng tải mới
Tạo dịch vụ phụ trợ. Xin lưu ý rằng chúng tôi đang sử dụng sơ đồ cân bằng tải INTERNAL_MANAGED vì chúng tôi đang cập nhật lên trình cân bằng tải ứng dụng nội bộ.
Từ Cloud Shell
gcloud compute backend-services create producer-new-bes \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=http \ --region=$region \ --health-checks=producer-hc \ --health-checks-region=$region
Thêm Nhóm phiên bản không được quản lý làm phần phụ trợ cho dịch vụ phụ trợ.
Từ Cloud Shell
gcloud compute backend-services add-backend producer-new-bes \ --region=$region \ --instance-group=producer-new-uig \ --instance-group-zone=$zone
Tạo URL Map và nhắm đến các proxy HTTP.
Từ Cloud Shell
gcloud compute url-maps create producer-url-map \ --default-service=producer-new-bes \ --region=$region gcloud compute target-http-proxies create http-proxy \ --url-map=producer-url-map \ --region=$region
Tạo địa chỉ IP tĩnh mà chúng ta sẽ sử dụng cho quy tắc chuyển tiếp. Địa chỉ này sẽ thuộc cùng một mạng con mà chúng tôi đã dùng cho quy tắc chuyển tiếp ban đầu.
Từ Cloud Shell
gcloud compute addresses create producer-fr-new-ip\ --region $region \ --subnet producer-fr-subnet \ --addresses 192.168.0.3
Tạo quy tắc chuyển tiếp.
Từ Cloud Shell
gcloud compute forwarding-rules create new-producer-fr \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=producer-vpc \ --subnet=producer-fr-subnet \ --address=producer-fr-new-ip \ --ports=80 \ --region=$region \ --target-http-proxy=http-proxy \ --target-http-proxy-region=$region
14. Kiểm thử Dịch vụ nhà sản xuất đã cập nhật [Dự án nhà sản xuất]
Chúng ta sẽ sử dụng cùng một VM kiểm thử mà chúng ta đã tạo để kiểm thử dịch vụ được triển khai ban đầu.
Từ Cloud Shell
gcloud compute ssh producer-test-vm \
--zone=$zone \
--command="curl -s 192.168.0.3/index.html"
Xin lưu ý rằng chúng tôi đang gọi đến một địa chỉ IP đã cập nhật! 192.168.0.3 là địa chỉ IP cho trình cân bằng tải ứng dụng nội bộ theo khu vực của chúng tôi.
Kết quả đầu ra dự kiến
I am a NEW Producer Service.
15. Cập nhật Service Attachment [Dự án nhà sản xuất]
Để hình dung rõ hơn về nội dung cập nhật đối với quy tắc chuyển tiếp Service Attachment, chúng ta có thể chạy lệnh mô tả trên Service Attachment trước và sau khi thay đổi.
Từ Cloud Shell
gcloud compute service-attachments describe producer-attachment \
--region=$region \
--format="value(targetService)"
Kết quả đầu ra dự kiến
https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-fr
Cập nhật Service Attachment.
Từ Cloud Shell
gcloud compute service-attachments update producer-attachment \ --region=$region \ --target-service=projects/$project/regions/$region/forwardingRules/new-producer-fr
Bây giờ, hãy chạy lại lệnh describe để xem quy tắc chuyển tiếp mới.
Từ Cloud Shell
gcloud compute service-attachments describe producer-attachment \
--region=$region \
--format="value(targetService)"
Kết quả đầu ra dự kiến
https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/new-producer-fr
16. Kiểm tra lại kết nối PSC của người tiêu dùng [Dự án của người tiêu dùng]
Đăng nhập vào cùng một ứng dụng của người dùng.
Từ Cloud Shell
gcloud compute ssh consumer-client-vm \
--zone=$zone \
--command="curl -s myservice.com/index.html"
Kết quả đầu ra dự kiến
I am a NEW Producer Service.
Xin chúc mừng! Bạn đã cập nhật thành công một trình cân bằng tải dịch vụ nhà sản xuất PSC và không cần thay đổi cấu hình ở phía người dùng!
17. Các bước dọn dẹp [Dự án dành cho người tiêu dùng]
Xoá các thành phần trong phòng thí nghiệm khỏi một thiết bị đầu cuối Cloud Shell
gcloud dns record-sets delete myservice.com --zone="consumer-service" --type=A -q gcloud dns managed-zones delete "consumer-service" -q gcloud compute forwarding-rules delete psc-endpoint --region=$region -q gcloud compute addresses delete psc-endpoint-ip --region=$region -q gcloud compute instances delete consumer-client-vm --zone=$zone --project $project -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy consumer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=consumer-vpc-policy --name=network-consumer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete consumer-vpc-policy --global -q gcloud compute networks subnets delete consumer-subnet --region $region -q gcloud compute networks delete consumer-vpc -q
18. Các bước dọn dẹp [Dự án của nhà sản xuất]
Xoá các thành phần trong phòng thí nghiệm khỏi một thiết bị đầu cuối Cloud Shell
gcloud compute service-attachments delete producer-attachment --region=$region -q gcloud compute instances delete producer-test-vm --zone=$zone --project $project -q gcloud compute forwarding-rules delete new-producer-fr --region=$region -q gcloud compute addresses delete producer-fr-new-ip --region $region -q gcloud compute target-http-proxies delete http-proxy --region $region -q gcloud compute url-maps delete producer-url-map --region $region -q gcloud compute backend-services delete producer-new-bes --region $region -q gcloud compute instance-groups unmanaged delete producer-new-uig --zone $zone -q gcloud compute instances delete new-producer-service-vm --zone $zone --project $project -q gcloud compute networks subnets delete producer-service-new-subnet --region $region -q gcloud compute networks subnets delete lb-proxy-subnet --region $region -q gcloud compute forwarding-rules delete producer-fr --region=$region -q gcloud compute addresses delete producer-fr-ip --region $region -q gcloud compute backend-services delete producer-bes --region $region -q gcloud compute health-checks delete producer-hc --region $region -q gcloud compute instance-groups unmanaged delete producer-uig --zone $zone -q gcloud compute instances delete producer-service-vm --zone $zone --project $project -q gcloud compute network-firewall-policies rules delete 4000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 3001 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 3000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 2000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy --name=network-producer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete producer-vpc-policy --global -q gcloud compute routers nats delete $region-nat --router=$region-cr --region=$region -q gcloud compute routers delete $region-cr --region=$region -q gcloud compute networks subnets delete psc-nat-subnet --region=$region -q gcloud compute networks subnets delete producer-fr-subnet --region=$region -q gcloud compute networks subnets delete producer-service-subnet --region=$region -q gcloud compute networks delete producer-vpc -q
19. Xin chúc mừng!
Chúc mừng bạn đã hoàn thành lớp học lập trình này.
Nội dung đã đề cập
- Tạo một dịch vụ web Apache đơn giản được hiển thị dưới dạng dịch vụ nhà sản xuất PSC.
- Tạo một điểm cuối PSC.
- Tạo một vùng riêng tư Cloud DNS cho các lệnh gọi dịch vụ của người dùng.
- Cập nhật quy tắc chuyển tiếp được liên kết với tệp đính kèm dịch vụ bằng cách sử dụng Khả năng thay đổi PSC.