Looker PSC Southbound Hybrid NEG to on-premises

1. Wprowadzenie

W tym laboratorium kodu wykonasz połączenie w dół z lokalną bazą danych postgres przez sieć H-VPN przy użyciu wewnętrznego systemu równoważenia obciążenia proxy TCP i grupy punktów końcowych sieci hybrydowej wywoływanej z PSC Looker jako konsument usługi.

Private Service Connect to funkcja sieci Google Cloud, która umożliwia użytkownikom dostęp do usług zarządzanych z poziomu ich sieci VPC. Podobnie pozwala producentom usług zarządzanych hostować te usługi w swoich własnych oddzielnych sieciach VPC i oferować prywatne połączenie swoim klientom. Jeśli na przykład używasz Private Service Connect, aby uzyskać dostęp do Lookera, to Ty jesteś konsumentem usługi, a Google jest producentem usługi, jak pokazano na rysunku 1.

Rysunek 1.

145ea4672c3a3b14.png

Dostęp z południa, czyli odwrotna usługa PSC, umożliwia konsumentowi utworzenie opublikowanej usługi jako producenta, aby umożliwić dostęp do punktów końcowych w sieci lokalnej, w VPC, do usług zarządzanych i hybrydowych. Połączenia wychodzące można wdrażać w dowolnym regionie, niezależnie od tego, gdzie wdrożono usługę Looker PSC, jak pokazano na rysunku 2.

Rysunek 2.

259493afd914f68b.png

Czego się nauczysz

  • Wymagania związane z siecią
  • Tworzenie usługi producenta Private Service Connect
  • Tworzenie punktu końcowego Private Service Connect w Lookerze
  • Nawiązywanie połączenia z bazą danych postgres na komputerze lokalnym z poziomu Lookera za pomocą testowego połączenia

Czego potrzebujesz

def88091b42bfe4d.png

2. Co utworzysz

Utworzysz sieć producenta looker-psc-demo, aby wdrożyć wewnętrzny równoważenie obciążenia proxy TCP i hybrydową grupę punktów końcowych NEG opublikowaną jako usługa za pomocą Private Service Connect (PSC). Aby zademonstrować bazę danych na potrzeby demonstracji, wdróżysz VPC lokalny połączony z VPC looker-psc-demo za pomocą sieci VPN o wysokiej dostępności.

Aby zweryfikować dostęp do usługi Producer, wykonaj te czynności:

  • Tworzenie w Lookerze punktu końcowego PSC powiązanego z przyłączem usługi producenta
  • Sprawdzanie połączenia z lokalną bazą danych postgres za pomocą konsoli Looker

3. Wymagania związane z siecią

Poniżej znajdziesz zestawienie wymagań sieciowych dla sieci producenta. Konsumentem w tym przypadku jest instancja PSC narzędzia Looker.

Komponenty

Opis

VPC (looker-psc-demo)

Sieć VPC w trybie niestandardowym

VPC (demonstracja lokalna)

Sieć VPC w trybie niestandardowym

Podsieć NAT PSC

Pakiety z sieci VPC konsumenta są tłumaczone za pomocą źródłowego NAT (SNAT), tak aby ich oryginalne źródłowe adresy IP zostały przekonwertowane na źródłowe adresy IP z podsieci NAT w sieci VPC producenta.

Podsieć reguły przekierowania PSC

Służy do przydzielenia adresu IP dla regionalnego wewnętrznego systemu równoważenia obciążenia TCP serwera proxy.

Podsieć grupy punktów końcowych sieci PSC

Służy do przydzielania adresu IP grupie punktów końcowych sieci.

Podsieć tylko-proxy

Każdemu proxy systemu równoważenia obciążenia przypisany jest wewnętrzny adres IP. Pakiety wysyłane z serwera proxy do maszyny wirtualnej lub punktu końcowego backendu mają źródłowy adres IP z podsieci tylko-proxy.

Grupa punktów końcowych sieci hybrydowej

Usługi lokalne i inne usługi w chmurze są traktowane jak inne backendy Cloud Load Balancing. Główna różnica polega na tym, że do konfigurowania punktów końcowych tych backendów używasz hybrydowego połączenia NEG. Punkty końcowe muszą być prawidłowymi kombinacjami adresów IP i portów, do których system równoważenia obciążenia może dotrzeć za pomocą usług hybrydowych, takich jak Cloud VPN lub Cloud Interconnect.

Usługa backendu

Usługa backendu pełni funkcję łącznika między systemem równoważenia obciążenia a zasobami backendu. W samouczku usługa backendu jest powiązana z grupą punktów końcowych hybrydowej sieci.

Cloud Router

  • Cloud NAT korzysta z routerów Cloud Router w celu korzystania z funkcji platformy sterującej, ale nie do zarządzania sesjami BGP.
  • Router Cloud Router jest używany do ustanowienia BGP w celu utworzenia sieci VPN o wysokiej dostępności między sieciami VPC psc-looker-demo i on-prem-demo.

Sieć VPN o wysokiej dostępności

Sieć VPN o wysokiej dostępności między sieciami VPC Google Cloud. W tej topologii możesz połączyć 2 sieci VPC Google Cloud, używając w każdej z nich bramy sieci VPN o wysokiej dostępności. Sieci VPC mogą znajdować się w tym samym regionie lub w różnych regionach.

Cloud NAT

Sieć VPC używana przez demonstracyjną sieć VPC lokalną do wychodzącego ruchu internetowego

4. Topologia ćwiczeń z programowania

79aeb28b38f237da.png

5. Konfiguracja i wymagania

Konfiguracja środowiska w samodzielnym tempie

  1. Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, którego nie używają interfejsy API Google. Zawsze możesz ją zaktualizować.
  • Identyfikator projektu jest niepowtarzalny w ramach wszystkich projektów Google Cloud i nie można go zmienić (po ustawieniu). Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie ma znaczenia, jaki to ciąg. W większości laboratoriów z kodem musisz podać identyfikator projektu (zwykle oznaczony jako PROJECT_ID). Jeśli nie podoba Ci się wygenerowany identyfikator, możesz wygenerować inny losowy. Możesz też spróbować użyć własnego adresu e-mail, aby sprawdzić, czy jest on dostępny. Nie można go zmienić po wykonaniu tego kroku. Pozostanie on do końca projektu.
  • Informacyjnie: istnieje jeszcze 3 wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o wszystkich 3 wartościach znajdziesz w dokumentacji.
  1. Następnie musisz włączyć rozliczenia w konsoli Cloud, aby korzystać z zasobów i interfejsów API Cloud. Przejście przez ten samouczek nie będzie kosztowne, a być może nawet bezpłatne. Aby wyłączyć zasoby i uniknąć obciążenia opłatami po zakończeniu samouczka, możesz usunąć utworzone zasoby lub usunąć projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.

Uruchamianie Cloud Shell

Google Cloud można obsługiwać zdalnie z laptopa, ale w tym ćwiczeniu będziesz używać Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.

W konsoli Google Cloud kliknij ikonę Cloud Shell na pasku narzędzi w prawym górnym rogu:

55efc1aaa7a4d3ad.png

Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po jego zakończeniu powinno wyświetlić się coś takiego:

7ffe5cbb04455448.png

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie poprawia wydajność sieci i uwierzytelnianie. Wszystkie zadania w tym CodeLab możesz wykonać w przeglądarce. Nie musisz niczego instalować.

6. Zanim zaczniesz

Włącz interfejsy API

W Cloud Shell sprawdź, czy identyfikator projektu jest skonfigurowany:

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

Włącz wszystkie niezbędne usługi:

gcloud services enable compute.googleapis.com

7. Tworzenie sieci VPC producenta

Sieć VPC

W Cloud Shell wykonaj te czynności:

gcloud compute networks create looker-psc-demo --subnet-mode custom

Tworzenie podsieci

Podsieci PSC zostaną powiązane z przyłączem usługi PSC na potrzeby tłumaczenia adresów sieciowych.

W Cloud Shell utwórz podsieć NAT PSC:

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

W Cloud Shell utwórz podsieć reguły przekierowania producenta:

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

W Cloud Shell utwórz regionalną podrzędną sieć tylko-proxy dla producenta:

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

Rezerwowanie adresu IP systemu równoważenia obciążenia

W Cloud Shell zarezerwuj wewnętrzny adres IP dla systemu równoważenia obciążenia:

gcloud compute addresses create hybrid-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

W Cloud Shell wyświetl zarezerwowany adres IP.

gcloud compute addresses describe hybrid-neg-lb-ip \
  --region=$region | grep -i address:

Przykładowe dane wyjściowe:

gcloud compute addresses describe hybrid-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

Konfigurowanie grupy punktów końcowych sieci hybrydowej

Utwórz hybrydową grupę NEG i ustaw parametr –network-endpoint-type na NON_GCP_PRIVATE_IP_PORT.

W Cloud Shell utwórz hybrydowy NEG służący do uzyskiwania dostępu do bazy danych na potrzeby lokalnych aplikacji:

gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --network=looker-psc-demo \
    --zone=$zone

W Cloud Shell zaktualizuj NEG hybrydowy, podając adres IP:port bazy danych na maszynie lokalnej, 192.168.10.4 i port 5432, wygenerowane w późniejszym kroku samouczka:

gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
    --add-endpoint=ip=192.168.10.4,port=5432 \
    --zone=$zone

Utwórz regionalną kontrolę stanu

W Cloud Shell utwórz kontrolę stanu, która sprawdza port bazy danych na platformie lokalnej 5432:

gcloud compute health-checks create tcp on-prem-5432-healthcheck \
    --region=$region \
    --port=5432

Tworzenie zasady zapory sieciowej i reguł zapory sieciowej

W Cloud Shell wykonaj te czynności:

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

Poniższa reguła zapory sieciowej zezwala na ruch z zakresu adresów PSC NAT Subnet do wszystkich instancji w sieci.

W Cloud Shell wykonaj te czynności:

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. Tworzenie usługi producenta

Tworzenie komponentów systemu równoważenia obciążenia

W Cloud Shell utwórz usługę backendu:

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

W Cloud Shell dodaj backend Hybrid NEG do usługi backendu:

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

W Cloud Shell utwórz docelowy serwer proxy TCP, aby kierować żądania do usługi backendu:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

Utwórz regułę przekierowania (wewnętrzny system równoważenia obciążenia serwera proxy TCP) za pomocą poniższej składni.

W Cloud Shell wykonaj te czynności:

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

Tworzenie załącznika usługi

W Cloud Shell utwórz załącznik usługi 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

Następnie pobierz i zapisz przyłącze usługi wymienione w identyfikatorze URI samolinku rozpoczynającym się od projects, aby skonfigurować punkt końcowy PSC w Lookerze.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/onpremdatabase1-svc-attachment

W Cloud Shell wykonaj te czynności:

gcloud compute service-attachments describe onpremdatabase1-svc-attachment --region=$region

Przykład oczekiwanego wyniku:

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

W Cloud Console:

Usługi sieciowe → Private Service Connect → Opublikowane usługi

9f436251a3ae2cc7.png

4c3e8e73d40d1238.png

9. Nawiązywanie połączenia z punktem końcowym PSC w Lookerze

W następnej sekcji powiążesz załącznik usługi Producers z PSC Looker Core, używając flagi –psc-service-attachment w Cloud Shell dla jednej domeny.

W Cloud Shell utwórz powiązanie psc, aktualizując te parametry zgodnie ze swoim środowiskiem:

  • INSTANCE_NAME: nazwa instancji Lookera (podstawowej usługi Google Cloud).
  • DOMAIN_1: onprem.database1.com
  • SERVICE_ATTACHMENT_1: identyfikator URI zarejestrowany podczas tworzenia przyłącza usługi, onpremdatabase1-svc-attachment
  • REGION: region, w którym hostowana jest instancja Lookera (podstawowej usługi Google Cloud).

W Cloud Shell wykonaj te czynności:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Przykład:

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

W Cloud Shell sprawdź, czy stan połączenia serviceAttachments to „ACCEPTED” (akceptowany). Zaktualizuj go, podając nazwę instancji Looker PSC:

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

Przykład:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

Przykład:

{
  "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"
}

Weryfikowanie punktu końcowego PSC w Cloud Console

W Cloud Console możesz zweryfikować połączenie z PSC

W Cloud Console:

Looker → Instancja Lookera → Szczegóły

2d4684d722d31e4b.png

993cdaf748f4c030.png

Tworzenie sieci VPC na platformie lokalnej

sieć VPC,

W Cloud Shell wykonaj te czynności:

gcloud compute networks create on-prem-demo --project=$project --subnet-mode=custom

Tworzenie podsieci bazy danych PostgresSQL

W Cloud Shell wykonaj te czynności:

gcloud compute networks subnets create database-subnet --project=$project --range=192.168.10.0/28 --network=on-prem-demo --region=$region

W Cloud Shell zarezerwuj wewnętrzny adres IPv4 używany dla onprem.database1.com, 192.168.10.4:

gcloud compute addresses create on-prem-database1-ip --region=$region --subnet=database-subnet --addresses 192.168.10.4

Utwórz router Cloud Router dla VPC demo na potrzeby demonstracji w środowisku lokalnym

W samouczku dotyczącym instalacji pakietu oprogramowania używamy Cloud NAT, ponieważ instancja maszyny wirtualnej nie ma zewnętrznego adresu IP.

W Cloud Shell utwórz router Cloud Router używany z Cloud NAT i HA-VPN:

gcloud compute routers create on-prem-cr \
   --region=$region \
   --network=on-prem-demo \
   --asn=65002

W Cloud Shell utwórz bramę NAT:

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

Tworzenie testowej instancji bazy danych

Utwórz instancję bazy danych postgres, która posłuży do testowania i sprawdzania połączenia z Lookerem.

W Cloud Shell utwórz instancję:

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"

Tworzenie zasady zapory sieciowej i reguł zapory sieciowej

W Cloud Shell wykonaj te czynności:

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

Aby umożliwić IAP połączenie z instancjami maszyn wirtualnych, utwórz regułę zapory sieciowej, która:

  • dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne przez IAP;
  • Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP, których IAP używa do przekierowywania TCP.

W Cloud Shell wykonaj te czynności:

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

Poniższa reguła zapory sieciowej zezwala na ruch z podsieci tylko dla proxy do wszystkich instancji w sieci.

W Cloud Shell wykonaj te czynności:

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. Połączenia hybrydowe

W następnej sekcji utworzysz router Cloud Router, który umożliwi Ci dynamiczną wymianę tras pomiędzy prywatnym środowiskiem wirtualnym w chmurze (VPC) a siecią równorzędną przy użyciu protokołu Border Gateway (BGP).

Cloud Router może skonfigurować sesję BGP w tunelu Cloud VPN, aby połączyć sieci. Automatycznie uczy się nowych zakresów adresów IP podsieci i ogłasza je w sieci równorzędnej.

W kolejnych krokach wdrożesz sieć VPN o wysokiej dostępności między środowiskiem VPC looker-psc-demo a środowiskiem VPC on-prem-demo, aby zademonstrować połączenie hybrydowe NEG z bazą danych onprem.database1.com.

Utwórz bramę sieci VPN o wysokiej dostępności dla looker-psc-demo.

Podczas tworzenia każdej bramy automatycznie przydzielane są 2 zewnętrzne adresy IPv4, po jednym dla każdego interfejsu bramy.

W Cloud Shell utwórz bramę sieci VPN o wysokiej dostępności:

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

Tworzenie GW o wysokiej dostępności na potrzeby lokalnej wersji demonstracyjnej

Podczas tworzenia każdej bramy automatycznie przydzielane są 2 zewnętrzne adresy IPv4, po jednym dla każdego interfejsu bramy.

W Cloud Shell utwórz bramę sieci VPN o wysokiej dostępności:

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-demo\
   --region=$region

Sprawdzanie tworzenia bramy sieci VPN o wysokiej dostępności

W konsoli przejdź do HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS.

7f1b504616504866.png

Tworzenie routera Cloud Router dla usługi looker-psc-demo

W Cloud Shell utwórz router Cloud Router:

gcloud compute routers create looker-psc-demo-cr \
   --region=$region \
   --network=looker-psc-demo\
   --asn=65001

Tworzenie tuneli VPN dla looker-psc-demo

Utworzysz 2 tunele VPN na każdej bramie sieci VPN o wysokiej dostępności.

Utwórz tunel VPN0

W Cloud Shell utwórz tunel0:

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

Utwórz tunel VPN1

W Cloud Shell utwórz tunel1:

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

Tworzenie tuneli VPN na potrzeby demonstracji na potrzeby firmy

Utworzysz 2 tunele VPN na każdej bramie sieci VPN o wysokiej dostępności.

Utwórz tunel VPN0

W Cloud Shell utwórz tunel0:

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

Utwórz tunel VPN1

W Cloud Shell utwórz tunel1:

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

Sprawdzanie tworzenia tunelu VPN

W konsoli przejdź do HYBRID CONNECTIVITY → VPN → CLOUD VPN TUNNELS.

c2fcb340a7614070.png

11. Ustanowienie sąsiadów BGP

Tworzenie interfejsu BGP i połączenia peeringowego dla looker-psc-demo

W Cloud Shell utwórz interfejs BGP:

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

W Cloud Shell utwórz peera BGP:

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

W Cloud Shell utwórz interfejs BGP:

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

W Cloud Shell utwórz peera BGP:

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

Tworzenie interfejsu BGP i połączenia peeringowego na potrzeby demo na potrzeby lokalnych testów

W Cloud Shell utwórz interfejs BGP:

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

W Cloud Shell utwórz peera BGP:

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

W Cloud Shell utwórz interfejs BGP:

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

W Cloud Shell utwórz peera BGP:

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

Aby wyświetlić szczegóły tunelu VPN, otwórz kolejno HYBRYDOWE POŁĄCENIE → VPN.

78ab590317919bf5.png

Sprawdzanie tras wyuczonych przez looker-psc-demo w sieci VPN o wysokiej dostępności

Teraz, gdy tunele VPN o wysokiej dostępności i sesje BGP zostały utworzone, domyślne działanie routera Cloud Router polega na rozgłaszaniu tras podsieci. Wyświetlanie wyuczonych tras looker-psc-demo.

W konsoli wybierz Sieć VPC → Sieci VPC → looker-psc-demo → ROUTES → REGION → VIEW.

Obserwacja looker-psc-demo nauczyła się podsieci bazy danych 192.168.10.0/28 z VPC on-prem-demo.

c11a11ed8b0491c8.png

Sprawdzanie, czy w demo sieci VPC na potrzeby testów lokalnych zostały wyuczone trasy przez sieć VPN o wysokiej dostępności

Ponieważ domyślne działanie routera Cloud Router polega na rozgłaszaniu wszystkich podsieci, tylko podmiana adresu sieciowego jest rozgłaszana przez BGP. Hybrydowa NEG będzie używać podsieci tylko-proxy jako adresu źródłowego podczas komunikacji z serwerem onprem.database1.com.

Obserwacja on-prem-demo nauczyła się podsieci tylko-proxy 10.10.10.0/24 z looker-psc-demo.

W konsoli wybierz Sieć VPC → Sieci VPC → on-prem-demo → ROUTES → REGION → VIEW (Wyświetl).

b0073faed026931f.png

12. Tworzenie bazy danych postgres w Lookerze

W następnej sekcji połączysz się przez SSH z maszyną wirtualną postgres-database za pomocą Cloud Shell.

W Cloud Shell połącz się przez SSH z instancją bazy danych postgres**:**

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

W systemie operacyjnym zidentyfikuj i zanotuj adres IP (ens4) instancji bazy danych postgres:

ip a

Przykład:

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

Zaloguj się w postgresql:

sudo -u postgres psql postgres

W systemie operacyjnym wpisz hasło:

\password postgres

W systemie operacyjnym ustaw hasło na postgres (wpisz to samo hasło 2 razy):

postgres

Przykład:

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: 

W systemie operacyjnym zamknij postgres:

\q

Przykład:

postgres=# \q
user@postgres-database:~$ 

W następnej sekcji wstawisz adres IP instancji bazy danych postgres (192.168.10.4) i podsieć tylko dla serwera proxy (10.10.10.0/24) do pliku pg_hba.conf w sekcji połączeń lokalnych IPv4.

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

Poniżej znajduje się zrzut ekranu z ukończoną aktualizacją: eaff2ed6d27fa7cc.png

W tej sekcji odkomentuj plik postgresql.conf, aby nasłuchiwać wszystkich adresów IP „*”, jak pokazano na poniższym zrzucie ekranu:

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

Przed:

65e0b1074dc48644.png

Po:

14a0d1fa5455e23e.png

W systemie operacyjnym uruchom ponownie usługę postgresql:

sudo service postgresql restart

W systemie operacyjnym sprawdź, czy usługa postgresql jest aktywna:

sudo service postgresql status

Przykład:

W systemie operacyjnym sprawdź, czy usługa postgresql jest aktywna:

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. Tworzenie bazy danych postgres

W następnej sekcji utworzysz bazę danych postgres o nazwie postgres_looker i schemat looker_schema, który służy do sprawdzania łączności Lookera z usługą lokalną.

Zaloguj się w systemie operacyjnym do postgres:

sudo -u postgres psql postgres

Utwórz bazę danych w systemie operacyjnym:

create database postgres_looker;

W systemie operacyjnym wyświetl listę baz danych:

\l

W systemie operacyjnym utwórz użytkownika postgres_looker z hasłem postgreslooker:

create user postgres_looker with password 'postgreslooker';

W systemie operacyjnym połącz się z bazą danych:

\c postgres_looker;

W systemie operacyjnym utwórz schemat looker-schema i wyjdź do wiersza poleceń Cloud Shell.

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

Przykład:

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. Integracja Lookera z bazą danych Postgres

W następnej sekcji użyjesz konsoli Looker do utworzenia połączenia z bazą danych z lokalną instancją bazy danych postgres.

Kliknij ADMINISTRATOR > BAZA DANYCH > POŁĄCZENIA > wybierz DODAJ POŁĄCZENIE.

Podaj szczegóły połączenia zgodnie z informacjami na zrzucie ekranu poniżej i kliknij POŁĄCZ.

5900fdf0b698cbfc.png

Połączenie zostało skonfigurowane

4817157fd3b1277e.png

15. Sprawdzanie połączenia z Lookerem

W następnej sekcji dowiesz się, jak sprawdzić łączność Lookera z bazą danych postgres w VPC na platformie lokalnej za pomocą działania „test” w Lookerze i TCPDUMP.

Jeśli sesja została zakończona, zaloguj się w Cloud Shell w bazie danych postgres-database.

W Cloud Shell wykonaj te czynności:

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"

W systemie operacyjnym utwórz filtr TCPDUMP z adresem podsieci tylko-proxy 10.10.10.0/24.

sudo tcpdump -i any net 10.10.10.0/24 -nn

Otwórz połączenie danych ADMIN → BAZA DANYCH → POŁĄCZENIA → baza danych postgres → Test.

Po wybraniu opcji Test Looker połączy się z bazą danych postgres w ten sposób:

774f9313ece41034.png

Czyszczenie danych

Usuwanie komponentów laboratorium z jednego terminala Cloud Shell

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

Gratulacje! Konfiguracja i weryfikacja połączenia z bazą danych lokalnej przez sieć VPN o wysokiej dostępności za pomocą konsoli Looker Console korzystającej z funkcji Private Service Connect przebiegły pomyślnie.

Utworzono infrastrukturę producenta i poznano sposób tworzenia hybrydowego punktu końcowego NEG, usługi producenta i punktu końcowego PSC Looker, które umożliwiają połączenie z usługą producenta.

Cosmopup uważa, że ćwiczenia z programowania są niesamowite.

c911c127bffdee57.jpeg

Co dalej?

Zapoznaj się z tymi ćwiczeniami z programowania

Więcej informacji i filmy

Dokumenty referencyjne