1. Einführung
In diesem Codelab stellen Sie eine Verbindung vom Typ „Southbound“ zu einer lokalen Postgres-Datenbank über H-VPN mit einem internen TCP-Proxy-Load Balancer und einer Hybrid-Netzwerk-Endpunktgruppe her, die von Looker PSC als Dienstverbraucher aufgerufen wird.
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 On-Premises-Endpunkte, VPC-Endpunkte, verwaltete Dienste und die Hybridumgebung 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 über eine Testverbindung von Looker zur lokalen Postgres-Datenbank herstellen
Voraussetzungen
- Google Cloud-Projekt mit Inhaberberechtigungen
- 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 Hybrid-NEG bereitzustellen, die als Dienst über Private Service Connect (PSC) veröffentlicht wird. Zur Demonstration einer lokalen Datenbank stellen Sie eine on-prem-demo-VPC bereit, die über HA VPN mit der looker-psc-demo-VPC verbunden ist.
Führe die folgenden Schritte aus, um den Zugriff auf den Producer-Dienst zu bestätigen:
- PSC-Endpunkt in Looker erstellen, der mit dem Dienstanhang des Diensterstellers verknüpft ist
- Verbindung zur lokalen Postgres-Datenbank über die Looker Console prüfen
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 |
VPC (on-prem-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 Erstellers 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 verwendet, um eine IP-Adresse für die Netzwerk-Endpunktgruppe zuzuweisen. |
Nur-Proxy-Subnetz | Jedem Proxy des Load Balancers wird 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. |
Hybrid-NEG | Die Konfiguration von lokalen und anderen Cloud-Diensten entspricht grundsätzlich dem anderer Cloud Load Balancing-Back-Ends. Der Hauptunterschied besteht darin, dass Sie für die Konfiguration der Endpunkte dieser Back-Ends eine Hybridkonnektivitäts-NEG verwenden. Die Endpunkte müssen gültige IP‑:Port-Kombinationen sein, die Ihr Load Balancer mithilfe von Hybridkonnektivitätsprodukten wie Cloud VPN oder Cloud Interconnect erreichen kann. |
Backend-Dienst | Ein Back-End-Dienst dient als Brücke zwischen Ihrem Load Balancer und Ihren Back-End-Ressourcen. In diesem Tutorial ist der Back-End-Dienst mit der hybriden NEG verknüpft. |
Cloud Router |
|
HA-VPN | HA VPN zwischen Google Cloud-VPC-Netzwerken In dieser Topologie können Sie zwei Google Cloud VPC-Netzwerke verbinden, indem Sie ein HA VPN-Gateway in jedem Netzwerk verwenden. Die VPC-Netzwerke können sich in derselben Region oder in mehreren Regionen befinden. |
Cloud NAT | Wird von der On-Premise-Demo-VPC für den Internet-Ausgang verwendet |
4. Codelab-Topologie
5. Einrichtung und Anforderungen
Einrichtung der Umgebung im eigenen Tempo
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. 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 ist ein Zeichenstring, der 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 bestehen. - Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs verwenden zu können. Die Durchführung dieses Codelabs ist kostenlos oder kostet nur sehr wenig. Wenn Sie die Ressourcen deaktivieren möchten, um Kosten nach Abschluss dieser Anleitung zu vermeiden, können Sie die von Ihnen erstellten Ressourcen oder das Projekt löschen. 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 per Fernzugriff von Ihrem Laptop aus nutzen, 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 sollte nur wenige Minuten dauern. Wenn der Vorgang abgeschlossen ist, sollte in etwa Folgendes angezeigt werden:
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. Dadurch werden Netzwerkleistung und Authentifizierung erheblich verbessert. Alle Aufgaben in diesem Codelab können in einem Browser ausgeführt werden. Sie müssen nichts installieren.
6. Hinweis
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]
zone=[YOUR-ZONE]
echo $project
echo $region
Aktivieren Sie alle erforderlichen Dienste:
gcloud services enable compute.googleapis.com
7. Ersteller-VPC-Netzwerk erstellen
VPC-Netzwerk
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute networks create looker-psc-demo --subnet-mode custom
Subnetze erstellen
Das PSC-Subnetz wird dem PSC-Dienstanhang zum Zweck der Network Address Translation zugeordnet.
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 Subnetzwerk 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
IP-Adresse des Load-Balancers reservieren
Reservieren Sie in Cloud Shell eine interne IP-Adresse für den Load Balancer:
gcloud compute addresses create hybrid-neg-lb-ip \
--region=$region \
--subnet=producer-psc-fr-subnet
Rufen Sie in Cloud Shell die reservierte IP-Adresse auf.
gcloud compute addresses describe hybrid-neg-lb-ip \
--region=$region | grep -i address:
Beispielausgabe:
gcloud compute addresses describe hybrid-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2
Hybrid-NEG einrichten
Hybrid-NEG erstellen und den Typ „–network-endpoint-type“ auf „NON_GCP_PRIVATE_IP_PORT“ festlegen
Erstellen Sie in Cloud Shell eine hybride NEG, die für den Zugriff auf die On-Premise-Datenbank verwendet wird:
gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
--network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
--network=looker-psc-demo \
--zone=$zone
Aktualisieren Sie in Cloud Shell die Hybrid-NEG mit der IP:Port-Adresse der lokalen Datenbank, 192.168.10.4 und Port 5432, die in einem späteren Schritt der Anleitung generiert wird:
gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
--add-endpoint=ip=192.168.10.4,port=5432 \
--zone=$zone
Regionale Systemdiagnose erstellen
Erstellen Sie in Cloud Shell eine Systemdiagnose, die den On-Premises-Datenbankport 5432 prüft:
gcloud compute health-checks create tcp on-prem-5432-healthcheck \
--region=$region \
--port=5432
Netzwerk-Firewallrichtlinie und Firewallregeln erstellen
Führen Sie in Cloud Shell folgende 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 folgende 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
Erstellen Sie in Cloud Shell einen Back-End-Dienst:
gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=on-prem-5432-healthcheck --health-checks-region=$region
Fügen Sie in Cloud Shell dem Backend-Dienst das hybride NEG-Backend hinzu:
gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=on-prem-hybrid-neg --network-endpoint-group-zone=$zone --balancing-mode=CONNECTION --max-connections=100 --region=$region
Erstellen Sie in Cloud Shell einen Ziel-TCP-Proxy, um Anfragen an Ihren Backend-Dienst weiterzuleiten:
gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
--backend-service=producer-backend-svc \
--region=$region
Erstellen Sie mit 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-hybrid-neg-fr \
--load-balancing-scheme=INTERNAL_MANAGED \
--network-tier=PREMIUM \
--network=looker-psc-demo \
--subnet=producer-psc-fr-subnet \
--address=hybrid-neg-lb-ip \
--target-tcp-proxy=producer-lb-tcp-proxy \
--target-tcp-proxy-region=$region \
--region=$region \
--ports=5432
Dienstanhänge erstellen
Erstellen Sie in Cloud Shell die Dienstverknüpfung „onpremdatabase1-svc-attachment“:
gcloud compute service-attachments create onpremdatabase1-svc-attachment --region=$region --producer-forwarding-rule=producer-hybrid-neg-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/onpremdatabase1-svc-attachment
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute service-attachments describe onpremdatabase1-svc-attachment --region=$region
Beispiel für die erwartete Ausgabe:
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-09-01T16:07:51.600-07:00'
description: ''
enableProxyProtocol: false
fingerprint: cFt9rERR1iE=
id: '2549689544315850024'
kind: compute#serviceAttachment
name: onpremdatabase1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
high: '19348441121424360'
low: '2549689544315850024'
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/onpremdatabase1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-hybrid-neg-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 ordnen Sie den Dienstanhang des Erstellers dem PSC von Looker Core mithilfe der Flags „–psc-service-attachment“ in Cloud Shell für eine einzelne Domain zu.
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: onprem.database1.com
- SERVICE_ATTACHMENT_1: URI, der beim Erstellen des Dienstanhangs erfasst wurde, onpremdatabase1-svc-attachment
- 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=onprem.database1.com,attachment=projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment --region=$region
Prüfen Sie in Cloud Shell, ob der Verbindungsstatus von „serviceAttachments“ „ACCEPTED“ ist, und aktualisieren Sie ihn mit dem Namen Ihrer Looker-PSC-Instanz:
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": "looker.cosmopup.com",
"state": "AVAILABLE"
},
"encryptionConfig": {},
"lookerVersion": "24.14.18",
"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": "onprem.database1.com",
"targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-09-01T23:15:07.426372901Z"
}
PSC-Endpunkt in der Cloud Console prüfen
In der Cloud Console können Sie die PSC-Verbindung prüfen.
Rufen Sie in der Cloud Console Folgendes auf:
Looker → Looker-Instanz → Details
On-Premises-VPC-Netzwerk erstellen
VPC-Netzwerk
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute networks create on-prem-demo --project=$project --subnet-mode=custom
PostgreSQL-Datenbanksubnetz erstellen
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute networks subnets create database-subnet --project=$project --range=192.168.10.0/28 --network=on-prem-demo --region=$region
Reservieren Sie in Cloud Shell eine interne IPv4-Adresse, die für onprem.database1.com, 192.168.10.4 verwendet wird:
gcloud compute addresses create on-prem-database1-ip --region=$region --subnet=database-subnet --addresses 192.168.10.4
Cloud Router für das VPC „on-prem-demo“ erstellen
In diesem Leitfaden wird Cloud NAT für die Installation des Softwarepakets verwendet, da die VM-Instanz keine externe IP-Adresse hat.
Erstellen Sie in Cloud Shell den Cloud Router, der mit Cloud NAT und HA VPN verwendet wird:
gcloud compute routers create on-prem-cr \
--region=$region \
--network=on-prem-demo \
--asn=65002
Erstellen Sie in Cloud Shell das NAT-Gateway:
gcloud compute routers nats create on-prem-nat --router=on-prem-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region $region
Datenbanktestinstanz erstellen
Erstellen Sie eine Postgres-Datenbankinstanz, mit der die Verbindung zu Looker getestet und validiert wird.
Erstellen Sie in Cloud Shell die Instanz:
gcloud compute instances create postgres-database \
--project=$project \
--zone=$zone \
--machine-type=e2-medium \
--subnet=database-subnet \
--no-address \
--private-network-ip 192.168.10.4 \
--image-family debian-12 \
--image-project debian-cloud \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt -y install postgresql postgresql-client postgresql-contrib -y"
Netzwerk-Firewallrichtlinie und Firewallregeln erstellen
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute network-firewall-policies create on-prem-demo-policy --global
gcloud compute network-firewall-policies associations create --firewall-policy on-prem-demo-policy --network on-prem-demo --name on-prem-demo --global-firewall-policy
Damit IAP eine Verbindung zu Ihren VM-Instanzen herstellen kann, erstellen Sie eine Firewallregel, die:
- Gilt für alle VM-Instanzen, die über IAP zugänglich sein sollen.
- Lässt eingehenden Traffic aus dem IP-Bereich 35.235.240.0/20 zu. Dieser Bereich enthält alle IP-Adressen, die IAP für die TCP-Weiterleitung verwendet.
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy on-prem-demo-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22 --global-firewall-policy
Die folgende Firewallregel erlaubt Traffic vom Bereich des Nur-Proxy-Subnetzes zu allen Instanzen im Netzwerk.
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy on-prem-demo-policy --description "allow traffic from proxy only subnet" --direction INGRESS --src-ip-ranges 10.10.10.0/24 --global-firewall-policy --layer4-configs=tcp
10. Hybridkonnektivität
Im folgenden Abschnitt erstellen Sie einen Cloud Router, mit dem Sie Routen zwischen Ihrer Virtual Private Cloud (VPC) und dem Peer-Netzwerk mithilfe des Border Gateway Protocol (BGP) dynamisch austauschen können.
Cloud Router kann eine BGP-Sitzung über einen Cloud VPN-Tunnel einrichten, um Ihre Netzwerke zu verbinden. Er erkennt automatisch neue Subnetz-IP-Adressbereiche und kündigt sie Ihrem Peer-Netzwerk an.
In den folgenden Schritten stellen Sie ein HA VPN zwischen der VPC „looker-psc-demo“ und der VPC „on-prem-demo“ bereit, um die Hybrid-NEG-Konnektivität zu onprem.database1.com zu demonstrieren.
HA VPN-Gateway für die looker-psc-demo erstellen
Beim Erstellen der Gateways werden automatisch zwei externe IPv4-Adressen zugewiesen, eine für jede Gateway-Schnittstelle.
Erstellen Sie in Cloud Shell das HA VPN-Gateway:
gcloud compute vpn-gateways create looker-psc-demo-vpn-gw \
--network=looker-psc-demo \
--region=$region
HA VPN-Gateway für die On-Premise-Demo erstellen
Beim Erstellen der Gateways werden automatisch zwei externe IPv4-Adressen zugewiesen, eine für jede Gateway-Schnittstelle.
Erstellen Sie in Cloud Shell das HA VPN-Gateway:
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-demo\
--region=$region
Erstellung von HA VPN-Gateways prüfen
Gehen Sie in der Console zu HYBRIDKONNEKTIVITÄT → VPN → CLOUD VPN-GATEWAYS.
Cloud Router für die looker-psc-demo erstellen
Erstellen Sie in Cloud Shell den Cloud Router:
gcloud compute routers create looker-psc-demo-cr \
--region=$region \
--network=looker-psc-demo\
--asn=65001
VPN-Tunnel für looker-psc-demo erstellen
Sie erstellen zwei VPN-Tunnel auf jedem HA VPN-Gateway.
VPN-Tunnel 0 erstellen
Erstellen Sie in Cloud Shell tunnel0:
gcloud compute vpn-tunnels create looker-psc-demo-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router looker-psc-demo-cr \
--vpn-gateway looker-psc-demo-vpn-gw \
--interface 0
VPN-Tunnel1 erstellen
Erstellen Sie in Cloud Shell tunnel1:
gcloud compute vpn-tunnels create looker-psc-demo-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router looker-psc-demo-cr \
--vpn-gateway looker-psc-demo-vpn-gw \
--interface 1
VPN-Tunnel für on-prem-demo erstellen
Sie erstellen zwei VPN-Tunnel auf jedem HA VPN-Gateway.
VPN-Tunnel 0 erstellen
Erstellen Sie in Cloud Shell tunnel0:
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway looker-psc-demo-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-prem-cr \
--vpn-gateway on-prem-vpn-gw \
--interface 0
VPN-Tunnel1 erstellen
Erstellen Sie in Cloud Shell tunnel1:
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway looker-psc-demo-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-prem-cr \
--vpn-gateway on-prem-vpn-gw \
--interface 1
Erstellung des VPN-Tunnels prüfen
Gehen Sie in der Console zu HYBRIDKONNEKTIVITÄT → VPN → CLOUD VPN-TUNNELS.
11. BGP-Nachbarn einrichten
BGP-Schnittstelle und Peering für looker-psc-demo erstellen
Erstellen Sie in Cloud Shell die BGP-Schnittstelle:
gcloud compute routers add-interface looker-psc-demo-cr \
--interface-name if-tunnel0-to-onprem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel looker-psc-demo-tunnel0 \
--region $region
Erstellen Sie in Cloud Shell den BGP-Peer:
gcloud compute routers add-bgp-peer looker-psc-demo-cr \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onprem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region $region
Erstellen Sie in Cloud Shell die BGP-Schnittstelle:
gcloud compute routers add-interface looker-psc-demo-cr \
--interface-name if-tunnel1-to-onprem \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel looker-psc-demo-tunnel1 \
--region $region
Erstellen Sie in Cloud Shell den BGP-Peer:
gcloud compute routers add-bgp-peer looker-psc-demo-cr \
--peer-name bgp-on-premises-tunnel1 \
--interface if-tunnel2-to-onprem \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region $region
BGP-Schnittstelle und Peering für On-Premise-Demo erstellen
Erstellen Sie in Cloud Shell die BGP-Schnittstelle:
gcloud compute routers add-interface on-prem-cr \
--interface-name if-tunnel0-to-looker-psc-demo \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region $region
Erstellen Sie in Cloud Shell den BGP-Peer:
gcloud compute routers add-bgp-peer on-prem-cr \
--peer-name bgp-looker-psc-demo-tunnel0 \
--interface if-tunnel1-to-looker-psc-demo \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region $region
Erstellen Sie in Cloud Shell die BGP-Schnittstelle:
gcloud compute routers add-interface on-prem-cr \
--interface-name if-tunnel1-to-looker-psc-demo \
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region $region
Erstellen Sie in Cloud Shell den BGP-Peer:
gcloud compute routers add-bgp-peer on-prem-cr \
--peer-name bgp-looker-psc-demo-tunnel1\
--interface if-tunnel2-to-looker-psc-demo \
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region $region
Rufen Sie HYBRIDKONNEKTIVITÄT → VPN auf, um die VPN-Tunneldetails aufzurufen.
Erlernte Routes von looker-psc-demo über HA VPN prüfen
Nachdem die HA VPN-Tunnel und BGP-Sitzungen eingerichtet sind, bewirbt der Cloud Router standardmäßig Subnetzrouten. Erkannte Routen in der Looker-PSC-Demo ansehen
Gehen Sie in der Console zu VPC-Netzwerk → VPC-Netzwerke → looker-psc-demo → ROUTEN → REGION → ANSICHT.
Sehen Sie sich an, ob looker-psc-demo das Datenbanksubnetz 192.168.10.0/28 aus der VPC on-prem-demo erlernt hat.
Prüfen, ob on-prem-demo VPC Routen über HA VPN erlernt hat
Da der Cloud Router standardmäßig alle Subnetze anbietet, wird nur das Subnetz für den Proxy über BGP beworben. Bei der Hybrid-NEG wird das Nur-Proxy-Subnetz als Quelladresse verwendet, wenn mit dem Server onprem.database1.com kommuniziert wird.
Sehen Sie sich an, dass on-prem-demo das Nur-Proxy-Subnetz 10.10.10.0/24 von looker-psc-demo gelernt hat.
Gehen Sie in der Console zu VPC-Netzwerk → VPC-Netzwerke → on-prem-demo → ROUTEN → REGION → ANSEHEN.
12. Looker-Postgres-Datenbank erstellen
Im folgenden Abschnitt stellen Sie über Cloud Shell eine SSH-Verbindung zur postgres-database-VM her.
Führen Sie in Cloud Shell eine SSH-Verbindung zur PostgreSQL-Datenbankinstanz aus:
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"
Ermitteln Sie die IP-Adresse (ens4) der Postgres-Datenbankinstanz im Betriebssystem und notieren Sie sich diese:
ip a
Beispiel:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
link/ether 42:01:c0:a8:0a:04 brd ff:ff:ff:ff:ff:ff
altname enp0s4
inet 192.168.10.4/32 metric 100 scope global dynamic ens4
valid_lft 66779sec preferred_lft 66779sec
inet6 fe80::4001:c0ff:fea8:a04/64 scope link
valid_lft forever preferred_lft forever
Melden Sie sich im Betriebssystem bei postgresql an:
sudo -u postgres psql postgres
Geben Sie im Betriebssystem die Passwortaufforderung ein:
\password postgres
Legen Sie im Betriebssystem das Passwort für postgres fest (geben Sie dasselbe Passwort zweimal ein):
postgres
Beispiel:
user@postgres-database:~$ sudo -u postgres psql postgres
\password postgres
psql (13.11 (Debian 13.11-0+deb11u1))
Type "help" for help.
postgres=# \password postgres
Enter new password for user "postgres":
Enter it again:
Beenden Sie postgres im Betriebssystem:
\q
Beispiel:
postgres=# \q
user@postgres-database:~$
Im folgenden Abschnitt fügen Sie die IP-Adresse Ihrer Postgres-Datenbankinstanz (192.168.10.4) und das Subnetz nur für Proxys (10.10.10.0/24) in die Datei „pg_hba.conf“ unter den lokalen IPv4-Verbindungen ein.
sudo nano /etc/postgresql/15/main/pg_hba.conf
Auf dem Screenshot unten ist das abgeschlossene Update zu sehen:
Entfernen Sie im folgenden Abschnitt die Kommentarzeichen aus der Datei postgresql.conf, um wie im Screenshot unten beschrieben auf alle IP-Adressen des Typs „*“ zu lauschen:
sudo nano /etc/postgresql/15/main/postgresql.conf
Vorher:
Nachher:
Starten Sie den postgresql-Dienst im Betriebssystem neu:
sudo service postgresql restart
Prüfen Sie im Betriebssystem, ob der Status von postgresql „aktiv“ ist:
sudo service postgresql status
Beispiel:
Prüfen Sie im Betriebssystem, ob der Status von postgresql „aktiv“ ist:
user@postgres-database:/$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: active (exited) since Mon 2024-09-02 12:10:10 UTC; 1min 46s ago
Process: 20486 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 20486 (code=exited, status=0/SUCCESS)
CPU: 2ms
Sep 02 12:10:10 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Sep 02 12:10:10 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.
13. Postgres-Datenbank erstellen
Im folgenden Abschnitt erstellen Sie eine Postgres-Datenbank mit dem Namen postgres_looker und dem Schema looker_schema, mit dem die Verbindung von Looker zur On-Premises-Umgebung validiert wird.
Melden Sie sich im Betriebssystem bei Postgres an:
sudo -u postgres psql postgres
Erstellen Sie die Datenbank im Betriebssystem:
create database postgres_looker;
Listen Sie die Datenbank im Betriebssystem auf:
\l
Erstellen Sie im Betriebssystem den Nutzer „postgres_looker“ mit dem Passwort „postgreslooker“:
create user postgres_looker with password 'postgreslooker';
Stellen Sie über das Betriebssystem eine Verbindung zur Datenbank her:
\c postgres_looker;
Erstellen Sie im Betriebssystem das Schema „looker-schema“ und kehren Sie zum Cloud Shell-Prompt zurück.
create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
Exit from the OS, returning you to cloud shell:
\q
Beispiel:
user@postgres-database:/$ sudo -u postgres psql postgres
psql (15.8 (Debian 15.8-0+deb12u1))
Type "help" for help.
postgres=# create database postgres_looker;
CREATE DATABASE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------------+----------+----------+---------+---------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
postgres_looker | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
(4 rows)
postgres=# create user postgres_looker with password 'postgreslooker';
CREATE ROLE
postgres=# \c postgres_looker;
You are now connected to database "postgres_looker" as user "postgres".
postgres_looker=# create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
CREATE SCHEMA
CREATE TABLE
postgres_looker-# \q
14. Looker in die Postgres-Datenbank einbinden
Im folgenden Abschnitt erstellen Sie mit der Looker Console eine Datenbankverbindung zur lokalen PostgreSQL-Datenbankinstanz.
Gehen Sie zu ADMIN → DATABASE → CONNECTIONS (ADMIN → DATABASE → CONNECTIONS) und wählen Sie ADD CONNECTION (VERBINDUNG HINZUFÜGEN) aus.
Geben Sie die Verbindungsdetails wie im Screenshot unten ein und wählen Sie VERKNÜPFEN aus.
Die Verbindung ist jetzt konfiguriert
15. Looker-Konnektivität prüfen
Im folgenden Abschnitt erfahren Sie, wie Sie die Looker-Verbindung zur Postgres-Datenbank in der On-Premises-VPC mit der Looker-Aktion „test“ und TCPDUMP prüfen.
Melden Sie sich in Cloud Shell in der Postgres-Datenbank an, wenn die Sitzung abgelaufen ist.
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"
Erstellen Sie über das Betriebssystem einen TCPDUMP-Filter mit dem Nur-Proxy-Subnetz 10.10.10.0/24.
sudo tcpdump -i any net 10.10.10.0/24 -nn
Rufen Sie die Datenverbindung auf: VERWALTUNG → DATENSATZ → VERBINDUNGEN → postgres-database → TEST
Sobald „Test“ ausgewählt ist, stellt Looker wie unten dargestellt eine Verbindung zur Postgres-Datenbank her:
Bereinigen
Lab-Komponenten über ein einzelnes Cloud Shell-Terminal löschen
gcloud compute service-attachments delete onpremdatabase1-svc-attachment --region=$region -q
gcloud compute forwarding-rules delete producer-hybrid-neg-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 on-prem-nat --router=on-prem-cr --router-region=$region -q
gcloud compute network-endpoint-groups delete on-prem-hybrid-neg --zone=$zone -q
gcloud compute addresses delete hybrid-neg-lb-ip --region=$region -q
gcloud compute vpn-tunnels delete looker-psc-demo-tunnel0 looker-psc-demo-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=$region -q
gcloud compute vpn-gateways delete looker-psc-demo-vpn-gw on-prem-vpn-gw --region=$region -q
gcloud compute routers delete looker-psc-demo-cr on-prem-cr --region=$region -q
gcloud compute instances delete postgres-database --zone=$zone -q
gcloud compute addresses delete on-prem-database1-ip --region=$region -q
gcloud compute networks subnets delete database-subnet --region=$region -q
gcloud compute network-firewall-policies rules delete 2001 --firewall-policy on-prem-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies rules delete 1000 --firewall-policy on-prem-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies associations delete --firewall-policy=on-prem-demo-policy --name=on-prem-demo --global-firewall-policy -q
gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q
gcloud compute networks subnets delete producer-psc-nat-subnet --region=$region -q
gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q
gcloud compute networks delete on-prem-demo -q
gcloud compute networks delete looker-psc-demo -q
16. Glückwunsch
Herzlichen Glückwunsch! Sie haben die Verbindung zur lokalen Datenbank über HA-VPN mit der Looker Console, die Private Service Connect nutzt, erfolgreich konfiguriert und validiert.
Sie haben die Infrastruktur des Diensterstellers erstellt und gelernt, wie Sie eine Hybrid-NEG, einen Dienst des Diensterstellers und einen PSC-Endpunkt für Looker erstellen, die eine Verbindung zum Dienst des Diensterstellers 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
- Über Private Service Connect und einen internen TCP-Proxy-Load Balancer eine Verbindung zu On-Premise-Diensten über Hybridnetzwerke herstellen
- Zugriff auf alle veröffentlichten Private Service Connect-Codelabs