Looker PSC: Southbound-Hybrid-NEG zu lokal

1. Einführung

In diesem Codelab stellen Sie über H-VPN eine Downstream-Verbindung zu einer lokalen PostgreSQL-Datenbank her. Dazu verwenden Sie einen internen TCP-Proxy-Load-Balancer und eine hybride Netzwerk-Endpunktgruppe, die von Looker PSC als Dienstnutzer 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 der Dienstersteller, wie in Abbildung 1 dargestellt.

Abbildung 1:

145ea4672c3a3b14.png

Der Southbound-Zugriff, auch als Reverse-PSC bezeichnet, ermöglicht es dem Nutzer, einen veröffentlichten Dienst als Ersteller zu erstellen, damit Looker auf Endpunkte lokal, in einer VPC, auf verwaltete Dienste und auf die Hybridumgebung zugreifen kann. Southbound-Verbindungen können in jeder Region bereitgestellt werden, unabhängig davon, wo Looker PSC bereitgestellt wird, wie in Abbildung 2 dargestellt.

Abbildung 2.

259493afd914f68b.png

Lerninhalte

  • Netzwerkanforderungen
  • Private Service Connect-Producer-Dienst erstellen
  • Private Service Connect-Endpunkt in Looker erstellen
  • Verbindung zur lokalen Postgres-Datenbank über Looker mit einer Testverbindung herstellen

Voraussetzungen

def88091b42bfe4d.png

2. Aufgaben

Sie richten ein Producer-Netzwerk (looker-psc-demo) ein, um einen internen TCP-Proxy-Load-Balancer und ein Hybrid-NEG bereitzustellen, das als Dienst über Private Service Connect (PSC) veröffentlicht wird. Um eine lokale Datenbank zu demonstrieren, stellen Sie eine lokale Demo-VPC bereit, die über HA VPN mit der Looker-PSC-Demo-VPC verbunden ist.

Sie führen die folgenden Aktionen aus, um den Zugriff auf den Producer-Dienst zu validieren:

  • PSC-Endpunkt in Looker erstellen, der dem Dienstanhang des Diensterstellers zugeordnet ist
  • Mit der Looker-Konsole eine Verbindungsvalidierung für die lokale Postgres-Datenbank durchführen

3. Netzwerkanforderungen

Unten finden Sie die Aufschlüsselung der Netzwerkanforderungen für das Erstellernetzwerk. 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 regionalen internen TCP-Proxy-Load-Balancer zuzuweisen.

PSC-NEG-Subnetz

Wird verwendet, um eine IP-Adresse für die Netzwerk-Endpunktgruppe zuzuweisen.

Nur-Proxy-Subnetz

Jedem der Proxys 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-Adresse: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 fungiert als Brücke zwischen Ihrem Load-Balancer und Ihren Back-End-Ressourcen. Im Tutorial ist der Back-End-Dienst mit der hybriden NEG verknüpft.

Cloud Router

  • Cloud NAT nutzt Cloud Router für Funktionen der Steuerungsebene, aber nicht für die Verwaltung von BGP-Sitzungen.
  • Der Cloud Router wird für BGP verwendet, das für die Einrichtung von HA VPN zwischen den VPCs „psc-looker-demo“ und „on-prem-demo“ eingerichtet wurde.

HA-VPN

HA VPN zwischen Google Cloud-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 in derselben Region oder in mehreren Regionen liegen.

Cloud NAT

Wird von der VPC „on-prem-demo“ für ausgehenden Internet-Traffic verwendet

4. Codelab-Topologie

79aeb28b38f237da.png

5. Einrichtung und Anforderungen

Umgebung zum selbstbestimmten Lernen einrichten

  1. 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 eines erstellen.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen String, der nicht von Google APIs verwendet wird. Sie können sie jederzeit aktualisieren.
  • Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich (kann nach dem Festlegen nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise ist es nicht wichtig, wie dieser String aussieht. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (in der Regel als PROJECT_ID angegeben). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie es mit einem eigenen Namen versuchen und sehen, ob er 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
  1. Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs zu verwenden. Die Durchführung dieses Codelabs kostet wenig oder gar nichts. Wenn Sie Ressourcen herunterfahren möchten, um Kosten zu vermeiden, die über diese Anleitung hinausgehen, können Sie die erstellten Ressourcen oder das Projekt löschen. Neue Google Cloud-Nutzer können am kostenlosen Testzeitraum mit einem Guthaben von 300$ teilnehmen.

Cloud Shell starten

Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, 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:

55efc1aaa7a4d3ad.png

Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Augenblicke dauern. Anschließend sehen Sie in etwa Folgendes:

7ffe5cbb04455448.png

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 in 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. 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 zum Zweck der Network Address Translation dem PSC-Dienstanhang 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 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

Erstellen Sie in Cloud Shell das regionale Nur-Proxy-Subnetz für den Producer:

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

Sehen Sie sich in Cloud Shell die reservierte IP-Adresse an.

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 „–network-endpoint-type“ auf „NON_GCP_PRIVATE_IP_PORT“ festlegen

Erstellen Sie in Cloud Shell ein Hybrid-NEG für den Zugriff auf die lokale Datenbank:

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-Adresse und dem Port der lokalen Datenbank (192.168.10.4 und Port 5432), die in einem späteren Schritt der Anleitung generiert werden:

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-Premise-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

Die folgende Firewallregel lässt Traffic vom PSC-NAT-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 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

Dienstanhang erstellen

Erstellen Sie in Cloud Shell die Service Attachment „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 Dienstanhang ab, der im selfLink-URI aufgeführt ist, der mit „projects“ beginnt, und notieren Sie ihn, 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:

„Network Services“ → „Private Service Connect“ → „Published Services“

9f436251a3ae2cc7.png

4c3e8e73d40d1238.png

9. PSC-Endpunktverbindung in Looker herstellen

Im folgenden Abschnitt verknüpfen Sie den Dienstanhang des Erstellers mit Looker Core PSC, indem Sie die Flags „–psc-service-attachment“ in Cloud Shell für eine einzelne Domain verwenden.

Erstellen Sie in Cloud Shell die PSC-Zuordnung, 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 connectionStatus von serviceAttachments auf „ACCEPTED“ gesetzt ist. Aktualisieren Sie den 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

Sie können die PSC-Verbindung über die Cloud Console validieren.

Rufen Sie in der Cloud Console Folgendes auf:

„Looker“ → „Looker-Instanz“ → „Details“

2d4684d722d31e4b.png

993cdaf748f4c030.png

Lokales 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-Datenbank-Subnetz 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 die VPC „on-prem-demo“ erstellen

Cloud NAT wird im Tutorial für die Installation von Softwarepaketen 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 das NAT-Gateway in Cloud Shell:

gcloud compute routers nats create on-prem-nat --router=on-prem-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region $region

Datenbank-Testinstanz erstellen

Erstellen Sie eine postgres-Datenbankinstanz, die zum Testen und Validieren der Verbindung zu Looker verwendet 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, 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 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 dynamisch über das Border Gateway Protocol (BGP) austauschen können.

Mit Cloud Router kann eine BGP-Sitzung über einen Cloud VPN-Tunnel eingerichtet werden, um Ihre Netzwerke zu verbinden. Es erkennt automatisch neue Subnetz-IP-Adressbereiche und kündigt sie in 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-Verbindung zu „onprem.database1.com“ zu demonstrieren.

Erstellen Sie das HA VPN-Gateway 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-Gateway:

gcloud compute vpn-gateways create looker-psc-demo-vpn-gw \
   --network=looker-psc-demo \
   --region=$region

HA VPN-Gateway für on-prem-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 validieren

Rufen Sie in der Console HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS auf.

7f1b504616504866.png

Cloud Router für looker-psc-demo erstellen

Erstellen Sie den Cloud Router in Cloud Shell:

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-Tunnel0 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 1 erstellen

Erstellen Sie in Cloud Shell den Tunnel 1:

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-Tunnel0 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 1 erstellen

Erstellen Sie in Cloud Shell den Tunnel 1:

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 bestätigen

Rufen Sie in der Console HYBRID CONNECTIVITY → VPN → CLOUD VPN TUNNELS auf.

c2fcb340a7614070.png

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-prem-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.

78ab590317919bf5.png

Prüfen, ob looker-psc-demo Routen über HA VPN erlernt hat

Nachdem die HA VPN-Tunnel und BGP-Sitzungen eingerichtet sind, bewirbt der Cloud Router standardmäßig Subnetzrouten. Erkannte Routen für looker-psc-demo ansehen.

Rufen Sie in der Console VPC-Netzwerk → VPC-Netzwerke → looker-psc-demo → ROUTEN → REGION → ANSEHEN auf.

Prüfen Sie, ob looker-psc-demo das Datenbanksubnetz 192.168.10.0/28 von der VPC on-prem-demo gelernt hat.

c11a11ed8b0491c8.png

Prüfen, ob die VPC „on-prem-demo“ Routen über HA VPN erlernt hat

Da der Cloud Router standardmäßig alle Subnetze bewirbt, wird nur das Proxy-Subnetz über BGP beworben. Das Hybrid-NEG verwendet das Nur-Proxy-Subnetz als Quelladresse, wenn es mit dem Server onprem.database1.com kommuniziert.

Das Nur-Proxy-Subnetz 10.10.10.0/24 wurde von „looker-psc-demo“ gelernt.

Rufen Sie in der Console VPC-Netzwerk → VPC-Netzwerke → on-prem-demo → ROUTEN → REGION → ANSEHEN auf.

b0073faed026931f.png

12. Postgres-Datenbank in Looker erstellen

Im folgenden Abschnitt stellen Sie mit Cloud Shell eine SSH-Verbindung zur VM für die PostgreSQL-Datenbank her.

Führen Sie in Cloud Shell einen SSH-Befehl für die PostgreSQL-Datenbankinstanz aus**:

 gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"

Ermitteln Sie im Betriebssystem die IP-Adresse (ens4) der postgres-Datenbankinstanz 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 das Passwort ein:

\password postgres

Legen Sie im Betriebssystem das Passwort für Postgres fest (geben Sie zweimal dasselbe Passwort 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 Proxy-only-Subnetz (10.10.10.0/24) in der Datei „pg_hba.conf“ unter den lokalen IPv4-Verbindungen ein.

sudo nano /etc/postgresql/15/main/pg_hba.conf

Der Screenshot unten zeigt das abgeschlossene Update: eaff2ed6d27fa7cc.png

Entfernen Sie im folgenden Abschnitt die Kommentarzeichen aus der Datei „postgresql.conf“, damit alle IP-Adressen „*“ überwacht werden.

sudo nano /etc/postgresql/15/main/postgresql.conf

Vorher:

65e0b1074dc48644.png

Nachher:

14a0d1fa5455e23e.png

Starten Sie den PostgreSQL-Dienst im Betriebssystem neu:

sudo service postgresql restart

Prüfen Sie im Betriebssystem, ob der PostgreSQL-Status „Aktiv“ lautet:

sudo service postgresql status

Beispiel:

Prüfen Sie im Betriebssystem, ob der PostgreSQL-Status „Aktiv“ lautet:

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 denen die Verbindung von Looker zu lokalen Ressourcen 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 im Betriebssystem eine Verbindung zur Datenbank her:

\c postgres_looker;

Erstellen Sie im Betriebssystem das Schema „looker-schema“ und beenden Sie es, um zur Cloud Shell-Eingabeaufforderung zurückzukehren.

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 verwenden Sie die Looker-Konsole, um eine Datenbankverbindung zur lokalen Postgres-Datenbankinstanz herzustellen.

Gehen Sie zu ADMINISTRATOR → DATENBANK → VERBINDUNGEN und wählen Sie VERBINDUNG HINZUFÜGEN aus.

Geben Sie die Verbindungsinformationen wie im Screenshot unten ein und wählen Sie VERBINDEN aus.

5900fdf0b698cbfc.png

Die Verbindung ist jetzt konfiguriert.

4817157fd3b1277e.png

15. Looker-Verbindung validieren

Im folgenden Abschnitt erfahren Sie, wie Sie die Looker-Verbindung zur Postgres-Datenbank in der On-Prem-VPC mit der Looker-Aktion „test“ und TCPDUMP validieren.

Melden Sie sich in Cloud Shell bei 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

Rufen Sie die Datenverbindung auf: ADMIN → DATABASE → CONNECTIONS → postgres-database → Test.

Wenn „Test“ ausgewählt ist, stellt Looker eine Verbindung zur PostgreSQL-Datenbank her, wie unten dargestellt:

774f9313ece41034.png

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

Sie haben die Verbindung zur lokalen Datenbank über HA-VPN mit der Looker Console, die auf Private Service Connect basiert, erfolgreich konfiguriert und validiert.

Sie haben die Producer-Infrastruktur erstellt und gelernt, wie Sie eine Hybrid-NEG, einen Producer-Dienst und einen Looker-PSC-Endpunkt erstellen, der die Verbindung zum Producer-Dienst ermöglicht.

Cosmopup findet Codelabs toll!!

c911c127bffdee57.jpeg

Nächste Schritte

Hier finden Sie einige Codelabs:

Weitere Informationen und Videos

Referenzdokumente