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.
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.
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
- Projekt Google Cloud z uprawnieniami właściciela
- Istniejące wystąpienie PSC Lookera
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 |
|
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
5. Konfiguracja i wymagania
Konfiguracja środowiska w samodzielnym tempie
- 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ć.
- 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.
- 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:
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:
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
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
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.
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.
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.
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.
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
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ę:
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:
Po:
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.
Połączenie zostało skonfigurowane
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:
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!
Co dalej?
Zapoznaj się z tymi ćwiczeniami z programowania
- Używanie usługi Private Service Connect do publikowania i używania usług
- Łączenie z usługami lokalnymi za pomocą Hybrid Networking przy użyciu Private Service Connect i wewnętrznego systemu równoważenia obciążenia serwera proxy TCP
- Dostęp do wszystkich opublikowanych modułów z programowania usługi Private Service Connect
Więcej informacji i filmy
Dokumenty referencyjne
- Konfigurowanie regionalnego wewnętrznego sieciowego systemu równoważenia obciążenia serwera proxy z połączeniami hybrydowymi
- Omówienie Cloud NAT
- Tworzenie instancji usługi Private Service Connect Lookera (podstawowej usługi Google Cloud)
- Jak opublikować usługę za pomocą Private Service Connect
- Omówienie Cloud VPN