1. Giới thiệu
Tổng quan
Trong phòng thí nghiệm này, người dùng sẽ khám phá cách trung tâm của Network Connectivity Center truyền một điểm cuối Kết nối dịch vụ riêng tư đến các mạng VPC nhánh.
Tài nguyên trung tâm cung cấp một mô hình quản lý kết nối tập trung để kết nối lưu lượng truy cập của các VPC nhánh với các điểm cuối PSC.
Sản phẩm bạn sẽ tạo ra
Trong lớp học lập trình này, bạn sẽ tạo một mạng NCC để truyền một điểm cuối kết nối dịch vụ riêng tư đến phiên bản Cloud SQL.

Kiến thức bạn sẽ học được
- Sử dụng Private Service Connect để kết nối với một phiên bản Cloud SQL
- Sử dụng trung tâm NCC để truyền bá mạng con PSC đến tất cả các VPC phụ để cho phép kết nối mạng từ nhiều mạng VPC.
Bạn cần có
- Kiến thức về Cloud Networking của GCP
- Kiến thức cơ bản về Cloud SQL
- Dự án trên Google Cloud
- Kiểm tra Hạn mức:Mạng truyền hình và yêu cầu bổ sung Mạng truyền hình nếu cần, ảnh chụp màn hình bên dưới:

Mục tiêu
- Thiết lập môi trường GCP
- Thiết lập phiên bản Cloud SQL cho MySql bằng Private Service Connect
- Định cấu hình Trung tâm kết nối mạng để truyền các điểm cuối PSC
- Định cấu hình Network Connectivity Center với VPC làm mạng vệ tinh
- Xác thực đường dẫn dữ liệu
- Khám phá các tính năng về khả năng sử dụng dịch vụ NCC
- Dọn dẹp tài nguyên
Trước khi bắt đầu
Bảng điều khiển Google Cloud và Cloud Shell
Để tương tác với GCP, chúng ta sẽ sử dụng cả Google Cloud Console và Cloud Shell trong suốt phòng thực hành này.
Dự án NCC Hub trên Google Cloud Console
Bạn có thể truy cập vào Cloud Console tại https://console.cloud.google.com.
Thiết lập các mục sau trong Google Cloud để dễ dàng định cấu hình Network Connectivity Center:
Trong Google Cloud Console, trên trang chọn dự án, hãy chọn hoặc tạo một dự án Google Cloud.
Khởi chạy Cloud Shell. Lớp học lập trình này sử dụng $variables để hỗ trợ việc triển khai cấu hình gcloud trong Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project $project
project=[YOUR-PROJECT-NAME]
echo $project
Vai trò IAM
NCC yêu cầu các vai trò IAM truy cập vào các API cụ thể. Hãy nhớ định cấu hình người dùng của bạn bằng các vai trò NCC IAM theo yêu cầu.
Vai trò/Nội dung mô tả | Quyền |
networkconnectivity.networkAdmin – Cho phép quản trị viên mạng quản lý trung tâm và các mạng vệ tinh. | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager – Cho phép thêm và quản lý các spoke trong một trung tâm. Được dùng trong VPC dùng chung, nơi dự án lưu trữ sở hữu Hub, nhưng các quản trị viên khác trong các dự án khác có thể thêm các spoke để đính kèm vào Hub. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer – Cho phép người dùng mạng xem các thuộc tính khác nhau của trung tâm và các mạng vệ tinh. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. Thiết lập môi trường mạng
Tổng quan
Trong phần này, chúng ta sẽ triển khai 2 mạng VPC và các quy tắc tường lửa trong một dự án duy nhất. Sơ đồ logic minh hoạ môi trường mạng sẽ được thiết lập trong bước này.

Tạo VPC1 và một mạng con
Mạng VPC chứa các mạng con mà bạn sẽ cài đặt GCE VM để xác thực đường dẫn dữ liệu
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="subnet1"
vpc_spoke_subnet_ip_range="10.0.1.0/24"
region="us-central1"
zone="us-central1-a"
gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom \
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Tạo mạng con PSC trong VPC
Sử dụng lệnh bên dưới để tạo một mạng con trong VPC spoke sẽ được phân bổ cho PSC-EP.
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
vpc_spoke_subnet_ip_range="192.168.0.0/24"
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Tạo VPC3 và một mạng con
vpc_spoke_network_name="vpc3-spoke"
vpc_spoke_subnet_name="subnet3"
vpc_spoke_subnet_ip_range="10.0.3.0/24"
region="us-central1"
zone="us-central1-a"
gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom \
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Định cấu hình các quy tắc tường lửa của VPC1
Các quy tắc này sẽ cho phép kết nối mạng từ các dải RFC1918 và Identity Access Proxy
vpc_spoke_network_name="vpc1-spoke"
gcloud compute firewall-rules create vpc1-allow-all \
--network="${vpc_spoke_network_name}" \
--allow=all \
--source-ranges=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
gcloud compute firewall-rules create vpc1-allow-iap \
--network="${vpc_spoke_network_name}" \
--allow all \
--source-ranges 35.235.240.0/20
Định cấu hình VPC định tuyến và các quy tắc tường lửa VPC
vpc_spoke_network_name="vpc3-spoke"
gcloud compute firewall-rules create vpc3-allow-all \
--network="${vpc_spoke_network_name}" \
--allow=all \
--source-ranges=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
gcloud compute firewall-rules create vpc3-allow-iap \
--network="${vpc_spoke_network_name}" \
--allow all \
--source-ranges 35.235.240.0/20
Định cấu hình máy ảo GCE trong VPC1
Bạn cần có quyền truy cập Internet tạm thời để cài đặt các gói, vì vậy, hãy định cấu hình phiên bản để sử dụng địa chỉ IP ngoài.
vm_vpc1_spoke_name="csql-vpc1-vm"
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="subnet1"
region="us-central1"
zone="us-central1-a"
gcloud compute instances create "${vm_vpc1_spoke_name}" \
--machine-type="e2-medium" \
--subnet="${vpc_spoke_subnet_name}" \
--zone="${zone}" \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y default-mysql-client'
Định cấu hình máy ảo GCE trong VPC3
Bạn cần có quyền truy cập Internet tạm thời để cài đặt các gói, vì vậy, hãy định cấu hình phiên bản để sử dụng địa chỉ IP ngoài.
vm_vpc_spoke_name="csql-vpc3-vm"
vpc_spoke_network_name="vpc3-spoke"
vpc_spoke_subnet_name="subnet3"
region="us-central1"
zone="us-central1-a"
gcloud compute instances create "${vm_vpc_spoke_name}" \
--machine-type="e2-medium" \
--subnet="${vpc_spoke_subnet_name}" \
--zone="${zone}" \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y default-mysql-client'
3. Tạo phiên bản Cloud SQL
Sử dụng các lệnh bên dưới để tạo một phiên bản và bật Private Service Connect .
Quá trình này sẽ mất vài phút.
gcloud config set project ${project}
gcloud sql instances create mysql-instance \
--project="${project}" \
--region=us-central1 \
--enable-private-service-connect \
--allowed-psc-projects="${project}" \
--availability-type=zonal \
--no-assign-ip \
--tier=db-f1-micro \
--database-version=MYSQL_8_0 \
--enable-bin-log
Xác định URI của tệp đính kèm dịch vụ của phiên bản Cloud SQL
Sử dụng lệnh gcloud sql instances describe để xem thông tin về một phiên bản có bật Private Service Connect. Ghi lại trường pscServiceAttachmentLink. Trường này hiển thị URI trỏ đến tệp đính kèm dịch vụ của phiên bản. Chúng ta sẽ cần thông tin này trong phần tiếp theo.
gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)'
4. Điểm cuối PSC đến Cloud SQL
Dự trữ một địa chỉ IP nội bộ cho điểm cuối PSC
Sử dụng lệnh bên dưới để đặt trước một địa chỉ IP nội bộ cho điểm cuối Private Service Connect,
region="us-central1"
vpc_spoke_subnet_name="csql-psc-subnet"
gcloud compute addresses create csql-psc-ip \
--subnet="${vpc_spoke_subnet_name}" \
--region="${region}" \
--addresses=192.168.0.253
Tra cứu TÊN được liên kết với địa chỉ IP đã đặt trước. This will be used in the forwarding rule configuration.
gcloud compute addresses list \
--filter="name=csql-psc-ip"
Tạo Quy tắc chuyển tiếp Private Service Connect trong VPC1
Sử dụng lệnh bên dưới để tạo điểm cuối Private Service Connect và trỏ điểm cuối đó đến tệp đính kèm dịch vụ Cloud SQL.
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
csql_psc_ep_name="csql-psc-ep"
sa_uri=$(gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)')
echo "$sa_uri"
gcloud compute forwarding-rules create "${csql_psc_ep_name}" \
--address=csql-psc-ip \
--region="${region}" \
--network="${vpc_spoke_network_name}" \
--target-service-attachment="${sa_uri}" \
--allow-psc-global-access
Sử dụng lệnh bên dưới để xác minh rằng tệp đính kèm dịch vụ cSQL chấp nhận điểm cuối
gcloud compute forwarding-rules describe csql-psc-ep \
--region=us-central1 \
--format='value(pscConnectionStatus)'
Xác minh đường dẫn dữ liệu đến MySQL từ VPC1
Khi tạo một phiên bản Cloud SQL mới, bạn phải đặt mật khẩu cho tài khoản người dùng mặc định thì mới có thể kết nối với phiên bản đó.
gcloud sql users set-password root \
--host=% \
--instance=mysql-instance \
--prompt-for-password
Sử dụng lệnh bên dưới để xác định vị trí địa chỉ IP của điểm cuối PSC được liên kết với tệp đính kèm dịch vụ của Cloud SQL.
gcloud compute addresses describe csql-psc-ip \
--region=us-central1 \
--format='value(address)'
Kết nối với phiên bản Cloud SQL từ một VM trong VPC1
Mở một phiên SSH đến csql-vpc1-vm
gcloud compute ssh csql-vpc1-vm \
--zone=us-central1-a \
--tunnel-through-iap
Sử dụng lệnh bên dưới để kết nối với phiên bản Cloud SQL. Khi được nhắc, hãy nhập mật khẩu bạn đã tạo ở bước trên.
mysql -h 192.168.0.253 -u root -p
Kết quả dưới đây sẽ xuất hiện khi bạn đăng nhập thành công,
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 8350
Server version: 8.0.31-google (Google)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
Sử dụng lệnh show databases; để xác minh cơ sở dữ liệu được tạo theo mặc định trên MySql.
MySQL [(none)]> show databases;
Kết nối với phiên bản Cloud SQL từ một máy ảo trong VPC3
Mở một phiên SSH đến csql-vpc3-vm,
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Sử dụng lệnh bên dưới để kết nối với phiên bản Cloud SQL. Khi được nhắc, hãy nhập mật khẩu bạn đã tạo ở bước trên.
mysql -h 192.168.0.253 -u root -p
Phiên từ VM nằm trên VPC3 sẽ không thành công vì không có đường dẫn dữ liệu từ VPC3 đến Điểm cuối Kết nối dịch vụ riêng tư. Dùng các tổ hợp phím để thoát khỏi phiên.
Ctrl + C
5. Trung tâm Network Connectivity Center
Tổng quan
Trong phần này, chúng ta sẽ thiết lập một NCC Hub bằng các lệnh gcloud. NCC Hub sẽ đóng vai trò là mặt phẳng điều khiển chịu trách nhiệm xây dựng đường dẫn dữ liệu từ các VPC phụ đến điểm cuối Kết nối dịch vụ riêng tư.

Bật các dịch vụ API
Bật API kết nối mạng nếu bạn chưa bật:
gcloud services enable networkconnectivity.googleapis.com
Tạo Trung tâm NCC
Sử dụng lệnh gcloud bên dưới để tạo một trung tâm NCC. Cờ "–export-psc" hướng dẫn NCC Hub truyền các điểm cuối PSC đã biết đến tất cả các VPC phụ.
hub_name="ncc-hub"
gcloud network-connectivity hubs create "${hub_name}" \
--export-psc
Mô tả NCC Hub mới tạo. Ghi lại tên và đường dẫn liên kết.
gcloud network-connectivity hubs describe ncc-hub
Định cấu hình VPC1 làm một mạng trung tâm và vệ tinh NCC
hub_name="ncc-hub"
vpc_spoke_name="sql-vpc1-spoke"
vpc_spoke_network_name="vpc1-spoke"
gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global
Định cấu hình VPC3 làm một NCC spoke
hub_name="ncc-hub"
vpc_spoke_name="sql-vpc3-spoke"
vpc_spoke_network_name="vpc3-spoke"
gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global
Sử dụng lệnh bên dưới để kiểm tra bảng định tuyến của NCC Hub để tìm một tuyến đến mạng con PSC.
gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub
6. Xác minh đường dẫn dữ liệu NCC
Trong bước này, chúng ta sẽ xác thực đường dẫn dữ liệu giữa NCC kết hợp và VPC spoke.
Xác minh đường dẫn dữ liệu đã định cấu hình NCC đến điểm cuối PSC của phiên bản Cloud SQL
Sử dụng đầu ra từ các lệnh gcloud này để đăng nhập vào VM tại chỗ.
gcloud compute instances list --filter="name=csql-vpc3-vm"
Đăng nhập vào phiên bản máy ảo nằm trong mạng tại chỗ.
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Sử dụng lệnh mysql bên dưới để kết nối với phiên bản Cloud SQL. Khi được nhắc, hãy nhập mật khẩu bạn đã tạo ở bước trên.
mysql -h 192.168.0.253 -u root -p
Kết quả dưới đây sẽ xuất hiện khi bạn đăng nhập thành công,
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 8501
Server version: 8.0.31-google (Google)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.005 sec)
Sử dụng lệnh show databases; để xác minh cơ sở dữ liệu được tạo theo mặc định trên MySql
MySQL [(none)]> show databases;
7. Dọn dẹp
Đăng nhập vào Cloud Shell và xoá các tài nguyên trên GCP.
Xoá các Điểm cuối PSC Cloud SQL
gcloud compute forwarding-rules delete csql-psc-ep \
--region=us-central1 \
--quiet
gcloud compute addresses delete csql-psc-ip \
--region=us-central1 \
--quiet
gcloud compute networks subnets delete csql-psc-subnet \
--region=us-central1 \
--quiet
Xoá phiên bản Cloud SQL
gcloud sql instances delete mysql-instance --quiet
Xoá quy tắc tường lửa
vpc_spoke_network_name="vpc3-spoke"
gcloud compute firewall-rules delete vpc3-allow-all \ --network="${vpc_spoke_network_name}"
gcloud compute firewall-rules delete vpc3-allow-iap \ --network="${vpc_spoke_network_name}"
vpc_spoke_network_name="vpc1-spoke"
gcloud compute firewall-rules delete vpc1-allow-all \ --network="${vpc_spoke_network_name}"
gcloud compute firewall-rules delete vpc1-allow-iap \ --network="${vpc_spoke_network_name}"
Xoá các phiên bản GCE trong VPC1 và VPC3
vm_vpc1_spoke_name="csql-vpc1-vm"
zone="us-central1-a"
gcloud compute instances delete "${vm_vpc1_spoke_name}" \
--zone="${zone}" \
--quiet
vm_vpc_spoke_name="csql-vpc3-vm"
zone="us-central1-a"
gcloud compute instances delete "${vm_vpc_spoke_name}" \
--zone="${zone}" --quiet
Xoá các spoke NCC
vpc_spoke_name="sql-vpc1-spoke"
gcloud network-connectivity spokes delete "${vpc_spoke_name}" \
--global \
--quiet
vpc_spoke_name="sql-vpc3-spoke"
gcloud network-connectivity spokes delete "${vpc_spoke_name}" \
--global \
--quiet
Xoá NCC Hub
hub_name="ncc-hub"
gcloud network-connectivity hubs delete "${hub_name}" \
--project=${project}
Xoá các mạng con trong tất cả VPC
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \
--region="${region}" \
--quiet
vpc_spoke_subnet_name="subnet1"
region="us-central1"
gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \
--region="${region}" \
--quiet
vpc_spoke_subnet_name="subnet3"
region="us-central1"
gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \
--region="${region}" \
--quiet
Xoá VPC1 và VPC3
gcloud compute networks delete vpc1-spoke vpc3-spoke
8. Xin chúc mừng!
Bạn đã hoàn tất quá trình truyền tin Private Service Connect bằng Network Connectivity Center Lab!
Nội dung bạn đã đề cập
- Phân phối điểm cuối Private Service Connect bằng Network Connectivity Center
Các bước tiếp theo