1. מבוא
סקירה כללית
בשיעור ה-Lab הזה, המשתמשים יבדקו איך רכזת של Network Connectivity Center מעבירה נקודת קצה של Private Service Connect לרשתות VPC מסוג 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 הזה נעשה שימוש במשתנים ( $variables) כדי להקל על הטמעת ההגדרה של 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, אבל אדמינים אחרים בפרויקטים אחרים יכולים להוסיף רשתות מסוג Spoke לחיבורים שלהם ל-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 ושל שרת proxy לאימות זהויות (IAP)
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 Hub ישמש כמישור הבקרה שאחראי לבניית נתיב הנתונים ממרכזי ה-VPC אל נקודת הקצה של Private Service Connect.

הפעלת שירותי API
אם ה-API של קישוריות הרשת עדיין לא מופעל, צריך להפעיל אותו:
gcloud services enable networkconnectivity.googleapis.com
יצירת מרכז NCC
משתמשים בפקודת gcloud הבאה כדי ליצור רכזת NCC. הדגל –export-psc מורה ל-NCC Hub להפיץ את נקודות הקצה הידועות של PSC לכל רשתות ה-VPC מסוג Hub.
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
השלבים הבאים