1. Wprowadzenie
W tym ćwiczeniu wykonasz połączenie wychodzące z lokalną bazą danych Postgres przez sieć H-VPN przy użyciu wewnętrznego systemu równoważenia obciążenia proxy TCP i hybrydowej grupy punktów końcowych sieci wywoływanych z usługi PSC Looker jako konsumenta usługi.
Private Service Connect to funkcja sieci Google Cloud, która umożliwia konsumentom prywatny dostęp do usług zarządzanych z poziomu sieci VPC. Podobnie umożliwia producentom usług zarządzanych hostowanie tych usług we własnych, oddzielnych sieciach VPC i oferowanie prywatnego połączenia z klientami. Na przykład gdy używasz Private Service Connect do uzyskiwania dostępu do Lookera, jesteś konsumentem usługi, a Google jest producentem usługi, jak pokazano na ilustracji 1.
Rysunek 1.

Dostęp wychodzący, zwany też odwróconym PSC, umożliwia konsumentowi utworzenie opublikowanej usługi jako producenta, aby umożliwić Looker dostęp do punktów końcowych lokalnie, w sieci VPC, do usług zarządzanych i hybrydowych. Połączenia wychodzące można wdrażać w dowolnym regionie, niezależnie od tego, gdzie jest wdrożona usługa PSC Looker, jak pokazano na rysunku 2.
Rysunek 2.

Czego się nauczysz
- Wymagania związane z siecią
- Tworzenie usługi producenta Private Service Connect
- Tworzenie punktu końcowego Private Service Connect w Lookerze
- Ustanów połączenie z lokalną bazą danych Postgres z Lookera za pomocą opcji Test Connection (Testuj połączenie).
Czego potrzebujesz
- Projekt Google Cloud z uprawnieniami właściciela
- Istniejąca instancja Looker PSC

2. Co utworzysz
Utworzysz sieć producenta looker-psc-demo, aby wdrożyć wewnętrzny system równoważenia obciążenia serwera proxy TCP i hybrydową grupę NEG opublikowaną jako usługa za pomocą usługi Private Service Connect (PSC). Aby zademonstrować bazę danych lokalną, wdrożysz sieć VPC on-prem-demo połączoną z siecią 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
- Użyj konsoli Looker, aby przeprowadzić weryfikację połączenia z lokalną bazą danych Postgres.
3. Wymagania związane z siecią
Poniżej znajdziesz zestawienie wymagań sieciowych dla sieci producenta. Konsumentem w tym ćwiczeniu jest instancja PSC Lookera.
Komponenty | Opis |
VPC (looker-psc-demo) | Sieć VPC w trybie niestandardowym |
VPC (lokalna wersja demonstracyjna) | Sieć VPC w trybie niestandardowym |
Podsieć NAT PSC | Pakiety z sieci VPC klienta są tłumaczone za pomocą źródłowego NAT (SNAT), dzięki czemu ich pierwotne źródłowe adresy IP są konwertowane na źródłowe adresy IP z podsieci NAT w sieci VPC producenta. |
Podsieć reguły przekierowania PSC | Służy do przydzielania adresu IP regionalnemu wewnętrznemu systemowi 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żdy serwer proxy systemu równoważenia obciążenia ma przypisany wewnętrzny adres IP. Pakiety wysyłane z 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 każdy inny backend Cloud Load Balancing. Główna różnica polega na tym, że do skonfigurowania punktów końcowych tych backendów używasz hybrydowej grupy NEG. Punkty końcowe muszą być prawidłowymi kombinacjami IP:port, do których system równoważenia obciążenia może dotrzeć za pomocą usług łączności hybrydowej, takich jak Cloud VPN lub Cloud Interconnect. |
Usługa backendu | Usługa backendu pełni funkcję pomostu między systemem równoważenia obciążenia a zasobami backendu. W samouczku usługa backendu jest powiązana z hybrydową grupą NEG. |
Cloud Router |
|
Sieć VPN o wysokiej dostępności | Sieć VPN o wysokiej dostępności między sieciami VPC w Google Cloud W tej topologii możesz połączyć 2 sieci VPC Google Cloud za pomocą 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 | Używana przez sieć VPC on-prem-demo na potrzeby ruchu wychodzącego z internetu |
4. Topologia ćwiczeń z programowania

5. Konfiguracja i wymagania
Samodzielne konfigurowanie środowiska
- 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ć.



- Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest 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 ustawieniu. Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się tym przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle oznaczanego jako
PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i pozostaje on taki przez cały czas trwania projektu. - Warto wiedzieć, że istnieje trzecia wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
- Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Wykonanie tego ćwiczenia nie będzie kosztować dużo, a może nawet nic. Aby wyłączyć zasoby i uniknąć 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.
Uruchamianie Cloud Shell
Z Google Cloud można korzystać zdalnie na laptopie, ale w tym ćwiczeniu użyjesz 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:

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

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera również stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i usprawnia proces uwierzytelniania. Wszystkie zadania w tym ćwiczeniu w Codelabs 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
Podsieć PSC będzie powiązana z przyłączem usługi PSC na potrzeby translacji 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ą podsieć tylko-proxy 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 hybrydowej grupy punktów końcowych sieci
Utwórz hybrydową grupę NEG i ustaw wartość –network-endpoint-type na NON_GCP_PRIVATE_IP_PORT.
W Cloud Shell utwórz hybrydową grupę punktów końcowych sieci, która będzie używana do uzyskiwania dostępu do bazy danych w środowisku lokalnym:
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, podając adres IP i port bazy danych lokalnej (192.168.10.4 i port 5432), które zostały wygenerowane w dalszej części samouczka:
gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
--add-endpoint=ip=192.168.10.4,port=5432 \
--zone=$zone
Tworzenie regionalnej kontroli stanu
W Cloud Shell utwórz kontrolę stanu, która sprawdza port bazy danych lokalnej (5432):
gcloud compute health-checks create tcp on-prem-5432-healthcheck \
--region=$region \
--port=5432
Tworzenie zasad 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
Ta reguła zapory sieciowej zezwala na ruch z zakresu podsieci NAT usługi PSC 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 hybrydowej grupy 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
W przypadku poniższej składni utwórz regułę przekierowania (wewnętrzny system równoważenia obciążenia serwera proxy TCP).
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 załącznik usługi
W Cloud Shell utwórz przyłącze 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 załącznik usługi wymieniony w identyfikatorze URI selfLink zaczynają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ładowe oczekiwane dane wyjściowe:
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 otwórz:
Usługi sieciowe → Private Service Connect → Opublikowane usługi


9. Nawiązywanie połączenia z punktem końcowym PSC w Lookerze
W sekcji poniżej powiążesz przyłącze usługi producentów z usługą PSC Looker Core za pomocą flagi –psc-service-attachment w Cloud Shell dla pojedynczej domeny.
W Cloud Shell utwórz powiązanie PSC, aktualizując te parametry, 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 zarejestrowany podczas tworzenia przyłącza usługi, onpremdatabase1-svc-attachment
- REGION: region, w którym jest hostowana 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”. Zaktualizuj nazwę instancji PSC Looker:
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"
}
Sprawdzanie poprawności punktu końcowego PSC w Cloud Console
W konsoli Cloud możesz sprawdzić połączenie PSC.
W konsoli Cloud otwórz:
Looker → Instancja Lookera → Szczegóły


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
Utwórz podsieć bazy danych PostgreSQL
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 w przypadku 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
Tworzenie routera Cloud Router dla lokalnej sieci VPC on-prem-demo
W samouczku do instalacji pakietu oprogramowania używana jest usługa 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 siecią VPN o wysokiej dostępności:
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 będzie używana do testowania i weryfikowania 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 zasad 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
Ta reguła zapory sieciowej zezwala na ruch z zakresu 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 sekcji poniżej utworzysz router Cloud Router, który umożliwi Ci dynamiczną wymianę tras między Twoim prywatnym środowiskiem wirtualnym w chmurze (VPC) a siecią równorzędną za pomocą protokołu BGP.
Router Cloud Router może skonfigurować sesję BGP w tunelu Cloud VPN, aby połączyć Twoje sieci. Automatycznie uczy się nowych zakresów adresów IP podsieci i ogłasza je w sieci równorzędnej.
W kolejnych krokach wdrożysz sieć VPN o wysokiej dostępności między sieciami VPC looker-psc-demo i on-prem-demo, aby zademonstrować połączenie hybrydowej grupy końcowej sieci z onprem.database1.com.
Utwórz bramę sieci VPN o wysokiej dostępności dla sieci 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 bramy sieci VPN o wysokiej dostępności na potrzeby wersji demonstracyjnej środowiska lokalnego
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 kliknij POŁĄCZENIA HYBRYDOWE → VPN → BRAMY CLOUD VPN.

Tworzenie routera Cloud Router dla sieci 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
Utwórz tunele VPN dla looker-psc-demo
W każdej bramie sieci VPN o wysokiej dostępności utworzysz 2 tunele VPN.
Utwórz tunel VPN0
W Cloud Shell utwórz 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
Utwórz tunele VPN dla środowiska lokalnego demo
W każdej bramie sieci VPN o wysokiej dostępności utworzysz 2 tunele VPN.
Utwórz tunel VPN0
W Cloud Shell utwórz 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 tworzenia tunelu VPN
W konsoli przejdź do sekcji POŁĄCZENIA HYBRYDOWE → VPN → TUNELE VPN W CHMURZE.

11. Ustanawianie sąsiadów BGP
Utwórz interfejs BGP i peering 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 węzeł 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 węzeł 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 równorzędnego dla sieci lokalnej on-prem-demo
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 węzeł 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 węzeł 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, kliknij POŁĄCZENIE HYBRYDOWE → VPN.

Weryfikowanie tras wyuczonych przez looker-psc-demo w sieci VPN o wysokiej dostępności
Po utworzeniu tuneli sieci VPN o wysokiej dostępności i sesji protokołu BGP domyślnym działaniem routera Cloud Router jest rozgłaszanie tras podsieci. Wyświetl zapamiętane trasy looker-psc-demo.
W konsoli wybierz Sieć VPC → Sieci VPC → looker-psc-demo → TRASY → REGION → WYŚWIETL.
Sprawdź, czy projekt looker-psc-demo nauczył się podsieci bazy danych 192.168.10.0/28 z lokalnej sieci VPC on-prem-demo.

Sprawdź, czy lokalna sieć VPC on-prem-demo nauczyła się tras przez sieć VPN o wysokiej dostępności
Domyślnie router Cloud Router rozgłasza wszystkie podsieci, więc podsieć serwera proxy jest rozgłaszana przez BGP. Hybrydowa grupa NEG będzie używać podsieci tylko-proxy jako adresu źródłowego podczas komunikacji z serwerem onprem.database1.com.
Obserwuj, jak lokalna wersja demonstracyjna uczy się podsieci tylko-proxy 10.10.10.0/24 z looker-psc-demo.
W konsoli wybierz Sieć VPC → Sieci VPC → on-prem-demo → TRASY → REGION → WYŚWIETL.

12. Tworzenie bazy danych PostgreSQL w Lookerze
W następnej sekcji połączysz się przez SSH z maszyną wirtualną postgres-database za pomocą Cloud Shell.
W Cloud Shell wykonaj SSH do instancji bazy danych postgres:
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"
W systemie operacyjnym znajdź 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 systemie operacyjnym w postgresql:
sudo -u postgres psql postgres
Wpisz hasło w systemie operacyjnym:
\password postgres
W systemie operacyjnym ustaw hasło postgres (wpisz to samo hasło dwukrotnie):
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 sekcji poniżej wstaw adres IP instancji bazy danych PostgreSQL (192.168.10.4) i podsieć tylko dla proxy (10.10.10.0/24) w pliku pg_hba.conf w sekcji IPv4 local connections (Lokalne połączenia IPv4).
sudo nano /etc/postgresql/15/main/pg_hba.conf
Zrzut ekranu poniżej przedstawia ukończoną aktualizację: 
W sekcji poniżej odkomentuj plik postgresql.conf, aby nasłuchiwać wszystkich adresów IP „*' zgodnie ze zrzutem ekranu poniżej:
sudo nano /etc/postgresql/15/main/postgresql.conf
Przed:

Po:

W systemie operacyjnym ponownie uruchom usługę postgresql:
sudo service postgresql restart
W systemie operacyjnym sprawdź, czy stan postgresql jest aktywny:
sudo service postgresql status
Przykład:
W systemie operacyjnym sprawdź, czy stan postgresql jest aktywny:
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 PostgreSQL
W następnej sekcji utworzysz bazę danych PostgreSQL o nazwie postgres_looker i schemat looker_schema, które będą służyć do weryfikowania połączenia Lookera z lokalną bazą danych.
Zaloguj się w systemie operacyjnym w usłudze postgres:
sudo -u postgres psql postgres
W systemie operacyjnym utwórz bazę danych:
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 zamknij go, aby wrócić 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. Integrowanie Lookera z bazą danych Postgres
W następnej sekcji użyjesz konsoli Lookera, aby utworzyć połączenie z bazą danych z instancją bazy danych postgres w lokalnej infrastrukturze.
Otwórz ADMINISTRATOR → BAZA DANYCH → POŁĄCZENIA i kliknij DODAJ POŁĄCZENIE.
Wypełnij szczegóły połączenia zgodnie ze zrzutem ekranu poniżej i kliknij POŁĄCZ.

Połączenie zostało skonfigurowane

15. Sprawdzanie łączności z Lookerem
W następnej sekcji dowiesz się, jak sprawdzić połączenie Lookera z bazą danych postgres w sieci VPC on-prem za pomocą działania „test” w Lookerze i narzędzia TCPDUMP.
W Cloud Shell zaloguj się w bazie danych postgres, jeśli sesja wygasła.
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 kolejno Połączenie danych ADMINISTRATOR → BAZA DANYCH → POŁĄCZENIA → postgres-database → Testuj
Po wybraniu opcji Test Looker połączy się z bazą danych postgres w sposób wskazany poniżej:

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. Udało Ci się skonfigurować i zweryfikować połączenie z bazą danych lokalną przez sieć VPN o wysokiej dostępności za pomocą konsoli Looker z funkcją Private Service Connect.
Utworzyliśmy infrastrukturę producenta, dowiedzieliśmy się, jak utworzyć hybrydową grupę NEG, usługę producenta i punkt końcowy PSC Lookera, które umożliwiają połączenie z usługą producenta.
Cosmopup uważa, że ćwiczenia z programowania są świetne!!

Co dalej?
Sprawdź te ćwiczenia z programowania:
- Korzystanie z Private Service Connect do publikowania i używania usług
- Łączenie z usługami lokalnymi przez sieć hybrydową przy użyciu usługi Private Service Connect i wewnętrznego systemu równoważenia obciążenia serwera proxy TCP
- Dostęp do wszystkich opublikowanych ćwiczeń z kodem Private Service Connect
Więcej informacji i filmy
Dokumentacja
- Konfigurowanie regionalnego wewnętrznego sieciowego systemu równoważenia obciążenia serwera proxy z łącznością hybrydową
- Omówienie Cloud NAT
- Tworzenie instancji usługi Private Service Connect w Lookerze (podstawowej usłudze Google Cloud)
- Jak opublikować usługę za pomocą Private Service Connect
- Omówienie Cloud VPN