1. Einführung
Übersicht
In diesem Lab erfahren Sie, wie ein Hub von Network Connectivity Center einen Private Service Connect-Endpunkt an VPC-Spokes weiterleitet.
Die Hub-Ressource ist ein Modell für die zentrale Konnektivitätsverwaltung von VPC-Spoke-Traffic zu PSC-Endpunkten.
Umfang
In diesem Codelab erstellen Sie ein NCC-Netzwerk, das einen Private Service Connect-Endpunkt an die Cloud SQL-Instanz weiterleitet.

Lerninhalte
- Verbindung zu einer Cloud SQL-Instanz über Private Service Connect herstellen
- Verwenden Sie den NCC-Hub, um das PSC-Subnetz an alle VPC-Spokes weiterzugeben, damit die Netzwerkverbindung von mehreren VPC-Netzwerken aus möglich ist.
Voraussetzungen
- Kenntnisse von GCP Cloud Networking
- Grundkenntnisse in Cloud SQL
- Google Cloud-Projekt
- Prüfen Sie Ihr Kontingent:Netzwerke und fordern Sie bei Bedarf zusätzliche Netzwerke an (siehe Screenshot unten):

Ziele
- GCP-Umgebung einrichten
- Cloud SQL-Instanz für MySQL mit Private Service Connect einrichten
- Network Connectivity Center-Hub für die Weitergabe von PSC-Endpunkten konfigurieren
- Network Connectivity Center mit VPC als Spoke konfigurieren
- Datenpfad validieren
- Funktionen für die NCC-Wartung
- Ressourcen bereinigen
Hinweis
Google Cloud Console und Cloud Shell
In diesem Lab verwenden wir sowohl die Google Cloud Console als auch Cloud Shell, um mit GCP zu interagieren.
NCC-Hub-Projekt in der Google Cloud Console
Die Cloud Console ist unter https://console.cloud.google.com erreichbar.
Richten Sie die folgenden Elemente in Google Cloud ein, um die Konfiguration des Network Connectivity Centers zu vereinfachen:
Wählen Sie in der Google Cloud Console auf der Seite zur Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie ein Google Cloud-Projekt.
Starten Sie Cloud Shell. In diesem Codelab werden $variables verwendet, um die Implementierung der gcloud-Konfiguration in Cloud Shell zu erleichtern.
gcloud auth list
gcloud config list project
gcloud config set project $project
project=[YOUR-PROJECT-NAME]
echo $project
IAM-Rollen
Für den Zugriff auf bestimmte APIs sind IAM-Rollen erforderlich. Konfigurieren Sie Ihren Nutzer mit den erforderlichen NCC-IAM-Rollen.
Rolle/Beschreibung | Berechtigungen |
networkconnectivity.networkAdmin: Ermöglicht Netzwerkadministratoren, Hubs und Spokes zu verwalten. | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager: Ermöglicht das Hinzufügen und Verwalten von Spokes in einem Hub. Zur Verwendung in einer freigegebenen VPC, in der das Hostprojekt den Hub besitzt, aber andere Administratoren in anderen Projekten Spokes für ihre Anhänge zum Hub hinzufügen können. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer: Ermöglicht Netzwerkbenutzern, verschiedene Attribute von Hubs und Spokes anzusehen. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. Netzwerkumgebung einrichten
Übersicht
In diesem Abschnitt stellen wir die beiden VPC-Netzwerke und Firewallregeln in einem einzelnen Projekt bereit. Das logische Diagramm veranschaulicht die Netzwerkumgebung, die in diesem Schritt eingerichtet wird.

VPC1 und ein Subnetz erstellen
Das VPC-Netzwerk enthält Subnetze, in denen Sie die GCE-VM für die Validierung des Datenpfads installieren.
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-Subnetz in VPC erstellen
Verwenden Sie den folgenden Befehl, um ein Subnetz im VPC-Spoke zu erstellen, das dem PSC-Endpunkt zugewiesen wird.
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 und ein Subnetz erstellen
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}"
Firewallregeln für VPC1 konfigurieren
Diese Regeln ermöglichen die Netzwerkverbindung von RFC1918- und Identity Access Proxy-Bereichen.
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
Routing-VPC und VPC-Firewallregeln konfigurieren
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-VM in VPC1 konfigurieren
Sie benötigen temporären Internetzugriff, um Pakete zu installieren. Konfigurieren Sie die Instanz daher so, dass sie eine externe IP-Adresse verwendet.
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-VM in VPC3 konfigurieren
Sie benötigen temporären Internetzugriff, um Pakete zu installieren. Konfigurieren Sie die Instanz daher so, dass sie eine externe IP-Adresse verwendet.
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-Instanz erstellen
Verwenden Sie die folgenden Befehle, um eine Instanz zu erstellen und Private Service Connect zu aktivieren .
Dies dauert ein paar Minuten.
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 des Dienstanhangs der Cloud SQL-Instanz ermitteln
Verwenden Sie den Befehl „gcloud sql instances describe“, um Informationen zu einer Instanz mit aktiviertem Private Service Connect aufzurufen. Notieren Sie sich das Feld „pscServiceAttachmentLink“, das den URI anzeigt, der auf den Dienstanhang der Instanz verweist. Wir benötigen sie im nächsten Abschnitt.
gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)'
4. PSC-Endpunkt für Cloud SQL
Interne IP-Adresse für den PSC-Endpunkt reservieren
Verwenden Sie den folgenden Befehl, um eine interne IP-Adresse für den Private Service Connect-Endpunkt zu reservieren.
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
Suchen Sie den NAME, der der reservierten IP-Adresse zugeordnet ist. Diese wird in der Konfiguration der Weiterleitungsregel verwendet.
gcloud compute addresses list \
--filter="name=csql-psc-ip"
Private Service Connect-Weiterleitungsregel in VPC1 erstellen
Verwenden Sie den folgenden Befehl, um den Private Service Connect-Endpunkt zu erstellen und auf den Cloud SQL-Dienstanhang zu verweisen.
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
Prüfen Sie mit dem folgenden Befehl, ob der cSQL-Dienstanhang den Endpunkt akzeptiert.
gcloud compute forwarding-rules describe csql-psc-ep \
--region=us-central1 \
--format='value(pscConnectionStatus)'
Datenpfad zu MySQL über VPC1 prüfen
Wenn Sie eine neue Cloud SQL-Instanz erstellen, müssen Sie ein Passwort für das Standardnutzerkonto festlegen, bevor Sie eine Verbindung zur Instanz herstellen können.
gcloud sql users set-password root \
--host=% \
--instance=mysql-instance \
--prompt-for-password
Verwenden Sie den folgenden Befehl, um die IP-Adresse des PSC-Endpunkts zu ermitteln, der dem Dienstanhang von Cloud SQL zugeordnet ist.
gcloud compute addresses describe csql-psc-ip \
--region=us-central1 \
--format='value(address)'
Von einer VM in VPC1 eine Verbindung zu einer Cloud SQL-Instanz herstellen
SSH-Sitzung zu csql-vpc1-vm öffnen
gcloud compute ssh csql-vpc1-vm \
--zone=us-central1-a \
--tunnel-through-iap
Verwenden Sie den folgenden Befehl, um eine Verbindung zur Cloud SQL-Instanz herzustellen. Geben Sie bei entsprechender Aufforderung das im vorherigen Schritt erstellte Passwort ein.
mysql -h 192.168.0.253 -u root -p
Bei einer erfolgreichen Anmeldung wird die folgende Ausgabe angezeigt:
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)]>
Verwenden Sie den Befehl „show databases;“, um die Datenbanken zu prüfen, die standardmäßig in MySQL erstellt werden.
MySQL [(none)]> show databases;
Von einer VM in VPC3 eine Verbindung zur Cloud SQL-Instanz herstellen
Öffnen Sie eine SSH-Sitzung zu csql-vpc3-vm.
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Verwenden Sie den folgenden Befehl, um eine Verbindung zur Cloud SQL-Instanz herzustellen. Geben Sie bei entsprechender Aufforderung das im vorherigen Schritt erstellte Passwort ein.
mysql -h 192.168.0.253 -u root -p
Die Sitzung von der VM in VPC3 schlägt fehl, da es keinen Datenpfad von VPC3 zum Private Service Connect-Endpunkt gibt. Verwenden Sie die Tastenkombinationen, um die Sitzung zu beenden.
Ctrl + C
5. Network Connectivity Center-Hub
Übersicht
In diesem Abschnitt konfigurieren wir einen NCC-Hub mit gcloud-Befehlen. Der NCC-Hub dient als Steuerungsebene, die für die Erstellung des Datenpfads von VPC-Spokes zum Private Service Connect-Endpunkt verantwortlich ist.

API-Dienste aktivieren
Aktivieren Sie die Network Connectivity API, falls sie noch nicht aktiviert ist:
gcloud services enable networkconnectivity.googleapis.com
NCC-Hub erstellen
Verwenden Sie den folgenden gcloud-Befehl, um einen NCC-Hub zu erstellen. Das Flag „–export-psc“ weist den NCC-Hub an, bekannte PSC-Endpunkte an alle VPC-Spokes weiterzugeben.
hub_name="ncc-hub"
gcloud network-connectivity hubs create "${hub_name}" \
--export-psc
Beschreiben Sie den neu erstellten NCC-Hub. Notieren Sie sich den Namen und zugehörigen Pfad.
gcloud network-connectivity hubs describe ncc-hub
VPC1 als NCC-Spoke konfigurieren
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 als NCC-Spoke konfigurieren
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
Prüfen Sie mit dem folgenden Befehl die Routingtabelle des NCC-Hubs auf eine Route zum PSC-Subnetz.
gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub
6. NCC-Datenpfad prüfen
In diesem Schritt validieren wir den Datenpfad zwischen NCC-Hybrid und VPC-Spoke.
Konfigurierten NCC-Datenpfad zum PSC-Endpunkt der Cloud SQL-Instanzen prüfen
Melden Sie sich mit der Ausgabe dieser gcloud-Befehle bei der lokalen VM an.
gcloud compute instances list --filter="name=csql-vpc3-vm"
Melden Sie sich bei der VM-Instanz im lokalen Netzwerk an.
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Verwenden Sie den folgenden mysql-Befehl, um eine Verbindung zur Cloud SQL-Instanz herzustellen. Geben Sie bei entsprechender Aufforderung das im vorherigen Schritt erstellte Passwort ein.
mysql -h 192.168.0.253 -u root -p
Bei einer erfolgreichen Anmeldung wird die folgende Ausgabe angezeigt:
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)
Mit dem Befehl „show databases;“ können Sie die Datenbanken überprüfen, die standardmäßig in MySQL erstellt werden.
MySQL [(none)]> show databases;
7. Bereinigen
Melden Sie sich in Cloud Shell an und löschen Sie GCP-Ressourcen.
Cloud SQL-PSC-Endpunkte löschen
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-Instanz löschen
gcloud sql instances delete mysql-instance --quiet
Firewallregeln löschen
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-Instanzen in VPC1 und VPC3 löschen
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
NCC-Spokes löschen
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 löschen
hub_name="ncc-hub"
gcloud network-connectivity hubs delete "${hub_name}" \
--project=${project}
Subnetze in allen VPCs löschen
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 und VPC3 löschen
gcloud compute networks delete vpc1-spoke vpc3-spoke
8. Glückwunsch!
Sie haben das Lab „Private Service Connect-Weitergabe mit dem Network Connectivity Center“ abgeschlossen.
Behandelte Themen
- Private Service Connect-Endpunktweitergabe mit dem Network Connectivity Center
Nächste Schritte