1. Wprowadzenie
W tym module nauczysz się wdrażać wewnętrzny system równoważenia obciążenia serwera proxy TCP i strefową grupę punktów końcowych sieci (NEG) opublikowaną jako usługa producenta PSC. NEG będzie składać się z co najmniej 1 instancji obliczeniowej w GCP, która samodzielnie hostuje bazę danych, np.JIRA, Confluence lub Sharepoint.
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łasnej sieci VPC lub sieci między chmurami, oferując prywatne połączenie z ich konsumentami. Na przykład gdy używasz Private Service Connect do uzyskiwania dostępu do strefowej grupy NEG, jesteś producentem usługi, a Google (Agentspace) jest konsumentem usługi.
Czego się nauczysz
- Wymagania sieciowe dotyczące Agentspace
- Sprawdzone metody dotyczące sieci Agentspace
- Tworzenie usługi producenta Private Service Connect
Czego potrzebujesz
- Projekt Google Cloud z uprawnieniami właściciela
2. Co utworzysz
Utworzysz sieć producenta, agentspace-psc-demo, aby wdrożyć wewnętrzny system równoważenia obciążenia proxy TCP i strefową grupę NEG opublikowaną jako usługa za pomocą usługi Private Service Connect (PSC).
3. Wymagania związane z siecią
Poniżej znajdziesz podział wymagań sieciowych dla sieci producenta. Konsumentem w tym ćwiczeniu jest Agentspace.
Komponenty | Opis |
VPC (agentspace-psc-demo) | 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. NAT PSC obsługuje podsieć /29 na przyłącze usługi. |
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ć reguły przekierowania jest uważana za zwykłą podsieć. |
Podsieć NEG | Służy do przydzielania adresu IP grupie punktów końcowych sieci ze zwykłej podsieci. |
Podsieć tylko-proxy | Każdy serwer proxy systemu równoważenia obciążenia ma przypisany wewnętrzny adres IP. Pakiety wysyłane z serwera proxy do backendowej maszyny wirtualnej lub grupy punktów końcowych sieci mają źródłowy adres IP z podsieci tylko-proxy.Zalecana jest podsieć /23, ale obsługiwana jest też minimalna podsieć /26. W każdym regionie wymagana jest 1 regionalna podsieć proxy. |
Usługa backendu | Usługa backendu pełni funkcję pomostu między systemem równoważenia obciążenia a zasobami backendu. W tym samouczku usługa backendu jest powiązana z regionalną grupą punktów końcowych sieci. |
4. Sprawdzone metody
- Strefowe grupy punktów końcowych sieci obsługują co najmniej 1 strefową instancję GCE na podstawie GCE_VM_IP_PORT.
- Przed utworzeniem połączenia z usługą włącz dostęp globalny w regule przekierowania producenta.
- Włącz dostęp globalny podczas tworzenia punktu końcowego przestrzeni agentów.
- Wewnętrzny system równoważenia obciążenia serwera proxy TCP obsługuje też zarządzane i niezarządzane grupy instancji.
- Istniejące systemy równoważenia obciążenia serwera proxy TCP lub przejściowe systemy równoważenia obciążenia Google Cloud mogą być udostępniane jako usługa producenta.
5. Topologia ćwiczeń z programowania
6. 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 lub Google Workspace, musisz je utworzyć.
- Nazwa projektu to wyświetlana nazwa dla 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ć rozliczenia w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Wykonanie tego laboratorium 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 programu 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 module praktycznym 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:
Udostępnienie środowiska i połączenie się z nim może 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 stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i uwierzytelniania. Wszystkie zadania w tym laboratorium możesz wykonać w przeglądarce. Nie musisz niczego instalować.
7. 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]
zone1a=[YOUR-ZONE1a]
zone1b=[YOUR-ZONE1b]
echo $project
echo $region
echo $zone1a
echo $zone1b
Włącz wszystkie niezbędne usługi:
gcloud services enable compute.googleapis.com
8. Tworzenie sieci VPC producenta
Sieć VPC
W Cloud Shell wykonaj te czynności:
gcloud compute networks create agentspace-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 agentspace-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 agentspace-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access
W Cloud Shell utwórz podsieć grupy punktów końcowych sieci:
gcloud compute networks subnets create neg-subnet --network agentspace-psc-demo --range 172.16.30.0/28 --region $region --enable-private-ip-google-access
W Cloud Shell utwórz regionalną podsieć tylko-proxy dla usługi
gcloud compute networks subnets create $region-proxy-only-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$region \
--network=agentspace-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 zonal-neg-lb-ip \
--region=$region \
--subnet=producer-psc-fr-subnet
W Cloud Shell wyświetl zarezerwowany adres IP.
gcloud compute addresses describe zonal-neg-lb-ip \
--region=$region | grep -i address:
Przykładowe dane wyjściowe:
gcloud compute addresses describe zonal-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2
Konfigurowanie strefowej grupy punktów końcowych sieci
W sekcji poniżej utworzysz strefową grupę punktów końcowych sieci, która będzie zawierać co najmniej 1 adres IP lub kombinację adresu IP i portu docelowego:
- Podstawowy wewnętrzny adres IPv4 interfejsu sieciowego maszyny wirtualnej.
- Podstawowy wewnętrzny adres IPv4 interfejsu sieciowego maszyny wirtualnej oraz numer portu docelowego.
- wewnętrzny adres IPv4 z zakresu adresów IP aliasów przypisany do interfejsu sieciowego maszyny wirtualnej;
- wewnętrzny adres IPv4 z zakresu adresów IP aliasu przypisany do interfejsu sieciowego maszyny wirtualnej oraz numer portu docelowego;
Interfejs sieciowy zawierający punkt końcowy GCE_VM_IP_PORT musi znajdować się w podsieci NEG. Jeśli pominiesz numer portu w punkcie końcowym GCE_VM_IP_PORT, Google Cloud użyje domyślnego numeru portu NEG dla tego punktu końcowego.
W architekturze referencyjnej instancje GCE powiązane z regionalną grupą NEG składają się z tych elementów:
- database-us-central1-a | us-central1-a | IP: 100.100.10.2 | Port: 443
- database-us-central1-a | us-central1-b | IP: 100.100.10.3 | Port: 443
- Nazwa podsieci: database-subnet-1
Utwórz strefową grupę punktów końcowych sieci dla strefy 1a
W następnej sekcji utworzysz grupę punktów końcowych sieci w każdej strefie, np.us-central1-a, i określisz nazwę podsieci użytej do utworzenia instancji GCE. W architekturze referencyjnej nazwa podsieci to database-subnet-1.
W Cloud Shell utwórz strefową grupę punktów końcowych sieci:
gcloud compute network-endpoint-groups create us-central-zonal-neg-1a \
--zone=$zone1a \
--network=agentspace-psc-demo \
--subnet=database-subnet-1 \
--default-port=443
W Cloud Shell zaktualizuj strefową grupę NEG, podając adres IP i port instancji GCE wdrożonej w strefie 1a. W architekturze referencyjnej instancja GCE to 100.100.10.2 Port 443 wdrożony w strefie us-central1-a.
gcloud compute network-endpoint-groups update us-central-zonal-neg-1a --zone=$zone1a --add-endpoint instance=database-us-central1-a,port=443
Utwórz strefową grupę NEG dla strefy 1b
W następnej sekcji utworzysz grupę punktów końcowych sieci w każdej strefie, np.us-central1-b, i określisz nazwę podsieci użytej do utworzenia instancji GCE. W architekturze referencyjnej nazwa podsieci to database-subnet-1.
W Cloud Shell utwórz strefową grupę punktów końcowych sieci:
gcloud compute network-endpoint-groups create us-central-zonal-neg-1b \
--zone=$zone1b \
--network=agentspace-psc-demo \
--subnet=database-subnet-1 \
--default-port=443
W Cloud Shell zaktualizuj strefowy NEG, podając adres IP i port instancji GCE wdrożonej w strefie 1b. W architekturze referencyjnej instancja GCE to 100.100.10.3 Port 443 wdrożony w strefie us-central1-b.
gcloud compute network-endpoint-groups update us-central-zonal-neg-1b --zone=$zone1b --add-endpoint instance=database-us-central1-b,port=443
Tworzenie regionalnej kontroli stanu
W Cloud Shell utwórz kontrolę stanu, która sprawdza port bazy danych lokalnej (443):
gcloud compute health-checks create tcp zonal-443-healthcheck \
--region=$region \
--port=443
Tworzenie zasad zapory sieciowej i reguł zapory sieciowej
W Cloud Shell wykonaj te czynności:
gcloud compute network-firewall-policies create agentspace-psc-demo-policy --global
gcloud compute network-firewall-policies associations create --firewall-policy agentspace-psc-demo-policy --network agentspace-psc-demo --name agentspace-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 agentspace-psc-demo-policy --description "allow traffic from PSC NAT subnet to GCE" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp
Ta reguła zapory sieciowej zezwala na ruch z zakresu sond kontroli stanu do wszystkich instancji w sieci. Pamiętaj, że port kontroli stanu i port aplikacji muszą być takie same.
W Cloud Shell wykonaj te czynności:
gcloud compute network-firewall-policies rules create 2002 --action ALLOW --firewall-policy agentspace-psc-demo-policy --description "allow internal probe health check range to GCE" --direction INGRESS --src-ip-ranges 35.191.0.0/16,130.211.0.0/22 --global-firewall-policy --layer4-configs=tcp:443
Ta reguła zapory sieciowej zezwala na ruch z zakresu podsieci tylko dla proxy do wszystkich instancji w sieci. Pamiętaj, że podsieć proxy i port aplikacji muszą być zgodne.
W Cloud Shell wykonaj te czynności:
gcloud compute network-firewall-policies rules create 2003 --action ALLOW --firewall-policy agentspace-psc-demo-policy --description "allow internal tcp proxy health check range to GCE" --direction INGRESS --src-ip-ranges 10.10.10.0/24 --global-firewall-policy --layer4-configs=tcp:443
9. 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=zonal-443-healthcheck --health-checks-region=$region
W Cloud Shell powiąż strefową grupę NEG us-central-zonal-neg-1a z usługą backendu:
gcloud compute backend-services add-backend producer-backend-svc \
--network-endpoint-group=us-central-zonal-neg-1a \
--network-endpoint-group-zone=$zone1a \
--balancing-mode=CONNECTION \
--max-connections-per-endpoint=100 \
--region=$region
W Cloud Shell powiąż strefową grupę NEG us-central-zonal-neg-1b z usługą backendu:
gcloud compute backend-services add-backend producer-backend-svc \
--network-endpoint-group=us-central-zonal-neg-1b \
--network-endpoint-group-zone=$zone1b \
--balancing-mode=CONNECTION \
--max-connections-per-endpoint=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 poniższej składni utwórz regułę przekierowania (wewnętrzny system równoważenia obciążenia serwera proxy TCP) z włączonym dostępem globalnym.
W Cloud Shell wykonaj te czynności:
gcloud compute forwarding-rules create producer-zonal-neg-fr \
--load-balancing-scheme=INTERNAL_MANAGED \
--network-tier=PREMIUM \
--network=agentspace-psc-demo \
--subnet=producer-psc-fr-subnet \
--address=zonal-neg-lb-ip \
--target-tcp-proxy=producer-lb-tcp-proxy \
--target-tcp-proxy-region=$region \
--region=$region \
--allow-global-access \
--ports=443
Sprawdzanie stanu backendu
W następnej sekcji sprawdź stan (zielony) usługi backendu i powiązanych z nią instancji obliczeniowych za pomocą konsoli Google Cloud. Przejdź do:
Usługi sieciowe → Równoważenie obciążenia → Producer-backend-svc
Utwórz załącznik usługi
Aby opublikować usługę, musisz utworzyć przyłącze usługi Private Service Connect. Usługę możesz opublikować z automatycznym lub wyraźnym zatwierdzeniem.
- Aby opublikować usługę i automatycznie zezwolić każdemu konsumentowi na połączenie się z nią, postępuj zgodnie z instrukcjami w artykule Publikowanie usługi z automatycznym zatwierdzaniem.
- Aby opublikować usługę z wyraźną zgodą konsumenta, w ustawieniach połączenia przyłącza usługi wybierz Akceptuj połączenia w wybranych projektach i pozostaw puste pole Akceptowane projekty.
- Po wygenerowaniu załącznika usługi punkty końcowe konsumenta, które żądają dostępu do usługi producenta, początkowo przejdą w stan oczekiwania. Aby autoryzować połączenie, producent musi zaakceptować projekt, z którego pochodzi żądanie punktu końcowego konsumenta.
W Cloud Shell utwórz połączenie z usługą cc-database1-svc-attachment z automatycznym zatwierdzaniem:
gcloud compute service-attachments create zonal-database1-svc-attachment --region=$region --producer-forwarding-rule=producer-zonal-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 przestrzeni agentów.
selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/zonal-database1-svc-attachment
W Cloud Shell wykonaj te czynności:
gcloud compute service-attachments describe zonal-database1-svc-attachment --region=$region
Przykładowe oczekiwane dane wyjściowe:
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-07-12T16:00:22.429-07:00'
description: ''
enableProxyProtocol: false
fingerprint: zOpeRQnPWSc=
id: '1784245893044590569'
kind: compute#serviceAttachment
name: zonal-database1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
high: '119824781489996776'
low: '1784245893044590569'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1/serviceAttachments/zonal-database1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1/forwardingRules/producer-zonal-neg-fr
W konsoli Cloud otwórz:
Usługi sieciowe → Private Service Connect → Opublikowane usługi
10. Nawiązywanie połączenia punktu końcowego PSC w przestrzeni agentów
Powiąż identyfikator URI usługi Producers Service Attachment z Agentspace, upewniając się, że wybrano dostęp globalny. Poniżej znajdziesz przykład włączenia dostępu globalnego za pomocą architektury referencyjnej Service Attachment.
Aby sfinalizować tworzenie sieci prywatnej, zapoznaj się z instrukcjami dotyczącymi zewnętrznych źródeł danych w Agentspace.
Sprawdzanie poprawności punktu końcowego PSC w Cloud Console
Aby potwierdzić, że połączenie PSC między przestrzenią agentów (konsumentem) a producentem zostało nawiązane, sprawdź projekt najemcy przestrzeni agentów połączony z usługą producenta. Znajdziesz ją w sekcji „Połączone projekty”. Identyfikator projektu najemcy jest przypisywany losowo, ale zawsze kończy się ciągiem „tp”.
W konsoli Cloud możesz sprawdzić połączenie PSC. W konsoli Cloud otwórz:
Usługi sieciowe → Private Service Connect → Opublikowana usługa, a następnie wybierz usługę zonal-database1-svc-attachment.
11. Czyszczenie danych
Usuwanie komponentów modułu z jednego terminala Cloud Shell
gcloud compute service-attachments delete zonal-database1-svc-attachment --region=$region -q
gcloud compute forwarding-rules delete producer-zonal-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 agentspace-psc-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies rules delete 2002 --firewall-policy agentspace-psc-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies rules delete 2003 --firewall-policy agentspace-psc-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies associations delete --firewall-policy=agentspace-psc-demo-policy --name=agentspace-psc-demo --global-firewall-policy -q
gcloud compute network-firewall-policies delete agentspace-psc-demo-policy --global -q
gcloud compute network-endpoint-groups delete us-central-zonal-neg-1a --zone=$zone1a -q
gcloud compute network-endpoint-groups delete us-central-zonal-neg-1b --zone=$zone1b -q
gcloud compute addresses delete zonal-neg-lb-ip --region=$region -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 subnets delete neg-subnet --region=$region -q
gcloud compute health-checks delete zonal-443-healthcheck --region=us-central1 -q
gcloud compute networks delete agentspace-psc-demo -q
12. Gratulacje
Gratulujemy skonfigurowania i opublikowania usługi producenta z usługą Private Service Connect.
Utworzono infrastrukturę producenta, dowiedziano się, jak utworzyć strefową grupę punktów końcowych sieci, usługę producenta i powiązać przyłącze usługi z Agentspace.
Cosmopup uważa, że ćwiczenia z programowania są świetne!!
Co dalej?
Wypróbuj te ćwiczenia z programowania:
- Publikowanie i korzystanie z usług za pomocą Private Service Connect
- Dostęp do wszystkich opublikowanych ćwiczeń z kodem Private Service Connect