1. Einführung
In diesem Codelab stellen Sie eine nach Süden gebundene HTTPS-Verbindung zu GitHub mit einem internen TCP-Proxy-Load-Balancer und einer Internetnetzwerk-Endpunktgruppe (NEG) her, die von Looker PSC als Dienstnutzer aufgerufen werden.
Private Service Connect ist eine Funktion des Google Cloud-Netzwerks, mit der Nutzer privat aus ihrem VPC-Netzwerk auf verwaltete Dienste zugreifen können. Ebenso können Ersteller verwalteter Dienste diese Dienste in ihren eigenen separaten VPC-Netzwerken hosten und ihren Nutzern eine private Verbindung bieten. Wenn Sie beispielsweise Private Service Connect für den Zugriff auf Looker verwenden, sind Sie der Dienstnutzer und Google ist der Dienstersteller, wie in Abbildung 1 dargestellt.
Abbildung 1:
Mit dem Downstreamzugriff, auch als umgekehrter PSC bezeichnet, kann der Nutzer einen veröffentlichten Dienst als Ersteller erstellen, um Looker Zugriff auf Endpunkte lokal, in einem VPC, auf verwaltete Dienste und auf das Internet zu gewähren. Südgerichtete Verbindungen können in jeder Region bereitgestellt werden, unabhängig davon, wo Looker PSC bereitgestellt wird, wie in Abbildung 2 dargestellt.
Abbildung 2.
Aufgaben in diesem Lab
- Netzwerkanforderungen
- Private Service Connect-Producer-Dienst erstellen
- Private Service Connect-Endpunkt in Looker erstellen
- Verbindung von Looker zu GitHub über eine Testverbindung herstellen
Voraussetzungen
- Google Cloud-Projekt mit Inhaberberechtigungen
- GitHub-Konto und -Repository
- Persönliches GitHub-Zugriffstoken (klassisch)
- Vorhandene Looker PSC-Instanz
2. Aufgaben
Sie richten ein Producer-Netzwerk namens looker-psc-demo ein, um einen internen TCP-Proxy-Load-Balancer und eine Internet-NEG bereitzustellen, die als Dienst über Private Service Connect (PSC) veröffentlicht werden. Nach der Veröffentlichung führst du die folgenden Aktionen aus, um den Zugriff auf den Produzentendienst zu bestätigen:
- PSC-Endpunkt in Looker erstellen, der mit dem Dienstanhang des Diensterstellers verknüpft ist
- Verwenden Sie die Looker-Konsole, um ein neues Projekt zu erstellen und die HTTPS-Verbindung zu GitHub.com zu testen
3. Netzwerkanforderungen
Unten finden Sie eine Aufschlüsselung der Netzwerkanforderungen für das Produzentennetzwerk. Der Nutzer in diesem Codelab ist die Looker-PSC-Instanz.
Komponenten | Beschreibung |
VPC (looker-psc-demo) | VPC im benutzerdefinierten Modus |
PSC-NAT-Subnetz | Pakete aus dem VPC-Netzwerk des Nutzers werden mithilfe von Quell-NAT (SNAT) übersetzt, sodass ihre ursprünglichen Quell-IP-Adressen in Quell-IP-Adressen aus dem NAT-Subnetz im VPC-Netzwerk des Produzenten umgewandelt werden. |
Subnetz der PSC-Weiterleitungsregel | Wird verwendet, um eine IP-Adresse für den internen regionalen TCP-Proxy-Load Balancer zuzuweisen. |
PSC-NEG-Subnetz | Wird zum Zuweisen einer IP-Adresse für die Netzwerk-Endpunktgruppe verwendet |
Nur-Proxy-Subnetz | Jedem der Proxys des Load-Balancers ist eine interne IP-Adresse zugewiesen. Pakete, die von einem Proxy an eine Backend-VM oder einen Backend-Endpunkt gesendet werden, haben eine Quell-IP-Adresse aus dem Nur-Proxy-Subnetz. |
Internet-NEG | Eine Ressource, mit der ein externes Backend für den Load Balancer definiert wird Der Endpunkt darf nicht nur über Cloud VPN oder Cloud Interconnect erreichbar sein. |
Backend-Dienst | Ein Back-End-Dienst dient als Brücke zwischen Ihrem Load Balancer und Ihren Back-End-Ressourcen. In der Anleitung ist der Back-End-Dienst der Internet-NEG zugeordnet. |
Cloud Router | Cloud NAT nutzt Cloud Router für die Steuerungsebene, jedoch nicht für die BGP-Sitzungsverwaltung. |
Cloud NAT | Die regionale Internet-NEG nutzt Cloud NAT für ausgehenden Internettraffic. |
4. Codelab-Topologie
5. Einrichtung und Anforderungen
Umgebung für das selbstbestimmte Lernen einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie ein Konto erstellen.
- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um eine Zeichenfolge, die von Google APIs nicht verwendet wird. Sie können ihn jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und kann nach der Festlegung nicht mehr geändert werden. In der Cloud Console wird automatisch ein eindeutiger String generiert. In der Regel spielt es keine Rolle, wie er lautet. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (normalerweise als
PROJECT_ID
gekennzeichnet). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige generieren. Alternativ können Sie Ihr eigenes Konto ausprobieren und prüfen, ob es verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts erhalten. - Zur Information gibt es noch einen dritten Wert, die Projektnummer, die von manchen APIs verwendet wird. Weitere Informationen zu diesen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Cloud-Ressourcen/APIs verwenden zu können. Dieses Codelab ist kostengünstig. Sie können die von Ihnen erstellten Ressourcen oder das Projekt löschen, um Ressourcen herunterzufahren, um zu vermeiden, dass über diese Anleitung hinaus Kosten anfallen. Neuen Google Cloud-Nutzern steht das kostenlose Testprogramm mit einem Guthaben von 300 $ zur Verfügung.
Cloud Shell starten
Sie können Google Cloud zwar von Ihrem Laptop aus der Ferne bedienen, in diesem Codelab verwenden Sie jedoch Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Klicken Sie in der Google Cloud Console rechts oben in der Symbolleiste auf das Cloud Shell-Symbol:
Die Bereitstellung und Verbindung mit der Umgebung dauert nur einen Moment. Wenn er abgeschlossen ist, sollten Sie in etwa Folgendes sehen:
Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Alle Aufgaben in diesem Codelab können in einem Browser ausgeführt werden. Sie müssen nichts installieren.
6. Vorbereitung
APIs aktivieren
Prüfen Sie in Cloud Shell, ob Ihre Projekt-ID eingerichtet ist:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region
Aktivieren Sie alle erforderlichen Dienste:
gcloud services enable compute.googleapis.com
7. Producer-VPC-Netzwerk erstellen
VPC-Netzwerk
Führen Sie in Cloud Shell die folgenden Schritte aus:
gcloud compute networks create looker-psc-demo --subnet-mode custom
Subnetze erstellen
Das PSC-Subnetz wird zum Zweck der Netzwerkadressübersetzung mit dem PSC-Dienstanhang verknüpft.
Erstellen Sie in Cloud Shell das PSC NAT-Subnetz:
gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT
Erstellen Sie in Cloud Shell das Subnetz für die Weiterleitungsregel des Producers:
gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access
Erstelle in Cloud Shell das regionale Nur-Proxy-Subnetz des Producers:
gcloud compute networks subnets create $region-proxy-only-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$region \
--network=looker-psc-demo \
--range=10.10.10.0/24
Öffentliches NAT-Gateway erstellen
Das NAT-Gateway wird vom regionalen internen TCP-Proxy-Load-Balancer mit der Konfigurationsoption –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB für ausgehenden Internettraffic verwendet. Daher unterstützt dasselbe NATGW den ausgehenden Internettraffic von GCE/GKE nicht. Stellen Sie ein zusätzliches NAT-GW mit –endpoint-types=ENDPOINT_TYPE_VM für ausgehenden GCE-/GKE-Internettraffic bereit.
Erstellen Sie in Cloud Shell den Cloud Router:
gcloud compute routers create looker-psc-demo-cloud-router --network looker-psc-demo --region $region
Erstellen Sie in Cloud Shell das Cloud NAT-Gateway, das ausgehenden Internettraffic für den TCP-Proxy-Load-Balancer aktiviert:
gcloud compute routers nats create looker-psc-demo-natgw \
--router=looker-psc-demo-cloud-router \
--endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
--nat-custom-subnet-ip-ranges=$region-proxy-only-subnet \
--auto-allocate-nat-external-ips \
--region=$region
IP-Adresse des Load-Balancers reservieren
Reservieren Sie in Cloud Shell eine interne IP-Adresse für den Load Balancer:
gcloud compute addresses create internet-neg-lb-ip \
--region=$region \
--subnet=producer-psc-fr-subnet
Sehen Sie sich in Cloud Shell die reservierte IP-Adresse an.
gcloud compute addresses describe internet-neg-lb-ip \
--region=$region | grep -i address:
Beispielausgabe:
user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2
Internet-NEG einrichten
Erstellen Sie eine Internet-NEG und legen Sie den „–network-endpoint-type“ auf „internet-fqdn-port“ fest (Hostname und Port, an dem Ihr externes Back-End erreicht werden kann).
Erstellen Sie in Cloud Shell eine Internet-NEG, die für github.com verwendet wird.
gcloud compute network-endpoint-groups create github-internet-neg \
--network-endpoint-type=INTERNET_FQDN_PORT \
--network=looker-psc-demo \
--region=$region
Aktualisieren Sie in Cloud Shell die Internet-NEG github-internet-neg mit dem FQDN github.com und Port 443
gcloud compute network-endpoint-groups update github-internet-neg \
--add-endpoint="fqdn=github.com,port=443" \
--region=$region
Netzwerk-Firewallrichtlinie und Firewallregeln erstellen
Führen Sie in Cloud Shell die folgenden Schritte aus:
gcloud compute network-firewall-policies create looker-psc-demo-policy --global
gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy
Mit der folgenden Firewallregel wird Traffic aus dem PSC-NAT-Subnetzbereich zu allen Instanzen im Netzwerk zugelassen.
Führen Sie in Cloud Shell die folgenden Schritte aus:
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp
8. Producer-Dienst erstellen
Load Balancer-Komponenten erstellen
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute backend-services create producer-backend-svc --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED
gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=github-internet-neg --network-endpoint-group-region=$region --region=$region
Erstellen Sie in Cloud Shell einen Ziel-TCP-Proxy, um Anfragen an Ihren Back-End-Dienst weiterzuleiten:
gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
--backend-service=producer-backend-svc \
--region=$region
Erstellen Sie in der folgenden Syntax eine Weiterleitungsregel (interner TCP-Proxy-Load-Balancer).
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute forwarding-rules create producer-github-fr \
--load-balancing-scheme=INTERNAL_MANAGED \
--network-tier=PREMIUM \
--network=looker-psc-demo \
--subnet=producer-psc-fr-subnet \
--address=internet-neg-lb-ip \
--target-tcp-proxy=producer-lb-tcp-proxy \
--target-tcp-proxy-region=$region \
--region=$region \
--ports=443
Dienstanhang erstellen
Erstellen Sie in Cloud Shell die Dienstverknüpfung „github-svc-attachment-https“:
gcloud compute service-attachments create github-svc-attachment-https --region=$region --producer-forwarding-rule=producer-github-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet
Rufen Sie als Nächstes den im selfLink-URI aufgeführten Dienstanhang ab und notieren Sie sich den Anfang, der mit „projects“ beginnt, um den PSC-Endpunkt in Looker zu konfigurieren.
selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/github-svc-attachment-https
Führen Sie in Cloud Shell die folgenden Schritte aus:
gcloud compute service-attachments describe github-svc-attachment-https --region=$region
Beispiel:
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-08-30T09:44:03.883-07:00'
description: ''
enableProxyProtocol: false
fingerprint: RfKh3blWZE0=
id: '2897904404386302012'
kind: compute#serviceAttachment
name: github-svc-attachment-https
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
high: '19348441121424360'
low: '2897904404386302012'
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/github-svc-attachment-https
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-github-fr
Rufen Sie in der Cloud Console Folgendes auf:
Netzwerkdienste → Private Service Connect → Veröffentlichte Dienste
9. PSC-Endpunktverbindung in Looker herstellen
Im folgenden Abschnitt verknüpfen Sie den Producers-Dienstanhang mit Looker Core PSC über die Flags „-psc-service-attachment“ in Cloud Shell für eine einzelne Domain.
Erstellen Sie in Cloud Shell die PSC-Verknüpfung, indem Sie die folgenden Parameter an Ihre Umgebung anpassen:
- INSTANCE_NAME: Der Name Ihrer Looker (Google Cloud Core)-Instanz.
- DOMAIN_1: github.com
- SERVICE_ATTACHMENT_1: URI, der bei der Beschreibung des Dienstanhangs erfasst wurde, github-svc-attachment-https.
- REGION: Die Region, in der Ihre Looker (Google Cloud Core)-Instanz gehostet wird.
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
Beispiel:
gcloud looker instances update looker-psc-instance \
--psc-service-attachment domain=github.com,attachment=projects/$project/regions/$region/serviceAttachments/github-svc-attachment-https \
--region=$region
Prüfen Sie in Cloud Shell, ob der connectionStatus für serviceAttachments „ACCEPTED“ lautet, aktualisieren Sie ihn mit Ihrem Looker PSC INSTANCE_NAME
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json
Beispiel:
gcloud looker instances describe looker-psc-instance --region=$region --format=json
Beispiel:
{
"adminSettings": {},
"createTime": "2024-08-23T00:00:45.339063195Z",
"customDomain": {
"domain": "cosmopup.com",
"state": "AVAILABLE"
},
"encryptionConfig": {},
"lookerVersion": "24.12.28",
"name": "projects/$project/locations/$region/instances/looker-psc-instance",
"platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
"pscConfig": {
"allowedVpcs": [
"projects/$project/global/networks/looker-psc-demo",
"projects/$project/global/networks/looker-shared-vpc"
],
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
"serviceAttachments": [
{
"connectionStatus": "ACCEPTED",
"localFqdn": "github.com",
"targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/github-svc-attachment-https"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-08-30T17:47:33.440271635Z"
}
PSC-Endpunkt in der Cloud Console validieren
Über die Cloud Console können Sie die PSC-Verbindung prüfen
Rufen Sie in der Cloud Console Folgendes auf:
Looker → Looker-Instanz → Details
10. Verbindung zu GitHub testen
In den folgenden Schritten erstellen Sie mit der Looker-Konsole ein Projekt, um die HTTPS-Verbindung zu github.com zu validieren.
11. Erstellen Sie ein neues Projekt
Entwicklermodus aktivieren
Rufen Sie in der Looker Console Folgendes auf:
Aktivieren Sie den Entwicklungsmodus (untere linke Seite), nachdem Sie das Banner „Sie befinden sich im Entwicklungsmodus“ ausgewählt haben. angezeigt wird.
Neues Projekt erstellen
Rufen Sie in der Cloud Console Folgendes auf:
Entwickeln → Projekte
Neues LookML-Projekt auswählen
Geben Sie einen Projektnamen ein, wählen Sie „Leeres Projekt“ und dann „Projekt erstellen“ aus.
Wählen Sie „Git konfigurieren“ aus
Git konfigurieren
Aktualisieren Sie die Repository-URL mit den HTTPS-GitHub-Details, achten Sie darauf, dass an die URL .git angehängt wird, und wählen Sie dann „Weiter“ aus.
Beispiel:
Aktualisieren Sie die Auswahl mit Ihrem GitHub-Nutzernamen und Ihrem persönlichen Zugriffstoken (klassisch) und wählen Sie dann „Testen und Einrichtung abschließen“ aus.
Git-Aktionen auswählen
Git-Verbindung testen
Git-Konnektivitätstest validieren
Bereinigen
Löschen Sie die Lab-Komponenten in einem einzelnen Cloud Shell-Terminal.
gcloud compute service-attachments delete github-svc-attachment-https --region=$region -q
gcloud compute forwarding-rules delete producer-github-fr --region=$region -q
gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q
gcloud compute backend-services delete producer-backend-svc --region=$region -q
gcloud compute network-firewall-policies rules delete 2001 --firewall-policy looker-psc-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy --name=looker-psc-demo --global-firewall-policy -q
gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q
gcloud compute routers nats delete looker-psc-demo-natgw --router=looker-psc-demo-cloud-router --router-region=$region -q
gcloud compute routers delete looker-psc-demo-cloud-router --region=$region -q
gcloud compute network-endpoint-groups delete github-internet-neg --region=$region -q
gcloud compute addresses delete internet-neg-lb-ip --region=$region -q
gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q
gcloud compute networks delete looker-psc-demo -q
12. Glückwunsch
Herzlichen Glückwunsch! Sie haben die Verbindung zu GitHub über die Looker Console mit Private Service Connect erfolgreich konfiguriert und validiert.
Sie haben die Producer-Infrastruktur erstellt und erfahren, wie Sie eine Internet-NEG, einen Producer-Dienst und einen Looker-PSC-Endpunkt erstellen, die eine Verbindung zum Producer-Dienst ermöglichen.
Cosmopup findet Codelabs super!!
Was liegt als Nächstes an?
Sehen Sie sich einige dieser Codelabs an:
- Private Service Connect zum Veröffentlichen und Nutzen von Diensten verwenden
- Mit Private Service Connect und einem internen TCP-Proxy-Load-Balancer über ein Hybridnetzwerk eine Verbindung zu lokalen Diensten herstellen
- Zugriff auf alle veröffentlichten Private Service Connect-Codelabs