1. Einführung
In diesem Codelab stellen Sie eine Southbound-Verbindung 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 verwenden, um auf Looker zuzugreifen, 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 die Hybridumgebung zu gewähren. Verbindungen in Richtung Süden können in jeder Region bereitgestellt werden, unabhängig davon, wo Looker PSC bereitgestellt wird (siehe Abbildung 2).
Abbildung 2.
Aufgaben in diesem Lab
- Netzwerkanforderungen
- Private Service Connect-Producer-Dienst erstellen
- Private Service Connect-Endpunkt in Looker erstellen
- Verbindung zur lokalen Postgres-Datenbank von Looker über eine Testverbindung 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 werden. 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ühren Sie die folgenden Aktionen aus, um den Zugriff auf den Producer-Dienst zu überprüfen:
- 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
Im Folgenden finden Sie eine Aufschlüsselung der Netzwerkanforderungen für das Producer-Netzwerk. 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 Nutzer-VPC-Netzwerk werden mit 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 zum Zuweisen einer IP-Adresse für den regionalen internen TCP-Proxy-Load-Balancer verwendet |
PSC-NEG-Subnetz | Wird verwendet, um eine IP-Adresse für die Netzwerk-Endpunktgruppe zuzuweisen. |
Nur-Proxy-Subnetz | Jedem der Proxys des Load-Balancers ist eine interne IP-Adresse zugewiesen. Pakete, die von einem Proxy an eine Back-End-VM oder einen Back-End-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 mit 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 lokalen Demo-VPC für ausgehenden Internettraffic verwendet |
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. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie ein Konto erstellen.
- Der Projektname ist der Anzeigename für die Projektteilnehmer. Es handelt sich um eine Zeichenfolge, die von Google APIs nicht verwendet wird. Sie können sie jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich. Sie kann nach dem Festlegen 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 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 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. 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 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. Es bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud, wodurch die Netzwerkleistung und Authentifizierung erheblich verbessert werden. Alle Arbeiten in diesem Codelab können in einem Browser erledigt 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]
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 die folgenden 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 Subnetz der Weiterleitungsregel für den Ersteller:
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
Erstellen Sie eine Hybrid-NEG und setzen Sie den -network-endpoint-type auf NON_GCP_PRIVATE_IP_PORT
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 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
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 Back-End-Dienst das Hybrid-NEG-Back-End 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 Back-End-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 die folgenden 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 den Dienstanhang „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 ihn. Er beginnt mit den Projekten zum Konfigurieren des PSC-Endpunkts in Looker.
SelfLink: projects/<Ihre-Projekt-ID>/regions/<Ihre-Region>/serviceAttachments/onpremdatabase1-svc-attachment
Führen Sie in Cloud Shell die folgenden 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 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. Aktualisieren Sie dazu die folgenden Parameter entsprechend Ihrer Umgebung:
- 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 validieren
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 verwendet wird, und HA-VPN:
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 die Instanz in Cloud Shell:
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, müssen Sie eine Firewallregel erstellen, die:
- Gilt für alle VM-Instanzen, die mit 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 die folgenden 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 lässt Traffic aus dem Nur-Proxy-Subnetzbereich zu allen Instanzen im Netzwerk zu.
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 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.
Erstellen Sie das HA VPN-GW für looker-psc-demo
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-GW:
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 eines Gateways werden automatisch zwei externe IPv4-Adressen zugewiesen, eine für jede Gateway-Schnittstelle.
Erstellen Sie in Cloud Shell das HA VPN-GW:
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-Tunnel erstellen1
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 lokale 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-Tunnel erstellen1
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 Konsole zu HYBRID-KONNEKTIVITÄ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 lokale 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
Gehen Sie zu Hybridkonnektivität → VPN, um die Details zum VPN-Tunnel aufzurufen.
Erlernte Routes von looker-psc-demo über HA VPN prüfen
Nachdem die HA VPN-Tunnel und BGP-Sitzungen eingerichtet sind, besteht das Standardverhalten des Cloud Routers darin, Subnetzrouten anzubieten. Sehen Sie sich die von Looker-psc-demo erkannten Routen an.
Gehen Sie in der Konsole zu VPC-Netzwerk → VPC-Netzwerke → looker-psc-demo → ROUTES → REGION → VIEW.
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 das 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. Die Hybrid-NEG verwendet bei der Kommunikation mit dem Server „onprem.database1.com“ das Nur-Proxy-Subnetz als Quelladresse.
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. Erstellung der Looker-Postgres-Datenbank
Im folgenden Abschnitt führen Sie mit Cloud Shell eine SSH-Verbindung zur VM „postgres-database“ aus.
Führen Sie in Cloud Shell eine SSH-Verbindung zur PostgreSQL-Datenbankinstanz aus:
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"
Ermitteln Sie im Betriebssystem die IP-Adresse (ens4) der postgres-database-Instanz und notieren Sie sie:
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 Passwort-Eingabeaufforderung 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 von postgresql.conf, um alle '*' zu überwachen IP-Adressen gemäß dem folgenden Screenshot:
sudo nano /etc/postgresql/15/main/postgresql.conf
Vorher:
Nachher:
Starten Sie im Betriebssystem den Postgresql-Dienst neu:
sudo service postgresql restart
Prüfen Sie im Betriebssystem den Postgresql-Status als aktiv:
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 das Schema „looker_schema“, mit dem Looker zur lokalen Verbindung 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 Looker-Schema für das Looker-Schema und verlassen Sie die Cloud Shell-Eingabeaufforderung.
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 validieren
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 im 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
Gehen Sie zur Datenverbindung ADMIN → DATENBANK → 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 verwendet, 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