1. מבוא
סקירה כללית
במעבדת ה-Lab הזו, המשתמשים יבדקו איך רכזת של Network Connectivity Center מעבירה נקודת קצה של Private Service Connect לרשתות VPC מסוג Hub and Spoke.
משאב ה-hub מספק מודל מרכזי לניהול קישוריות, כדי לקשר בין תנועת נתונים של רשתות VPC מסוג spoke לבין נקודות קצה של PSC.
מה תפַתחו
ב-Codelab הזה תיצרו רשת NCC שתפיץ נקודת קצה של Private Service Connect למופע Cloud SQL.

מה תלמדו
- שימוש ב-Private Service Connect כדי להתחבר למכונת Cloud SQL
- משתמשים במרכז NCC כדי להפיץ את רשת המשנה של PSC לכל הרשתות מסוג Hub and Spoke של VPC, כדי לאפשר קישוריות לרשת מכמה רשתות VPC.
הדרישות
- ידע ב-GCP Cloud Networking
- ידע בסיסי ב-Cloud SQL
- פרויקט ב-Google Cloud
- בודקים את המיכסה:רשתות ומבקשים להוסיף רשתות נוספות אם צריך. צילום מסך בהמשך:

מטרות
- הגדרת סביבת GCP
- הגדרת מופע Cloud SQL ל-MySQL עם Private Service Connect
- הגדרת Network Connectivity Center Hub להפצת נקודות קצה של PSC
- הגדרת Network Connectivity Center עם VPC כרשת משנית (spoke)
- אימות נתיב הנתונים
- תכונות השירות של NCC
- פינוי משאבים
לפני שמתחילים
מסוף Google Cloud ו-Cloud Shell
במהלך שיעור ה-Lab הזה נשתמש גם במסוף Google Cloud וגם ב-Cloud Shell כדי ליצור אינטראקציה עם GCP.
פרויקט NCC Hub במסוף Google Cloud
אפשר להיכנס ל-Cloud Console בכתובת https://console.cloud.google.com.
כדי להקל על הגדרת Network Connectivity Center, צריך להגדיר את הפריטים הבאים ב-Google Cloud:
במסוף Google Cloud, בדף לבחירת הפרויקט בוחרים פרויקט או יוצרים פרויקט חדש.
מפעילים את Cloud Shell. ב-Codelab הזה נעשה שימוש במשתנים כדי להקל על הטמעת ההגדרה של gcloud ב-Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project $project
project=[YOUR-PROJECT-NAME]
echo $project
תפקידי IAM
כדי לגשת לממשקי API ספציפיים, צריך להקצות תפקידים ב-IAM ל-NCC. חשוב להקפיד להגדיר את המשתמש עם תפקידי ה-IAM של NCC לפי הצורך.
תפקיד/תיאור | הרשאות |
networkconnectivity.networkAdmin – מאפשרת לאדמינים של רשתות לנהל רכזות ורשתות היקפיות. | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager – מאפשר להוסיף ולנהל רכזות ברשת. לשימוש ב-VPC משותף שבו הפרויקט המארח הוא הבעלים של ה-Hub, אבל אדמינים אחרים בפרויקטים אחרים יכולים להוסיף רשתות Spokes לחיבורים שלהם ל-Hub. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer – מאפשר למשתמשי רשת להציג מאפיינים שונים של רכזות ושל רשתות מסוג Hub and Spoke. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. הגדרת סביבת הרשת
סקירה כללית
בקטע הזה נסביר איך לפרוס את שתי רשתות ה-VPC ואת כללי חומת האש בפרויקט יחיד. הדיאגרמה הלוגית ממחישה את סביבת הרשת שתוגדר בשלב הזה.

יצירת VPC1 ורשת משנה
רשת ה-VPC מכילה רשתות משנה שבהן תתקינו מכונה וירטואלית ב-GCE לצורך אימות נתיב הנתונים
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}"
יצירת תת-רשת של PSC ב-VPC
משתמשים בפקודה הבאה כדי ליצור רשת משנה ב-VPC spoke שתוקצה ל-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}"
יצירת VPC3 ורשת משנה
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}"
הגדרת כללי חומת האש של VPC1
הכללים האלה יאפשרו קישוריות לרשת מטווחים של RFC1918 ו-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
הגדרת ניתוב VPC וכללי חומת אש של 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
הגדרת מכונה וירטואלית ב-GCE ב-VPC1
כדי להתקין חבילות, צריך גישה זמנית לאינטרנט, לכן צריך להגדיר את המכונה לשימוש בכתובת IP חיצונית.
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'
הגדרת מכונה וירטואלית ב-GCE ב-VPC3
כדי להתקין חבילות, צריך גישה זמנית לאינטרנט, לכן צריך להגדיר את המכונה לשימוש בכתובת IP חיצונית.
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. יצירת מכונה של Cloud SQL
משתמשים בפקודות שלמטה כדי ליצור מכונה ולהפעיל את Private Service Connect .
הפעולה הזו תימשך כמה דקות.
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
זיהוי ה-URI של קובץ השירות של מופע Cloud SQL
כדי להציג מידע על מכונה עם Private Service Connect מופעל, משתמשים בפקודה gcloud sql instances describe. שימו לב לשדה pscServiceAttachmentLink שבו מוצג מזהה המשאבים האחיד (URI) שמפנה לצירוף השירות של המופע. תצטרכו את זה בקטע הבא.
gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)'
4. נקודת קצה של PSC ל-Cloud SQL
שמירת כתובת IP פנימית לנקודת הקצה של PSC
משתמשים בפקודה שלמטה כדי לשריין כתובת IP פנימית לנקודת הקצה של 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
מחפשים את השם שמשויך לכתובת ה-IP השמורה. הכתובת הזו תשמש בהגדרת כלל ההעברה.
gcloud compute addresses list \
--filter="name=csql-psc-ip"
יצירת כלל העברה של Private Service Connect ב-VPC1
משתמשים בפקודה שלמטה כדי ליצור את נקודת הקצה של Private Service Connect ולהפנות אותה לקובץ המצורף של שירות 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
משתמשים בפקודה הבאה כדי לוודא שקובץ ה-cSQL של שירות ה-attachment מקבל את נקודת הקצה
gcloud compute forwarding-rules describe csql-psc-ep \
--region=us-central1 \
--format='value(pscConnectionStatus)'
אימות נתיב הנתונים אל MySQL מ-VPC1
כשיוצרים מופע חדש של Cloud SQL, צריך להגדיר סיסמה לחשבון המשתמש שמוגדר כברירת מחדל לפני שמתחברים למופע.
gcloud sql users set-password root \
--host=% \
--instance=mysql-instance \
--prompt-for-password
משתמשים בפקודה הבאה כדי לאתר את כתובת ה-IP של נקודת הקצה של PSC שמשויכת לצירוף השירות של Cloud SQL.
gcloud compute addresses describe csql-psc-ip \
--region=us-central1 \
--format='value(address)'
התחברות למופע Cloud SQL ממכונה וירטואלית ב-VPC1
פותחים סשן SSH ל-csql-vpc1-vm
gcloud compute ssh csql-vpc1-vm \
--zone=us-central1-a \
--tunnel-through-iap
כדי להתחבר למופע Cloud SQL, משתמשים בפקודה הבאה. כשתתבקשו, תצטרכו להזין את הסיסמה שנוצרה בשלב הקודם.
mysql -h 192.168.0.253 -u root -p
הפלט שמוצג למטה מופיע אחרי התחברות מוצלחת,
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)]>
משתמשים בפקודה show databases; כדי לוודא את מסדי הנתונים שנוצרו כברירת מחדל ב-MySql.
MySQL [(none)]> show databases;
התחברות למופע Cloud SQL ממכונה וירטואלית ב-VPC3
פותחים סשן SSH ל-csql-vpc3-vm,
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
כדי להתחבר למופע Cloud SQL, משתמשים בפקודה הבאה. כשתתבקשו, תצטרכו להזין את הסיסמה שנוצרה בשלב הקודם.
mysql -h 192.168.0.253 -u root -p
הסשן מהמכונה הווירטואלית שנמצאת ב-VPC3 נכשל כי אין נתיב נתונים מ-VPC3 לנקודת הקצה של Private Service Connect. משתמשים בצירופי המקשים כדי לצאת מהסשן.
Ctrl + C
5. Network Connectivity Center Hub
סקירה כללית
בקטע הזה נגדיר רכזת NCC באמצעות פקודות gcloud. מרכז ה-NCC ישמש כמישור הבקרה שאחראי לבניית נתיב הנתונים ממרכזי ה-VPC אל נקודת הקצה של Private Service Connect.

הפעלת שירותי API
אם ה-API של קישוריות הרשת עדיין לא מופעל, צריך להפעיל אותו:
gcloud services enable networkconnectivity.googleapis.com
יצירת מרכז NCC
משתמשים בפקודת gcloud הבאה כדי ליצור רכזת NCC. הדגל '–export-psc' מורה ל-NCC Hub להפיץ את נקודות הקצה הידועות של PSC לכל רשתות ה-VPC.
hub_name="ncc-hub"
gcloud network-connectivity hubs create "${hub_name}" \
--export-psc
תאר את מרכז ה-NCC החדש שנוצר. רושמים את השם ואת הנתיב המשויך.
gcloud network-connectivity hubs describe ncc-hub
הגדרת VPC1 כרשת מסוג spoke ב-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
הגדרת VPC3 כרשת מסוג Spoke ב-NCC
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
משתמשים בפקודה הבאה כדי לבדוק אם יש בטבלת הניתוב של NCC Hub נתיב לרשת המשנה של PSC.
gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub
6. אימות נתיב הנתונים של NCC
בשלב הזה נאמת את נתיב הנתונים בין NCC hybrid לבין VPC spoke.
אימות של נתיב הנתונים שהוגדר ב-NCC לנקודת הקצה של PSC במופעים של Cloud SQL
משתמשים בפלט של פקודות gcloud האלה כדי להתחבר למכונה הווירטואלית המקומית.
gcloud compute instances list --filter="name=csql-vpc3-vm"
מתחברים למופע של מכונה וירטואלית שנמצאת ברשת המקומית.
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
כדי להתחבר למופע Cloud SQL, משתמשים בפקודה mysql שמופיעה בהמשך. כשתתבקשו, תצטרכו להזין את הסיסמה שנוצרה בשלב הקודם.
mysql -h 192.168.0.253 -u root -p
הפלט שמוצג למטה מופיע אחרי התחברות מוצלחת,
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)
משתמשים בפקודה show databases; כדי לוודא שמסדי הנתונים נוצרו כברירת מחדל ב-MySQL
MySQL [(none)]> show databases;
7. הסרת המשאבים
מתחברים ל-Cloud Shell ומוחקים משאבים ב-GCP.
מחיקת נקודות הקצה של Cloud SQL PSC
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
מחיקת מכונת Cloud SQL
gcloud sql instances delete mysql-instance --quiet
מחיקת כללים של חומת אש
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}"
מחיקת מופעי GCE ב-VPC1 וב-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
מחיקת ה-spokes של ה-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
מחיקת NCC Hub
hub_name="ncc-hub"
gcloud network-connectivity hubs delete "${hub_name}" \
--project=${project}
מחיקת רשתות המשנה בכל רשתות ה-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
מחיקת VPC1 ו-VPC3
gcloud compute networks delete vpc1-spoke vpc3-spoke
8. מעולה!
השלמתם את שיעור ה-Lab בנושא הפצה של Private Service Connect באמצעות Network Connectivity Center.
מה כיסיתם
- הפצה של נקודות קצה של Private Service Connect באמצעות Network Connectivity Center
השלבים הבאים