1. Wprowadzenie
W ramach tego ćwiczenia w Codelabs wykonasz bezpośrednie połączenie SSH z GitHubem za pomocą wewnętrznego systemu równoważenia obciążenia serwera proxy tcp i internetowej grupy punktów końcowych sieci wywołanych z Looker PSC jako konsument usługi.
Private Service Connect to funkcja sieci Google Cloud, która umożliwia użytkownikom dostęp do usług zarządzanych z poziomu ich sieci VPC. Podobnie pozwala producentom usług zarządzanych hostować te usługi we własnych sieciach VPC i oferować połączenie prywatne dla konsumentó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 do 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ązywanie połączenia z GitHubem z Lookera za pomocą testowego połączenia
Czego potrzebujesz
- Projekt Google Cloud z uprawnieniami właściciela
- Konto i repozytorium GitHub
- Klucz wdrażania SSH używany przez Lookera i GitHuba
- 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 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:
- Utwórz punkt końcowy PSC w Lookerze powiązany z przyłączem usługi Producer
- Użyj konsoli Lookera, aby utworzyć nowy projekt i przetestować połączenie SSH z GitHub.com, wykonując procedurę Łączenie z Git przez SSH.
3. Wymagania związane z siecią
Poniżej znajdziesz zestawienie wymagań sieciowych dla sieci producenta. Konsumentem w tym przypadku jest instancja PSC w narzędziu Looker.
Sieć producenta
Komponenty | Opis |
VPC (looker-psc-demo) | Środowisko VPC w trybie niestandardowym |
Podsieć PSC NAT | Pakiety z sieci VPC konsumenta są tłumaczone za pomocą źródłowego NAT (SNAT), tak aby ich oryginalne źródłowe adresy IP zostały przekonwertowane na źródłowe adresy IP z podsieci NAT w sieci VPC producenta. |
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. |
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 pełni funkcję łącznika między systemem równoważenia obciążenia a zasobami backendu. W tym samouczku usługa backendu jest powiązana z internetową grupą punktów końcowych sieci. |
Cloud Router | Cloud NAT korzysta z routerów Cloud Router do obsługi funkcji platformy sterującej, ale nie do zarządzania sesjami BGP. |
Cloud NAT | Regionalna internetowa grupa punktów końcowych sieci wykorzystuje Cloud NAT na potrzeby ruchu wychodzącego z internetu. |
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 niepowtarzalny w ramach wszystkich projektów Google Cloud i nie można go zmienić (po ustawieniu). Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie ma znaczenia, jaki to ciąg. W większości laboratoriów z kodem 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ć użyć własnego adresu e-mail, aby sprawdzić, czy jest on dostępny. Nie można go zmienić po wykonaniu tego kroku. Pozostanie on do końca projektu. - Informacyjnie: istnieje jeszcze 3 wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o wszystkich 3 wartościach znajdziesz w dokumentacji.
- Następnie musisz włączyć płatności w Cloud Console, aby korzystać z zasobów Cloud/interfejsów API. Przejście przez ten samouczek nie będzie kosztowne. Aby wyłączyć zasoby i uniknąć obciążenia opłatami po zakończeniu samouczka, możesz usunąć utworzone zasoby lub usunąć projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
Uruchamianie Cloud Shell
Google Cloud można obsługiwać zdalnie z laptopa, ale w tym ćwiczeniu będziesz używać Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.
W konsoli Google Cloud kliknij ikonę Cloud Shell na górnym pasku narzędzi:
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, znacząco zwiększając 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
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ć 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 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 TCP serwera proxy do wychodzącego ruchu internetowego z opcją konfiguracji –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB, dlatego ta sama brama NATGW nie obsługuje wychodzącego ruchu internetowego 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
Zarezerwuj adres 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ład:
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-ssh \
--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-ssh, podając FQDN github.com i port 22.
gcloud compute network-endpoint-groups update github-internet-neg-ssh \
--add-endpoint="fqdn=github.com,port=22" \
--region=$region
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
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-ssh --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=22
Utwórz przyłącze usługi
W Cloud Shell utwórz załącznik usługi github-svc-attachment-ssh:
gcloud compute service-attachments create github-svc-attachment-ssh --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 narzędziu Looker.
SelfLink: projects/<identyfikator-projektu>/regions/<Twój-region>/serviceAttachments/github-svc-attachment-ssh
W Cloud Shell wykonaj te czynności:
gcloud compute service-attachments describe github-svc-attachment-ssh --region=$region
Przykład oczekiwanych danych wyjściowych
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-08-31T13:43:07.078-07:00'
description: ''
enableProxyProtocol: false
fingerprint: O5OtqHR33v4=
id: '7557641709467614900'
kind: compute#serviceAttachment
name: github-svc-attachment-ssh
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
high: '19348441121424360'
low: '7557641709467614900'
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-ssh
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ąż połączenie z punktem końcowym PSC w narzędziu Looker
W tej sekcji powiążesz przyłącze usługi Producers z Looker Core PSC za pomocą flag use –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).
- DOMENA_1: githubssh.com
- SERVICE_ATTACHMENT_1: identyfikator URI zarejestrowany podczas opisywania załącznika usługi, github-svc-attachment-ssh.
- 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=githubssh.com,attachment=projects/$project/regions/$region/serviceAttachments/github-svc-attachment-ssh \
--region=$region
W Cloud Shell sprawdź, czy stan połączenia serviceAttachments to „ACCEPTED” (akceptowany). Zaktualizuj INSTANCE_NAME 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": "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": "githubssh.com",
"targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/github-svc-attachment-ssh"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-08-31T20:53:04.824018122Z"
}
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 SSH z GitHub.com przez zaktualizowanie domeny github.com na githubssh.com w interfejsie Lookera. Ta czynność jest wymagana tylko w przypadku połączeń SSH z GitHubem.
11. Utwórz nowy projekt
Włączanie trybu programisty
W konsoli Looker przejdź do:
Włącz tryb deweloperski (lewa dolna strona) po wybraniu banera „Jesteś w trybie deweloperskim”.
Tworzenie nowego projektu
W Cloud Console:
Programowanie → Projekty
Wybierz nowy projekt LookML
Podaj nazwę projektu, wybierz Pusty projekt, a następnie Utwórz projekt.
Wybierz Skonfiguruj Git.
Konfigurowanie Git
Po kliknięciu Dalej musisz zweryfikować adres URL repozytorium i usługę hostingu Git.
Dodaj klucz depozytowy do repozytorium GitHub. Pamiętaj, aby przyznać uprawnienia do zapisu. Po zakończeniu aktualizacji kliknij Testuj i Kończenie konfiguracji.
Wybierz działania Git
Wybierz Testuj połączenie z Git
Sprawdzanie połączenia z Git
12. Czyszczenie danych
Usuń komponenty modułu z jednego terminala Cloud Shell
gcloud compute service-attachments delete github-svc-attachment-ssh --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 addresses delete internet-neg-lb-ip --region=$region -q
gcloud compute network-endpoint-groups delete github-internet-neg-ssh --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
13. Gratulacje
Gratulacje! Konfiguracja i weryfikacja połączenia z GitHubem za pomocą konsoli Looker Console obsługiwanej przez Private Service Connect zostały zakończone pomyślnie.
Utworzyłeś infrastrukturę producenta i dowiedziałeś się, jak utworzyć punkt końcowy NEG w internecie, usługę producenta i punkt końcowy PSC Lookera, które umożliwiają nawiązanie 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 Private Service Connect do publikowania i korzystania z 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
- Konfigurowanie i testowanie połączenia z Git | Looker | Google Cloud,
- Omówienie Private Service Connect
Dokumentacja
- Konfigurowanie regionalnego wewnętrznego sieciowego systemu równoważenia obciążenia serwera proxy z zewnętrznym backendem
- 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
- Łączenie z Git przez SSH