Internetowa grupa punktów końcowych sieci korzystających z protokołu HTTPS w usłudze Looker PSC – południowa

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.

145ea4672c3a3b14.png

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.

259493afd914f68b.png

Czego się nauczysz

  • Wymagania związane z siecią
  • Tworzenie usługi producenta Private Service Connect
  • Utwórz punkt końcowy Private Service Connect w Lookerze
  • Nawiązuj połączenie z GitHuba z poziomu Lookera za pomocą połączenia testowego

Czego potrzebujesz

def88091b42bfe4d.png

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

4e7ac0fd4a61ed9b.png

5. Konfiguracja i wymagania

Konfiguracja środowiska w samodzielnym tempie

  1. Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub wykorzystaj już istniejący. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Nazwa projektu jest wyświetlaną nazwą uczestników tego projektu. 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.
  1. 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:

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud, 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

a8cae886441d9c25.png

84a906b3bedabeee.png

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

2d4684d722d31e4b.png

ef907280833bcad.png

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”.

70c9ded749decfbe.png

Tworzenie nowego projektu

W konsoli Cloud przejdź do:

Tworzenie → Projekty

e8ae11e0392a776d.png

Wybierz Nowy projekt LookML

65a3c2573e97e1e9.png

Podaj nazwę projektu, wybierz Pusty projekt, a następnie Utwórz projekt.

9185808e001fa540.png

Wybierz Skonfiguruj Git

42f5e51ce70642ad.png

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.

f5c448f6659b8fc1.png

Przykład:

4065ab1d196589f.png

Zaktualizuj wybrane elementy, podając nazwę użytkownika GitHub i osobisty token dostępu (klasyczny), a następnie wybierz Przetestuj i zakończ konfigurację.

1dc44d63c555a9ae.png

Wybierz działania Git

b5903668a50a99ca.png

Wybierz Test połączenia z Git

51b722e84f2df38c.png

Sprawdzanie testu połączenia z Git

a33584380b788b6d.png

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!

c911c127bffdee57.jpeg

Co dalej?

Zapoznaj się z tymi ćwiczeniami z programowania

Więcej informacji i filmy

Dokumenty referencyjne