Ćwiczenia z zakresu zmienności usługi Private Service Connect

1. Wprowadzenie

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łasnych, oddzielnych sieciach VPC i oferowanie prywatnego połączenia z klientami.

Do tej pory, gdy usługi PSC były udostępniane za pomocą przyłącza usługi, nie można było wprowadzać zmian w systemach równoważenia obciążenia usługi bez usunięcia przyłącza usługi i przerwania połączenia z punktem końcowym PSC konsumenta. Wprowadzenie możliwości zmiany PSC umożliwia producentom aktualizowanie systemu równoważenia obciążenia przy zachowaniu połączenia punktu końcowego PSC. Utrzymanie połączenia punktu końcowego PSC z przyłączem usługi podczas zmiany systemu równoważenia obciążenia ma tę zaletę, że nie wymaga żadnych działań po stronie klienta.

Obecnie możliwość zmiany PSC będzie obsługiwać

  • Migracja do reguły przekierowania systemu równoważenia obciążenia tego samego typu (np. Przekazywanie sieciowe do przekazywania sieciowego)
  • Migracja do reguły przekierowania systemu równoważenia obciążenia innego typu (np. Przekazywanie sieciowe do systemu równoważenia obciążenia aplikacji

Zmienność PSC nie obsługuje edytowania reguły przekierowania w miejscu.

W tym laboratorium utworzysz usługę sieciową producenta udostępnianą przez wewnętrzny przekazujący sieciowy system równoważenia obciążenia, sprawdzisz, czy usługa ma łączność przez punkt końcowy PSC, a następnie zaktualizujesz powiązanie przyłącza usługi z nową regułą przekierowania do wewnętrznego systemu równoważenia obciążenia aplikacji.

Czego się nauczysz

  • utworzyć prostą usługę internetową Apache udostępnianą jako usługa producenta PSC;
  • Utwórz punkt końcowy PSC.
  • Utwórz prywatną strefę Cloud DNS na potrzeby wywołań usługi konsumenckiej.
  • Zaktualizuj regułę przekierowania powiązaną z przyłączem usługi za pomocą funkcji PSC Mutability.

Czego potrzebujesz

  • Projekt Google Cloud z uprawnieniami właściciela
  • Podstawowa wiedza o sieciach w Google Cloud

2. Środowisko testowe

Zazwyczaj producenci i konsumenci pracują w różnych projektach. Dla uproszczenia wszystkie działania wykonamy w tym samym projekcie, ale każdy krok będzie oznaczony jako projekt producenta lub projekt konsumenta, jeśli użytkownik woli pracować w różnych projektach.

Na potrzeby tego modułu zaczniemy od utworzenia sieci VPC producenta z 3 podsieciami: jedną do hostowania usługi producenta i testowej maszyny wirtualnej, jedną dla reguł przekazywania systemu równoważenia obciążenia i jedną dla podsieci NAT PSC. Aby pobrać pakiety Linuksa, potrzebujemy routera Cloud Router i usługi Cloud NAT, które zapewnią dostęp do internetu. Udostępnimy naszą usługę Apache skonfigurowaną za pomocą niezarządzanej grupy instancji za pomocą wewnętrznego regionalnego przekazującego sieciowego systemu równoważenia obciążenia i powiążemy regułę przekierowania z przyłączeniem usługi.

Po stronie konsumenta utworzymy sieć consumer-vpc z jedną podsiecią, w której będzie hostowany punkt końcowy PSC i kliencka maszyna wirtualna do testowania. Skonfigurujemy prywatną strefę Cloud DNS, aby uzyskać dostęp do usługi za pomocą nazwy hosta.

Aby zaprezentować funkcję zmienności PSC, po stronie producenta dodamy 2 dodatkowe podsieci: jedną do hostowania nowej maszyny wirtualnej usługi, a drugą dla podsieci tylko z serwerem proxy systemu równoważenia obciążenia. Utworzymy nową maszynę wirtualną hostującą serwer WWW Apache, ponownie skonfigurowaną za pomocą niezarządzanej grupy instancji, i udostępnimy ją za pomocą nowego wewnętrznego regionalnego systemu równoważenia obciążenia aplikacji. Zaktualizujemy przyłącze usługi, aby wskazywało nową regułę przekierowania, i sprawdzimy, czy po stronie konsumenta połączenie nadal działa.

683e2b440a0cc07f.png

3. Konfiguracja i wymagania

Samodzielne konfigurowanie środowiska

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

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Nazwa projektu to wyświetlana nazwa 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 też trzecia wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
  1. Następnie musisz włączyć płatności 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 bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.

Uruchamianie Cloud Shell

Z Google Cloud można korzystać zdalnie na laptopie, 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:

Aktywowanie Cloud Shell

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

Zrzut ekranu terminala Google Cloud Shell pokazujący, że środowisko zostało połączone

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera również stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i usprawnia proces uwierzytelniania. Wszystkie zadania w tym laboratorium możesz wykonać w przeglądarce. Nie musisz niczego instalować.

4. 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-NAME]
export project=[YOUR-PROJECT-NAME]
export region=us-central1
export zone=$region-a
echo $project
echo $region
echo $zone

Włącz wszystkie niezbędne usługi

gcloud services enable compute.googleapis.com
gcloud services enable dns.googleapis.com

5. Tworzenie sieci producentów [projekt producenta]

Utwórz sieć VPC

Z Cloud Shell

gcloud compute networks create producer-vpc \
    --subnet-mode=custom

Tworzenie podsieci

Zaczniemy od wdrożenia 3 podsieci w sieci VPC producenta. Jedna będzie służyć do wdrażania usługi producenta, druga do reguł przekierowania systemu równoważenia obciążenia, a trzecia będzie powiązana z przyłączem usługi PSC dla naszej podsieci NAT PSC.

Z Cloud Shell

gcloud compute networks subnets create producer-service-subnet \
    --network=producer-vpc \
    --range=10.0.0.0/28 \
    --region=$region

gcloud compute networks subnets create producer-fr-subnet \
        --network=producer-vpc \
        --range=192.168.0.0/28 \
        --region=$region

gcloud compute networks subnets create psc-nat-subnet \
    --network=producer-vpc \
    --range=10.100.0.0/28 \
    --region=$region \
    --purpose=PRIVATE_SERVICE_CONNECT

Utwórz Cloud NAT.

Do zainstalowania odpowiednich pakietów dla naszych usług producenta wymagany jest Cloud NAT.

Z Cloud Shell

gcloud compute routers create $region-cr \
    --network=producer-vpc \
    --region=$region

Z Cloud Shell

gcloud compute routers nats create $region-nat \
    --router=$region-cr \
    --region=$region \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips

Tworzenie zasad i reguł zapory sieciowej

Z Cloud Shell

gcloud compute network-firewall-policies create producer-vpc-policy --global

gcloud compute network-firewall-policies associations create \
    --firewall-policy producer-vpc-policy \
    --network producer-vpc \
    --name network-producer-vpc \
    --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 przez IAP.
  • Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP, których IAP używa do przekierowywania TCP.

Z Cloud Shell

gcloud compute network-firewall-policies rules create 1000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "SSH with IAP" \
    --direction INGRESS \
    --src-ip-ranges 35.235.240.0/20 \
    --layer4-configs tcp:22  \
    --global-firewall-policy

Zaczniemy od 3 reguł zapory sieciowej. Pierwsza z nich umożliwi dostęp do maszyn wirtualnych w ramach kontroli stanu systemu równoważenia obciążenia (2000), druga umożliwi dostęp do maszyn wirtualnych z zakresu NAT PSC (3000), a trzecia umożliwi łączność między maszynami wirtualnymi w podsieci usługi na potrzeby testowania (4000). Utworzymy wszystkie reguły dla portu 80, ponieważ będziemy go używać w naszej usłudze.

Z Cloud Shell

gcloud compute network-firewall-policies rules create 2000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "LB healthchecks" \
    --direction INGRESS \
    --src-ip-ranges 130.211.0.0/22,35.191.0.0/16 \
    --layer4-configs tcp:80  \
    --global-firewall-policy

gcloud compute network-firewall-policies rules create 3000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow access from PSC NAT subnet" \
    --direction INGRESS \
    --src-ip-ranges 10.100.0.0/28 \
    --layer4-configs tcp:80  \
    --global-firewall-policy

 gcloud compute network-firewall-policies rules create 4000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow access between producer service VMs and testing client for testing purposes" \
    --direction INGRESS \
    --src-ip-ranges 10.0.0.0/28 \
    --layer4-configs tcp:80 \
    --global-firewall-policy

6. Tworzenie usługi producenta [projekt producenta]

Utworzymy prostą usługę internetową Apache za pomocą niezarządzanej grupy instancji, która wyświetla komunikat „I am a Producer Service”.

Utwórz instancję

Z Cloud Shell

gcloud compute instances create producer-service-vm \
    --network producer-vpc \
    --subnet producer-service-subnet \
    --zone $zone \
    --no-address \
    --metadata startup-script='#! /bin/bash
    sudo apt-get update
    sudo apt-get install apache2 -y
    a2enmod ssl
    sudo a2ensite default-ssl
    echo "I am a Producer Service." | \
    tee /var/www/html/index.html
    systemctl restart apache2'

Utwórz niezarządzaną grupę instancji

Z Cloud Shell

gcloud compute instance-groups unmanaged create producer-uig \
  --zone=$zone

Dodaj maszynę wirtualną producer-service-vm do utworzonej właśnie niezarządzanej grupy instancji.

Z Cloud Shell

gcloud compute instance-groups unmanaged add-instances producer-uig \
  --zone=$zone \
  --instances=producer-service-vm

Tworzenie komponentów systemu równoważenia obciążenia

W przypadku wersji 1 usługi producenta udostępnimy usługę za pomocą przekazującego sieciowego systemu równoważenia obciążenia na porcie 80.

Wdróż kontrolę stanu dla portu 80.

Z Cloud Shell

gcloud compute health-checks create http producer-hc \
        --region=$region

Wdróż usługę backendu i dodaj do niej backend.

Z Cloud Shell

gcloud compute backend-services create producer-bes \
  --load-balancing-scheme=internal \
  --protocol=tcp \
  --region=$region \
  --health-checks=producer-hc \
  --health-checks-region=$region

gcloud compute backend-services add-backend producer-bes \
  --region=$region \
  --instance-group=producer-uig \
  --instance-group-zone=$zone

Utwórz statyczny adres IP, który będzie używany w regule przekierowania systemu równoważenia obciążenia.

Z Cloud Shell

gcloud compute addresses create producer-fr-ip\
  --region $region \
  --subnet producer-fr-subnet \
  --addresses 192.168.0.2

Utwórz regułę przekierowania systemu równoważenia obciążenia, która udostępnia port 80, korzystając z utworzonej wcześniej usługi backendu i adresu IP.

Z Cloud Shell

gcloud compute forwarding-rules create producer-fr \
  --region=$region \
  --load-balancing-scheme=internal \
  --network=producer-vpc \
  --subnet=producer-fr-subnet \
  --address=producer-fr-ip \
  --ip-protocol=TCP \
  --ports=80 \
  --backend-service=producer-bes \
  --backend-service-region=$region

7. Testowanie usługi producenta [projekt producenta]

Utwórz testową maszynę wirtualną w podsieci usługi producenta, zaloguj się na nią i przetestuj wywołanie usługi Apache.

Z Cloud Shell

 gcloud compute instances create producer-test-vm \
    --zone=$zone \
    --subnet=producer-service-subnet \
    --no-address

Z Cloud Shell

gcloud compute ssh producer-test-vm \
    --zone=$zone \
    --command="curl -s 192.168.0.2/index.html"

Oczekiwane dane wyjściowe

I am a Producer Service.

8. Udostępnianie usługi producenta za pomocą przyłącza usługi [projekt producenta]

Utwórz przyłącze usługi. Powiąż go z regułą przekierowania utworzoną za pomocą psc-nat-subnet.

Z Cloud Shell

gcloud compute service-attachments create producer-attachment \
    --region=$region \
    --producer-forwarding-rule=producer-fr  \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=psc-nat-subnet

Zanotuj identyfikator URI przyłączenia usługi (selfLink), ponieważ będzie on potrzebny w kolejnym kroku konfiguracji punktu końcowego PSC. Możesz go uzyskać, wykonując w Cloud Shell to polecenie.

Z Cloud Shell

gcloud compute service-attachments describe producer-attachment --region=$region

Przykładowe dane wyjściowe

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2026-02-10T07:50:04.250-08:00'
description: ''
enableProxyProtocol: false
fingerprint: xxx
id: 'xxx'
kind: compute#serviceAttachment
name: producer-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/psc-nat-subnet
pscServiceAttachmentId:
  high: 'xxx'
  low: 'xxx'
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/producer-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-fr

Skopiuj identyfikator URI zaczynający się od projects.

Przykład: projects/$project/regions/$region/serviceAttachments/producer-attachment

9. Tworzenie sieci konsumenta [projekt konsumenta]

Utwórz sieć VPC

Z Cloud Shell

gcloud compute networks create consumer-vpc \
    --subnet-mode=custom

Utwórz podsieć

Zostanie wdrożona jedna podsieć, w której wdrożymy punkt końcowy PSC i testową maszynę wirtualną klienta.

Z Cloud Shell

gcloud compute networks subnets create consumer-subnet \
    --network=consumer-vpc \
    --range=10.0.0.0/28 \
    --region=$region

Tworzenie zasad i reguł zapory sieciowej

Z Cloud Shell

gcloud compute network-firewall-policies create consumer-vpc-policy --global

gcloud compute network-firewall-policies associations create \
    --firewall-policy consumer-vpc-policy \
    --network consumer-vpc \
    --name network-consumer-vpc \
    --global-firewall-policy

Skonfigurujemy też sieć VPC klienta, aby używała IAP do SSH.

Z Cloud Shell

gcloud compute network-firewall-policies rules create 1000 \
    --action ALLOW \
    --firewall-policy consumer-vpc-policy \
    --description "SSH with IAP" \
    --direction INGRESS \
    --src-ip-ranges 35.235.240.0/20 \
    --layer4-configs tcp:22  \
    --global-firewall-policy

10. Utwórz punkt końcowy Private Service Connect [projekt konsumenta]

Zarezerwuj statyczny adres IP, który będzie używany w punkcie końcowym usługi PSC.

Z Cloud Shell

gcloud compute addresses create psc-endpoint-ip \
    --region=$region \
    --subnet=consumer-subnet \
    --addresses 10.0.0.2

Utwórz punkt końcowy PSC, używając zarezerwowanego statycznego adresu IP i identyfikatora URI przyłącza usługi, które zostały zanotowane wcześniej.

Z Cloud Shell

gcloud compute forwarding-rules create psc-endpoint \
  --region=$region \
  --network=consumer-vpc \
  --address=psc-endpoint-ip \
  --target-service-attachment=projects/$project/regions/$region/serviceAttachments/producer-attachment

11. Konfigurowanie prywatnej strefy DNS dla punktu końcowego PSC [projekt klienta]

Za pomocą Cloud DNS skonfigurujemy prywatną strefę DNS o nazwie DNS myservice.com, która będzie używana z naszym punktem końcowym PSC.

Z Cloud Shell

gcloud dns managed-zones create "consumer-service" \
    --dns-name=myservice.com \
    --description="consumer service dns" \
    --visibility=private \
    --networks=consumer-vpc

gcloud dns record-sets transaction start \
   --zone="consumer-service"

Utwórz rekord A dla domeny myservice.com i skieruj go na adres IP punktu końcowego PSC.

Z Cloud Shell

gcloud dns record-sets transaction add 10.0.0.2 \
   --name=myservice.com \
   --ttl=300 \
   --type=A \
   --zone="consumer-service"

gcloud dns record-sets transaction execute \
   --zone="consumer-service"

12. Testowanie punktu końcowego PSC [projekt klienta]

Tworzenie klienckiej maszyny wirtualnej

Z Cloud Shell

gcloud compute instances create consumer-client-vm \
    --zone=$zone \
    --subnet=consumer-subnet \
    --no-address

Testowanie połączenia z punktem końcowym PSC

Z Cloud Shell

gcloud compute ssh consumer-client-vm \
    --zone=$zone \
    --command="curl -s myservice.com/index.html"

Oczekiwane dane wyjściowe

I am a Producer Service.

W kolejnej części tego laboratorium kodowania utworzymy nową usługę producenta i przeprowadzimy do niej migrację. Zaprezentujemy też funkcję zmienności PSC, która umożliwia bezproblemową aktualizację bez konieczności wprowadzania zmian w konfiguracji po stronie konsumenta.

13. Tworzenie zaktualizowanej usługi producenta [projekt producenta]

Aby zaktualizować usługę producenta, wdrożymy nową maszynę wirtualną z podobnym serwerem WWW Apache i komunikatem „I am a NEW Producer service”. Dodamy tę maszynę wirtualną do nowej niezarządzanej grupy instancji i użyjemy jej jako backendu nowego systemu równoważenia obciążenia. Zamiast korzystać z przekazującego sieciowego systemu równoważenia obciążenia, zaktualizujemy system równoważenia obciążenia do regionalnego wewnętrznego systemu równoważenia obciążenia aplikacji.

Aktualizowanie sieci

Utwórz nową podsieć, która będzie używana jako podsieć tylko-proxy dla systemu równoważenia obciążenia aplikacji.

Z Cloud Shell

gcloud compute networks subnets create lb-proxy-subnet \
    --network=producer-vpc \
    --range=10.200.0.0/24 \
    --region=$region \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE

Utwórz nową podsieć, w której będzie hostowana nowa usługa.

Z Cloud Shell

gcloud compute networks subnets create producer-service-new-subnet \
    --network=producer-vpc \
    --range=10.0.1.0/28 \
    --region=$region

Utwórz nową regułę zapory sieciowej, która zezwoli na połączenie z naszą nową usługą producenta z podsieci tylko dla proxy.

Z Cloud Shell

 gcloud compute network-firewall-policies rules create 3001 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow access from proxy only subnet" \
    --direction INGRESS \
    --src-ip-ranges 10.200.0.0/24 \
    --layer4-configs tcp:80  \
    --global-firewall-policy

Utwórz instancję

Z Cloud Shell

gcloud compute instances create new-producer-service-vm \
    --network producer-vpc \
    --subnet producer-service-new-subnet \
    --zone $zone \
    --no-address \
    --metadata startup-script='#! /bin/bash
    sudo apt-get update
    sudo apt-get install apache2 -y
    a2enmod ssl
    sudo a2ensite default-ssl
    echo "I am a NEW Producer Service." | \
    tee /var/www/html/index.html
    systemctl restart apache2'

Utwórz niezarządzaną grupę instancji

Z Cloud Shell

gcloud compute instance-groups unmanaged create producer-new-uig \
  --zone=$zone

gcloud compute instance-groups unmanaged add-instances producer-new-uig \
  --zone=$zone \
  --instances=new-producer-service-vm

gcloud compute instance-groups unmanaged set-named-ports producer-new-uig \
    --named-ports=http:80 \
    --zone=$zone

Tworzenie nowych komponentów systemu równoważenia obciążenia

Utwórz usługę backendu. Zwróć uwagę, że używamy schematu równoważenia obciążenia INTERNAL_MANAGED, ponieważ przechodzimy na wewnętrzny system równoważenia obciążenia aplikacji.

Z Cloud Shell

gcloud compute backend-services create producer-new-bes \
  --load-balancing-scheme=INTERNAL_MANAGED \
  --protocol=http \
  --region=$region \
  --health-checks=producer-hc \
  --health-checks-region=$region

Dodaj niezarządzaną grupę instancji jako backend do usługi backendu.

Z Cloud Shell

gcloud compute backend-services add-backend producer-new-bes \
  --region=$region \
  --instance-group=producer-new-uig \
  --instance-group-zone=$zone

Utwórz mapę adresów URL i docelowe serwery proxy HTTP.

Z Cloud Shell

gcloud compute url-maps create producer-url-map \
  --default-service=producer-new-bes \
  --region=$region

gcloud compute target-http-proxies create http-proxy \
  --url-map=producer-url-map \
  --region=$region

Utwórz statyczny adres IP, którego użyjemy w regule przekierowania. Będzie ona pochodzić z tej samej podsieci, której użyliśmy w przypadku pierwotnej reguły przekierowania.

Z Cloud Shell

gcloud compute addresses create producer-fr-new-ip\
  --region $region \
  --subnet producer-fr-subnet \
  --addresses 192.168.0.3

Utwórz regułę przekierowania.

Z Cloud Shell

gcloud compute forwarding-rules create new-producer-fr \
  --load-balancing-scheme=INTERNAL_MANAGED \
  --network=producer-vpc \
  --subnet=producer-fr-subnet \
  --address=producer-fr-new-ip \
  --ports=80 \
  --region=$region \
  --target-http-proxy=http-proxy \
  --target-http-proxy-region=$region

14. Testowanie zaktualizowanej usługi producenta [projekt producenta]

Użyjemy tej samej testowej maszyny wirtualnej, której użyliśmy do testowania pierwotnie wdrożonej usługi.

Z Cloud Shell

gcloud compute ssh producer-test-vm \
    --zone=$zone \
    --command="curl -s 192.168.0.3/index.html"

Pamiętaj, że dzwonimy na zaktualizowany adres IP. 192.168.0.3 to adres IP naszego regionalnego wewnętrznego systemu równoważenia obciążenia aplikacji.

Oczekiwane dane wyjściowe

I am a NEW Producer Service.

15. Aktualizowanie połączenia z usługą [projekt producenta]

Aby lepiej zobrazować aktualizację reguły przekierowania do połączenia z usługą, możemy uruchomić polecenie „describe” w połączeniu z usługą przed zmianą i po niej.

Z Cloud Shell

gcloud compute service-attachments describe producer-attachment \
    --region=$region \
    --format="value(targetService)"

Oczekiwane dane wyjściowe

https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-fr

Zaktualizuj przyłącze usługi.

Z Cloud Shell

gcloud compute service-attachments update producer-attachment \
  --region=$region \
  --target-service=projects/$project/regions/$region/forwardingRules/new-producer-fr

Teraz ponownie uruchom polecenie describe, aby zobaczyć nową regułę przekierowania.

Z Cloud Shell

gcloud compute service-attachments describe producer-attachment \
    --region=$region \
    --format="value(targetService)"

Oczekiwane dane wyjściowe

https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/new-producer-fr

16. Ponowne testowanie połączenia PSC konsumenta [projekt konsumenta]

Zaloguj się w tym samym kliencie konsumenckim.

Z Cloud Shell

gcloud compute ssh consumer-client-vm \
    --zone=$zone \
    --command="curl -s myservice.com/index.html"

Oczekiwane dane wyjściowe

 I am a NEW Producer Service.

Gratulacje! Usługa równoważenia obciążenia usługi producenta PSC została zaktualizowana i nie wymagała żadnych zmian konfiguracji po stronie konsumenta.

17. Procedura czyszczenia [projekt konsumenta]

Usuwanie komponentów laboratorium z jednego terminala Cloud Shell

gcloud dns record-sets delete myservice.com --zone="consumer-service" --type=A -q

gcloud dns managed-zones delete "consumer-service" -q

gcloud compute forwarding-rules delete psc-endpoint --region=$region -q

gcloud compute addresses delete psc-endpoint-ip --region=$region -q

gcloud compute instances delete consumer-client-vm --zone=$zone --project $project -q

gcloud compute network-firewall-policies rules delete 1000 --firewall-policy consumer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=consumer-vpc-policy  --name=network-consumer-vpc --global-firewall-policy -q

gcloud compute network-firewall-policies delete consumer-vpc-policy --global -q

gcloud compute networks subnets delete consumer-subnet --region $region -q

gcloud compute networks delete consumer-vpc -q

18. Procedura czyszczenia [Projekt producenta]

Usuwanie komponentów laboratorium z jednego terminala Cloud Shell

gcloud compute service-attachments delete producer-attachment --region=$region -q

gcloud compute instances delete producer-test-vm --zone=$zone --project $project -q

gcloud compute forwarding-rules delete new-producer-fr --region=$region -q

gcloud compute addresses delete producer-fr-new-ip --region $region -q

gcloud compute target-http-proxies delete http-proxy --region $region -q

gcloud compute url-maps delete producer-url-map --region $region -q

gcloud compute backend-services delete producer-new-bes --region $region -q

gcloud compute instance-groups unmanaged delete producer-new-uig --zone $zone -q

gcloud compute instances delete new-producer-service-vm --zone $zone --project $project -q

gcloud compute networks subnets delete producer-service-new-subnet --region $region -q

gcloud compute networks subnets delete lb-proxy-subnet --region $region -q

gcloud compute forwarding-rules delete producer-fr --region=$region -q

gcloud compute addresses delete producer-fr-ip --region $region -q

gcloud compute backend-services delete producer-bes --region $region -q

gcloud compute health-checks delete producer-hc --region $region -q

gcloud compute instance-groups unmanaged delete producer-uig --zone $zone -q

gcloud compute instances delete producer-service-vm --zone $zone --project $project -q

gcloud compute network-firewall-policies rules delete 4000 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 3001 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 3000 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 2000 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy  --name=network-producer-vpc --global-firewall-policy -q

gcloud compute network-firewall-policies delete producer-vpc-policy --global -q

gcloud compute routers nats delete $region-nat --router=$region-cr --region=$region -q

gcloud compute routers delete $region-cr --region=$region -q

gcloud compute networks subnets delete psc-nat-subnet --region=$region -q

gcloud compute networks subnets delete producer-fr-subnet --region=$region -q

gcloud compute networks subnets delete producer-service-subnet --region=$region -q

gcloud compute networks delete producer-vpc -q

19. Gratulacje!

Gratulujemy ukończenia ćwiczenia.

Omówione zagadnienia

  • utworzyć prostą usługę internetową Apache udostępnianą jako usługa producenta PSC;
  • Utwórz punkt końcowy PSC.
  • Utwórz prywatną strefę Cloud DNS na potrzeby wywołań usługi konsumenckiej.
  • Zaktualizuj regułę przekierowania powiązaną z przyłączem usługi za pomocą funkcji PSC Mutability.