Looker PSC Southbound Hybrid NEG to on-premises

1. Wprowadzenie

W ramach tego ćwiczenia w Codelabs wykorzystasz połączenie w kierunku południowym z lokalną bazą danych postgres przez H-VPN z użyciem wewnętrznego systemu równoważenia obciążenia serwera proxy tcp i hybrydowej grupy punktów końcowych sieci wywołanych z PSC Lookera jako konsumenta usługi.

Private Service Connect to funkcja sieci Google Cloud, która umożliwia klientom prywatny dostęp do usług zarządzanych z wewnątrz sieci VPC. Podobnie pozwala producentom usług zarządzanych hostować te usługi we własnych osobnych sieciach VPC i oferować połączenia prywatne dla klientów. 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, zwany też odwrotnym 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
  • Utwórz punkt końcowy Private Service Connect w Lookerze
  • Nawiązuj połączenie z lokalną bazą danych postgres z Lookera za pomocą połączenia testowego

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ć lokalną bazę danych, wdrożysz lokalną sieć VPC połączoną z siecią VPC Looker-psc-demo przy użyciu sieci HA-VPN.

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

  • Utwórz punkt końcowy PSC w Lookerze powiązany z przyłączem usługi Producer
  • Sprawdzanie połączenia z lokalną bazą danych postgres za pomocą konsoli Looker

3. Wymagania związane z siecią

Poniżej znajdziesz zestawienie wymagań dotyczących sieci dla sieci Producer. konsument w tym ćwiczeniu z programowania to instancja PSC Lookera.

Komponenty

Opis

VPC (looker-psc-demo)

Środowisko VPC w trybie niestandardowym

VPC (demonstracja lokalna)

Środowisko VPC w trybie niestandardowym

PSC NAT Subnet

Pakiety z sieci VPC klienta są translowane przy użyciu source NAT (SNAT), aby ich pierwotne źródłowe adresy IP zostały przekonwertowane na źródłowe adresy IP z podsieci NAT w sieci VPC producenta.

Reguła przekierowania PSC w podsieci

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

Do każdego serwera proxy systemu równoważenia obciążenia jest przypisany 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.

Hybrydowa grupa punktów końcowych sieci

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żywana jest grupa punktów końcowych sieci z połączeniami hybrydowymi. 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 działa jako pomost między systemem równoważenia obciążenia a zasobami backendu. W tym samouczku usługa backendu jest powiązana z hybrydową grupą punktów końcowych 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 bramy sieci VPN o wysokiej dostępności w każdej sieci. Sieci VPC mogą znajdować się w tym samym regionie lub w wielu 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 wykorzystaj już istniejący. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Nazwa projektu jest wyświetlaną nazwą uczestników tego projektu. To ciąg znaków, który nie jest używany przez interfejsy API Google. Zawsze możesz ją zaktualizować.
  • Identyfikator projektu jest unikalny we wszystkich projektach Google Cloud i nie można go zmienić (po jego ustawieniu nie można go zmienić). 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 trzeba 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ć własnych sił i sprawdzić, czy jest dostępna. Po wykonaniu tej czynności nie można jej już zmienić. Pozostanie ona przez cały czas trwania 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. Ukończenie tego ćwiczenia z programowania nic nie kosztuje. Aby wyłączyć zasoby w celu uniknięcia naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub 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.

Uruchom 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 ramach tego ćwiczenia z programowania można wykonywać 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

Podmiana adresów sieciowych będzie wykonywana przez usługę PSC w ramach przyłącza usługi PSC.

W Cloud Shell utwórz podsieć PSC NAT:

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

Zarezerwuj adres 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 hybrydową grupę punktów końcowych sieci używaną do uzyskiwania dostępu do lokalnej bazy danych:

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 hybrydową grupę punktów końcowych sieci, dodając adres IP:port lokalnej bazy danych: 192.168.10.4 Port 5432 wygenerowany w kolejnym 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

Utwórz w Cloud Shell kontrolę stanu, która sonduje port 5432 lokalnej bazy danych:

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

Utwórz przyłącze 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 uzyskaj i zanotuj przyłącze usługi wymienione w identyfikatorze URI SelfLink, zaczynając od projektów, aby skonfigurować punkt końcowy PSC w narzędziu Looker.

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 konsoli Cloud przejdź do:

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

9f436251a3ae2cc7.png

4c3e8e73d40d1238.png

9. Nawiąż połączenie z punktem końcowym PSC w narzędziu Looker

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.

Utwórz w Cloud Shell powiązanie z PSC, aktualizując te parametry tak, aby pasowały do Twojego środowiska:

  • INSTANCE_NAME: nazwa instancji Lookera (podstawowej usługi Google Cloud).
  • DOMAIN_1: onprem.database1.com
  • SERVICE_ATTACHMENT_1: identyfikator URI przechwycony 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”, a następnie podaj nazwę instancji PSC Lookera:

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 konsoli Cloud

W konsoli Cloud możesz sprawdzić połączenie PSC

W Cloud Console:

Looker → Instancja Lookera → Szczegóły

2D4684d722d31e4b.png

993cdaf748f4c030.png

Tworzenie lokalnej sieci VPC

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 testów lokalnych

W samouczku dotyczącym instalacji pakietu oprogramowania używany jest 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

Utwórz w Cloud Shell 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łączeń 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 za pomocą IAP.
  • Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP używane przez IAP 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 zakresu podsieci tylko-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 tej sekcji utworzysz router Cloud Router, który umożliwia dynamiczną wymianę tras między Twoim prywatnym środowiskiem wirtualnym w chmurze (VPC) a siecią równorzędną przy użyciu protokołu Border Gateway Protocol (BGP).

Cloud Router może skonfigurować sesję BGP przez tunel Cloud VPN, aby połączyć Twoje sieci. Automatycznie rozpoznaje nowe zakresy 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 sieć VPN o wysokiej dostępności:

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

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

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

7f1b504616504866.png

Tworzenie routera Cloud Router dla 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

Utwórz w Cloud Shell środowisko 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

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

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

Utwórz tunel VPN0

Utwórz w Cloud Shell środowisko 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

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 poprawności utworzenia tunelu VPN

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

c2fcb340a7614070.png

11. Ustal sąsiadów BGP

Tworzenie interfejsu BGP i połączenie równorzędne 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 demonstracji 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

Wybierz POŁĄCZENIE hybrydowe → VPN, aby wyświetlić szczegóły tunelu VPN.

78ab590317919bf5.png

Weryfikowanie zapamiętanych tras Looker-psc-demo przez sieć VPN o wysokiej dostępności

Teraz, gdy tunele VPN o wysokiej dostępności i sesje BGP są już utworzone, domyślne działanie routera Cloud Router polega na rozgłaszaniu tras podsieci. Wyświetl zapamiętane trasy Looker-psc-demo.

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

Zobacz, jak Looker-psc-demo nauczył się podsieci 192.168.10.0/28 w lokalnej sieci VPC.

c11a11ed8b0491c8.png

Sprawdzanie, czy w lokalnej demonstracji VPC trasy zapamiętane 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. Podczas komunikacji z serwerem onprem.database1.com hybrydowa funkcja NEG będzie używać adresu źródłowego w podsieci tylko-proxy.

Zobacz, jak lokalna wersja demo nauczyła się podsieci 10.10.10.0/24 od Looker-psc-demo.

W konsoli wybierz Sieć VPC → Sieci VPC → Lokalna wersja demonstracyjna → TRASY → REGION → WIDOK

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 wykonaj polecenie ssh do instancji bazy danych postgres**:**

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

Zidentyfikuj i zanotuj adres IP (ens4) instancji postgres-database w systemie operacyjnym:

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ższy zrzut ekranu przedstawia zrealizowaną 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 ponownie uruchom usługę postgresql:

sudo service postgresql restart

W systemie operacyjnym zweryfikuj stan postgresql jako aktywny:

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 posłuży do sprawdzania łączności Lookera z usługą lokalną.

W systemie operacyjnym zaloguj się do postgres:

sudo -u postgres psql postgres

Utwórz bazę danych w systemie operacyjnym:

create database postgres_looker;

Wymień bazę danych w systemie operacyjnym:

\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 poziomu instancji bazy danych postgres na komputerze lokalnym.

Kliknij Administracja → Baza danych → Połączenia → wybierz DODAJ POŁĄCZENIE.

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

5900fdf0b698cbfc.png

Połączenie zostało skonfigurowane

4817157fd3b1277e.png

15. Sprawdzanie połączeń 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 przekroczyła limit czasu, zaloguj się w bazie danych postgres w Cloud Shell.

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 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 testu Looker połączy się z bazą danych postgres w następujący sposób:

774f9313ece41034.png

Czyszczenie danych

Usuń komponenty modułu 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! Udało Ci się skonfigurować i potwierdzić połączenie z bazą danych na komputerze lokalnym przez sieć VPN o wysokiej dostępności za pomocą konsoli Looker Console korzystającej z funkcji Private Service Connect.

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ą nawiązywanie połączenia z usługą producenta.

Cosmopup uważa, że ćwiczenia z programowania są świetne!

c911c127bffdee57.jpeg

Co dalej?

Zapoznaj się z tymi ćwiczeniami z programowania

Więcej informacji i filmy

Dokumenty referencyjne