1. Wprowadzenie
W ramach tego ćwiczenia w Codelabs wykorzystasz połączenie HTTPS z GitHubem od strony południowej za pomocą wewnętrznego systemu równoważenia obciążenia serwera proxy tcp i internetowej grupy punktów końcowych sieci (NEG) wywołanych z narzędzia Looker PSC 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 wewnątrz sieci VPC. Podobnie pozwala producentom usług zarządzanych hostować te usługi w swoich własnych oddzielnych sieciach VPC i oferować prywatne połączenie swoim klientom. Jeśli na przykład uzyskujesz dostęp do Lookera za pomocą usługi Private Service Connect, jesteś konsumentem usługi, a Google jest producentem usługi, jak zaznaczono na ilustracji 1.
Rysunek 1.
Dostęp południowy, nazywany również odwrotnym PSC, umożliwia konsumentowi utworzenie opublikowanej usługi jako producent, co umożliwia Lookerowi dostęp do punktów końcowych lokalnie w sieci VPC, do usług zarządzanych i internetu. 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 GitHuba z poziomu Lookera za pomocą połączenia testowego
Czego potrzebujesz
- Projekt Google Cloud z uprawnieniami właściciela
- Konto i repozytorium GitHub
- Osobisty token dostępu GitHub (wersja klasyczna)
- Istniejące wystąpienie PSC Lookera
2. Co utworzysz
Utworzysz sieć producenta looker-psc-demo, aby wdrożyć wewnętrzny proxy tcp i równoważenie obciążenia oraz opublikować NEG w Internecie jako usługę za pomocą Private Service Connect (PSC). Po opublikowaniu wykonaj te czynności, aby zweryfikować dostęp do usługi Producer:
- Tworzenie w Lookerze punktu końcowego PSC powiązanego z przyłączem usługi producenta
- Utwórz nowy projekt i przetestuj połączenie HTTPS z GitHub.com za pomocą konsoli Looker
3. Wymagania związane z siecią
Poniżej znajdziesz zestawienie wymagań sieciowych dla sieci producenta. Konsumentem w tym przypadku jest instancja PSC narzędzia Looker.
Komponenty | Opis |
VPC (looker-psc-demo) | Sieć VPC w trybie niestandardowym |
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. |
Podsieć reguły przekierowania PSC | Służy do przydzielenia adresu IP na potrzeby 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 dla grupy 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. |
Internetowa grupa punktów końcowych sieci | Zasób używany do zdefiniowania zewnętrznego backendu systemu równoważenia obciążenia. Punkt końcowy nie jest dostępny tylko przez 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 samouczku usługa backendu jest powiązana z NEG w internecie. |
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. |
Cloud NAT | Regionalna internetowa grupa punktów końcowych sieci korzysta z usługi Cloud NAT 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. Jest to ciąg znaków, którego nie używają interfejsy API Google. W każdej chwili możesz ją zaktualizować.
- Identyfikator projektu jest niepowtarzalny w ramach wszystkich projektów Google Cloud i nie można go zmienić (po ustawieniu). Cloud Console automatycznie wygeneruje unikalny ciąg znaków. zwykle nieważne, co ona jest. W większości ćwiczeń w Codelabs musisz podać swój identyfikator projektu (zwykle identyfikowany jako
PROJECT_ID
). Jeśli nie podoba Ci się wygenerowany identyfikator, możesz wygenerować kolejny 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. - Jest jeszcze trzecia wartość, numer projektu, z którego korzystają 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. Przejście przez ten samouczek nie będzie kosztowne. 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 górnym pasku narzędzi:
Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po zakończeniu powinno pojawić 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, znacząco zwiększając wydajność sieci i uwierzytelnianie. Wszystkie zadania w tym CodeLab możesz wykonać w przeglądarce. Nie musisz niczego instalować.
6. Zanim zaczniesz
Włącz interfejsy API
Sprawdź w Cloud Shell, czy identyfikator projektu jest skonfigurowany:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
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
Utwórz podsieci
Podsieć PSC zostanie 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 podsieć tylko z regionalnym serwerem 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
Tworzenie bramy Public NAT
Brama NAT jest używana przez regionalny wewnętrzny system równoważenia obciążenia serwera proxy tcp na potrzeby internetowego ruchu wychodzącego z wybraną opcją konfiguracji – –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB, dlatego ta sama NATGW nie będzie obsługiwać internetowego ruchu wychodzącego GCE/GKE. Wdrożyć dodatkową bramę NAT z parametrem –endpoint-types=ENDPOINT_TYPE_VM na potrzeby wychodzącego połączenia z internetem w GCE/GKE.
W Cloud Shell utwórz router Cloud Router:
gcloud compute routers create looker-psc-demo-cloud-router --network looker-psc-demo --region $region
W Cloud Shell utwórz bramę Cloud NAT, która umożliwi wychodzący ruch internetowy dla systemu równoważenia obciążenia serwera proxy TCP:
gcloud compute routers nats create looker-psc-demo-natgw \
--router=looker-psc-demo-cloud-router \
--endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
--nat-custom-subnet-ip-ranges=$region-proxy-only-subnet \
--auto-allocate-nat-external-ips \
--region=$region
Rezerwowanie adresu IP systemu równoważenia obciążenia
Zarezerwuj w Cloud Shell wewnętrzny adres IP systemu równoważenia obciążenia:
gcloud compute addresses create internet-neg-lb-ip \
--region=$region \
--subnet=producer-psc-fr-subnet
W Cloud Shell wyświetl zarezerwowany adres IP.
gcloud compute addresses describe internet-neg-lb-ip \
--region=$region | grep -i address:
Przykładowe dane wyjściowe:
user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2
Konfigurowanie internetowej grupy punktów końcowych sieci
Utwórz internetową grupę punktów końcowych sieci i ustaw w polu -network-endpoint-type wartość internet-fqdn-port (nazwę hosta i port, za pomocą których można uzyskać dostęp do zewnętrznego backendu).
W Cloud Shell utwórz NEG internetowy używany dla github.com
gcloud compute network-endpoint-groups create github-internet-neg \
--network-endpoint-type=INTERNET_FQDN_PORT \
--network=looker-psc-demo \
--region=$region
W Cloud Shell zaktualizuj internetową grupę punktów końcowych github-internet-neg, podając pełną i jednoznaczną nazwę domeny github.com i port 443.
gcloud compute network-endpoint-groups update github-internet-neg \
--add-endpoint="fqdn=github.com,port=443" \
--region=$region
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 wykonaj te czynności:
gcloud compute backend-services create producer-backend-svc --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED
gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=github-internet-neg --network-endpoint-group-region=$region --region=$region
Utwórz w Cloud Shell 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-github-fr \
--load-balancing-scheme=INTERNAL_MANAGED \
--network-tier=PREMIUM \
--network=looker-psc-demo \
--subnet=producer-psc-fr-subnet \
--address=internet-neg-lb-ip \
--target-tcp-proxy=producer-lb-tcp-proxy \
--target-tcp-proxy-region=$region \
--region=$region \
--ports=443
Utwórz przyłącze usługi
W Cloud Shell utwórz załącznik usługi github-svc-attachment-https:
gcloud compute service-attachments create github-svc-attachment-https --region=$region --producer-forwarding-rule=producer-github-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 Lookerze.
selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/github-svc-attachment-https
W Cloud Shell wykonaj te czynności:
gcloud compute service-attachments describe github-svc-attachment-https --region=$region
Przykład:
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-08-30T09:44:03.883-07:00'
description: ''
enableProxyProtocol: false
fingerprint: RfKh3blWZE0=
id: '2897904404386302012'
kind: compute#serviceAttachment
name: github-svc-attachment-https
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
high: '19348441121424360'
low: '2897904404386302012'
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/github-svc-attachment-https
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-github-fr
W Cloud Console:
Usługi sieciowe → Private Service Connect → Opublikowane usługi
9. Nawiązywanie połączenia z punktem końcowym PSC w Lookerze
W następnej sekcji powiążesz załącznik usługi Producers z PSC Looker Core, używając flagi –psc-service-attachment w Cloud Shell dla jednej domeny.
W Cloud Shell utwórz powiązanie psc, aktualizując te parametry zgodnie ze swoim środowiskiem:
- INSTANCE_NAME: nazwa instancji Lookera (podstawowej usługi Google Cloud).
- DOMAIN_1: github.com
- SERVICE_ATTACHMENT_1: identyfikator URI przechwycony podczas opisu załącznika usługi (github-svc-attachment-https).
- 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=github.com,attachment=projects/$project/regions/$region/serviceAttachments/github-svc-attachment-https \
--region=$region
W Cloud Shell sprawdź, czy stan połączenia serviceAttachments to „ACCEPTED” (akceptowany). Zaktualizuj go, podając nazwę instancji PSC Looker: INSTANCE_NAME.
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": "cosmopup.com",
"state": "AVAILABLE"
},
"encryptionConfig": {},
"lookerVersion": "24.12.28",
"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": "github.com",
"targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/github-svc-attachment-https"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-08-30T17:47:33.440271635Z"
}
Weryfikowanie punktu końcowego PSC w konsoli Cloud
W Cloud Console możesz zweryfikować połączenie z PSC
W Cloud Console:
Looker → Instancja Lookera → Szczegóły
10. Testowanie połączenia z GitHubem
W kolejnych krokach użyjesz konsoli Lookera, aby utworzyć projekt pozwalający zweryfikować połączenie HTTPS z github.com.
11. Utwórz nowy projekt
Włączanie trybu programisty
W konsoli Lookera przejdź do:
Włącz tryb programowania (w lewym dolnym rogu strony). Po wybraniu pojawi się baner „Jesteś w trybie programowania”.
Tworzenie nowego projektu
W konsoli Cloud przejdź do:
Tworzenie → Projekty
Wybierz Nowy projekt LookML
Podaj nazwę projektu, wybierz Pusty projekt, a następnie Utwórz projekt.
Wybierz Skonfiguruj Git
Konfigurowanie Git
Zaktualizuj adres URL repozytorium, podając dane konta GitHub w protokole HTTPS. Pamiętaj, aby dodać do adresu URL rozszerzenie .git, a potem kliknij Dalej.
Przykład:
Zaktualizuj wybrane elementy, podając nazwę użytkownika GitHub i osobisty token dostępu (klasyczny), a następnie wybierz Przetestuj i zakończ konfigurację.
Wybierz działania Git
Wybierz Test połączenia z Git
Sprawdzanie testu połączenia z Git
Czyszczenie danych
Usuwanie komponentów laboratorium z jednego terminala Cloud Shell
gcloud compute service-attachments delete github-svc-attachment-https --region=$region -q
gcloud compute forwarding-rules delete producer-github-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 looker-psc-demo-natgw --router=looker-psc-demo-cloud-router --router-region=$region -q
gcloud compute routers delete looker-psc-demo-cloud-router --region=$region -q
gcloud compute network-endpoint-groups delete github-internet-neg --region=$region -q
gcloud compute addresses delete internet-neg-lb-ip --region=$region -q
gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q
gcloud compute networks delete looker-psc-demo -q
12. Gratulacje
Gratulacje! Konfiguracja i sprawdzenie połączenia z GitHubem za pomocą konsoli Looker Console obsługiwanej przez Private Service Connect przebiegły pomyślnie.
Udało Ci się utworzyć infrastrukturę producenta i dowiedzieć się, jak utworzyć internetową grupę punktów końcowych sieci, usługę producenta i punkt końcowy PSC Lookera, które umożliwiają połączenie z usługą Producer.
Cosmopup uważa, że ćwiczenia z programowania są świetne!
Co dalej?
Zapoznaj się z tymi ćwiczeniami z programowania
- Używanie Private Service Connect do publikowania i korzystania z usług
- Łącz się z usługami lokalnymi przez sieć hybrydową za pomocą usługi Private Service Connect i wewnętrznego systemu równoważenia obciążenia serwera proxy TCP
- Dostęp do wszystkich opublikowanych laboratoriów kodu Private Service Connect
Więcej informacji i filmy
- Konfigurowanie i testowanie połączenia z Git | Looker | Google Cloud
- Omówienie usługi Private Service Connect