Private Service Connect: migracja połączeń równorzędnych VPC z Private Service Connect

1. Wprowadzenie

Równorzędne połączenie sieci VPC to popularna metoda oferowania przez producentów możliwości korzystania z usług. Korzystanie z połączenia równorzędnego VPC wiąże się jednak z wieloma złożonościami dotyczącymi routingu, takimi jak nietranzytywne połączenie równorzędne VPC, duże zużycie adresów IP i nadmierne udostępnianie zasobów w równorzędnej sieci VPC.

Private Service Connect (PSC) to metoda łączności, która umożliwia producentom udostępnianie usługi za pomocą jednego punktu końcowego, który konsument udostępnia w sieci VPC obciążenia. Eliminuje to wiele problemów, z którymi użytkownicy spotykają się w przypadku połączeń równorzędnych VPC. Wiele nowych usług jest tworzonych za pomocą PSC, ale nadal istnieje wiele usług, które działają jako usługi równorzędnego połączenia sieci VPC.

Google Cloud z przyjemnością przedstawia ścieżkę migracji usług utworzonych za pomocą połączeń równorzędnych VPC do architektury opartej na PSC. W przypadku tej metody migracji adres IP usługi producenta, który jest udostępniany za pomocą połączenia równorzędnego VPC, jest zachowywany w architekturze opartej na PSC, więc konsument musi wprowadzić minimalne zmiany. W tym samouczku znajdziesz instrukcje techniczne dotyczące przeprowadzenia tej migracji.

UWAGA: ta ścieżka migracji jest przeznaczona tylko dla usług, w których producent i konsument znajdują się w tej samej organizacji Google Cloud. W przypadku usług Google Cloud lub usług innych firm, które korzystają z połączeń równorzędnych VPC, stosowana jest podobna metoda migracji, ale dostosowana do konkretnej usługi. Aby dowiedzieć się więcej o ścieżce migracji tych typów usług, skontaktuj się z odpowiednimi osobami.

Czego się nauczysz

  • Konfigurowanie usługi opartej na połączeniu równorzędnym sieci VPC
  • Jak skonfigurować usługę opartą na PSC
  • Używanie interfejsu Internal-Ranges API do przeprowadzania migracji podsieci przez połączenie równorzędne VPC w celu przeprowadzenia migracji usługi z połączenia równorzędnego VPC do usługi PSC.
  • Informacje o tym, kiedy podczas migracji usługi musi nastąpić przestój
  • Procedura zwalniania miejsca po migracji

Czego potrzebujesz

  • Projekt Google Cloud z uprawnieniami właściciela

2. Topologia ćwiczeń z programowania

Dla uproszczenia w tym samouczku wszystkie zasoby są zgrupowane w jednym projekcie. W instrukcjach znajdziesz informacje o tym, jakie działania należy wykonać po stronie producenta, a jakie po stronie konsumenta, jeśli producenci i konsumenci znajdują się w różnych projektach.

Ten przewodnik będzie miał 4 stany.

7dbf27cf215f9703.png

Stan 1 to stan połączenia równorzędnego VPC. Będą 2 sieci VPC: consumer-vpc i producer-vpc, które będą połączone ze sobą równorzędnie. Sieć producer-vpc będzie udostępniać prostą usługę Apache za pomocą wewnętrznego przekazującego sieciowego systemu równoważenia obciążenia. Sieć consumer-vpc będzie zawierać jedną maszynę wirtualną consumer-vm na potrzeby testów.

7f64427c0e59d417.png

Stan 2 to stan testu PSC. Utworzymy nową regułę przekierowania i użyjemy jej do powiązania z naszym połączeniem z usługą. Następnie utworzymy testowy punkt końcowy PSC w sieci VPC klienta, aby sprawdzić, czy usługa PSC działa zgodnie z oczekiwaniami.

98c324c59c1fbf68.png

Stan 3 to stan migracji. Zarezerwujemy zakres podsieci w sieci VPC producenta, w której wdrożono usługę opartą na połączeniu równorzędnym VPC, do użycia w sieci VPC konsumenta. Następnie utworzymy nowy punkt końcowy PSC z tym samym adresem IP co istniejąca reguła przekierowania w sieci VPC producenta.

a64ab7b69132c722.png

Stan 4 to stan końcowy PSC. Zwolnimy miejsce na testowym punkcie końcowym PSC i usuniemy połączenie równorzędne VPC między sieciami consumer-vpc i producer-vpc.

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.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:

55efc1aaa7a4d3ad.png

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:

7ffe5cbb04455448.png

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 projekt jest skonfigurowany, i skonfiguruj zmienne.

gcloud auth login
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
export projectid=[YOUR-PROJECT-ID]
export region=us-central1
export zone=$region-a
echo $projectid
echo $region
echo $zone

Włącz wszystkie niezbędne usługi

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

5. Tworzenie sieci VPC producenta (działanie producenta)

Sieć VPC

Z Cloud Shell

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

Tworzenie podsieci

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

Tworzenie routera Cloud Router i Cloud NAT w sieci producenta

Z Cloud Shell

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

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

Tworzenie zasad zapory sieciowej sieci producenta 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

Utworzymy też 2 dodatkowe reguły, które zezwalają na kontrole stanu systemu równoważenia obciążenia w usłudze, a także na ruch w sieci z maszyn wirtualnych, które będą łączyć się z sieci konsumenckiej VPC.

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 consumer-vpc" \
    --direction INGRESS \
    --src-ip-ranges 10.0.1.0/28 \
    --layer4-configs tcp:80  \
    --global-firewall-policy

6. Konfiguracja usługi producenta (aktywność producenta)

Utworzymy usługę producenta z jedną maszyną wirtualną z uruchomionym serwerem WWW Apache, która zostanie dodana do niezarządzanej grupy instancji z regionalnym wewnętrznym przekazującym sieciowym systemem równoważenia obciążenia.

Tworzenie maszyny wirtualnej i niezarządzanej grupy instancji

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'

Z Cloud Shell

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

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

Utwórz regionalny wewnętrzny sieciowy system równoważenia obciążenia

Z Cloud Shell

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

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=prod-uig \
  --instance-group-zone=$zone

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

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. Tworzenie sieci VPC konsumenta (aktywność konsumenta)

Sieć VPC

Z Cloud Shell

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

Utwórz podsieć

Z Cloud Shell

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

Tworzenie zasad zapory sieciowej sieci konsumenckiej i reguł zapory sieciowej

Utworzymy kolejną zasadę zapory sieciowej dla sieci consumer-vpc.

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

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

8. Tworzenie połączenia równorzędnego VPC

Aktywność producenta

Z Cloud Shell

gcloud compute networks peerings create producer-vpc-peering \
    --network=producer-vpc \
    --peer-project=$projectid \
    --peer-network=consumer-vpc

Aktywność konsumentów

Z Cloud Shell

gcloud compute networks peerings create consumer-vpc-peering \
    --network=consumer-vpc \
    --peer-project=$projectid \
    --peer-network=producer-vpc

Sprawdź, czy połączenie równorzędne zostało nawiązane, przeglądając listę tras w sieci VPC konsumenta. Powinny wyświetlić się trasy dla sieci consumer-vpc i producer-vpc.

Aktywność konsumentów

Z Cloud Shell

gcloud compute routes list --filter="network=consumer-vpc"

Oczekiwane dane wyjściowe

NAME: default-route-49dda7094977e231
NETWORK: consumer-vpc
DEST_RANGE: 0.0.0.0/0
NEXT_HOP: default-internet-gateway
PRIORITY: 1000

NAME: default-route-r-10d65e16cc6278b2
NETWORK: consumer-vpc
DEST_RANGE: 10.0.1.0/28
NEXT_HOP: consumer-vpc
PRIORITY: 0

NAME: peering-route-496d0732b4f11cea
NETWORK: consumer-vpc
DEST_RANGE: 192.168.0.0/28
NEXT_HOP: consumer-vpc-peering
PRIORITY: 0

NAME: peering-route-b4f9d3acc4c08d55
NETWORK: consumer-vpc
DEST_RANGE: 10.0.0.0/28
NEXT_HOP: consumer-vpc-peering
PRIORITY: 0

9. Tworzenie strefy DNS (działanie konsumenta)

Aby przedstawić bardziej realistyczny przykład, utworzymy prywatną strefę Cloud DNS, aby wywoływać usługę producenta za pomocą DNS, a nie prywatnego adresu IP.

Dodamy rekord A do domeny example.com wskazujący service.example.com na adres IP reguły przekierowania przekazującego sieciowego systemu równoważenia obciążenia, którą utworzyliśmy wcześniej. Adres IP reguły przekierowania to 192.168.0.2.

Z Cloud Shell

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

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

gcloud dns record-sets transaction add 192.168.0.2 \
   --name=service.example.com \
   --ttl=300 \
   --type=A \
   --zone="producer-service"

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

10. Testowanie usługi producenta za pomocą połączenia równorzędnego VPC (aktywność konsumenta)

Na tym etapie architektura stanu 1 została utworzona.

Tworzenie maszyny wirtualnej klienta

Z Cloud Shell

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

Sprawdź połączenie

Z Cloud Shell

gcloud compute ssh \
    --zone "$zone" "consumer-client" \
    --tunnel-through-iap \
    --project $projectid

Z klienckiej maszyny wirtualnej konsumenta

curl service.example.com

Oczekiwane dane wyjściowe

I am a Producer Service. 

Z klienckiej maszyny wirtualnej konsumenta

exit

11. Przygotowywanie usługi do Private Service Connect (działania producenta)

Po wykonaniu wszystkich początkowych kroków konfiguracji zaczniemy przygotowywać usługę z połączeniem VPC do migracji do Private Service Connect. W tej sekcji wprowadzimy zmiany w sieci VPC producenta, konfigurując usługę tak, aby była udostępniana za pomocą przyłącza usługi. Musimy utworzyć nową podsieć i nową regułę przekierowania w tej podsieci, aby przenieść istniejącą podsieć do sieci VPC klienta i zachować dotychczasowy adres IP usługi.

Utwórz podsieć, w której będzie hostowany adres IP nowej reguły przekierowania systemu równoważenia obciążenia.

Z Cloud Shell

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

Utwórz wewnętrzny adres IP reguły przekierowania systemu równoważenia obciążenia.

Z Cloud Shell

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

Utwórz nową regułę przekierowania systemu równoważenia obciążenia. Ta reguła jest skonfigurowana tak, aby używać tej samej usługi backendu i tych samych kontroli stanu, które zostały skonfigurowane wcześniej.

Z Cloud Shell

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

Podsieć psc-nat-subnet będzie powiązana z przyłączem usługi PSC na potrzeby translacji adresów sieciowych. W przypadku środowisk produkcyjnych rozmiar tej podsieci musi być odpowiedni do obsługi liczby dołączonych punktów końcowych. Więcej informacji znajdziesz w dokumentacji dotyczącej rozmiaru podsieci NAT usługi PSC.

Z Cloud Shell

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

Musimy dodać do zasad zapory sieciowej dodatkową regułę zapory sieciowej, aby zezwolić na ruch z podsieci psc-nat-subnet. Podczas uzyskiwania dostępu do usługi za pomocą PSC ruch będzie pochodzić z podsieci psc-nat-subnet.

Z Cloud Shell

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

Utwórz przyłącze usługi i zanotuj jego identyfikator URI, aby skonfigurować punkt końcowy usługi PSC w następnej sekcji.

Z Cloud Shell

gcloud compute service-attachments create producer-sa \
    --region=$region \
    --producer-forwarding-rule=psc-service-fr  \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=$projectid=5 \
    --nat-subnets=psc-nat-subnet

Z Cloud Shell

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

Przykładowe dane wyjściowe

connectionPreference: ACCEPT_MANUAL
consumerAcceptLists:
- connectionLimit: 5
  projectIdOrNum: $projectid
creationTimestamp: '2025-04-24T11:23:09.886-07:00'
description: ''
enableProxyProtocol: false
fingerprint: xxx
id: 'xxx'
kind: compute#serviceAttachment
name: producer-sa
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/subnetworks/psc-nat-subnet
pscServiceAttachmentId:
  high: 'xxx'
  low: 'xxx'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/serviceAttachments/producer-sa
targetService: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/forwardingRules/psc-service-fr

12. Połącz punkt końcowy PSC konsumenta „test” z usługą producenta i przetestuj (aktywność konsumenta)

Architektura jest teraz w stanie 2.

Na tym etapie istniejąca usługa producenta udostępniana przez równorzędne połączenie sieci VPC nadal działa prawidłowo w środowisku produkcyjnym. Utworzymy punkt końcowy PSC „test”, aby upewnić się, że udostępniony element Service Attachment działa prawidłowo, zanim rozpoczniemy okres przerwy w działaniu usługi w celu przeniesienia bieżącej podsieci peeringu VPC do sieci VPC konsumenta. Docelowe połączenie będzie punktem końcowym PSC z tym samym adresem IP co obecna reguła przekierowania dla usługi opartej na równorzędnej komunikacji VPC.

Tworzenie punktu końcowego PSC

Z Cloud Shell

gcloud compute addresses create test-psc-endpoint-ip \
    --region=$region \
    --subnet=consumer-vm-subnet \
    --addresses 10.0.1.3

Usługa docelowa poniżej będzie identyfikatorem URI przyłącza usługi, który został zapisany w ostatnim kroku.

Z Cloud Shell

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

Testowanie punktu końcowego PSC „test”

Z Cloud Shell

gcloud compute ssh \
    --zone "$zone" "consumer-client" \
    --tunnel-through-iap \
    --project $projectid

Od klienta

curl 10.0.1.3

Oczekiwane dane wyjściowe

I am a Producer Service. 

Od klienta

exit

13. Migracja istniejącej podsieci reguły przekierowania producenta

Wykonanie tych czynności spowoduje przerwę w działaniu usługi producenta opartej na aktywnym połączeniu równorzędnym sieci VPC. Teraz przeniesiemy podsieć reguły przekierowania z sieci VPC producenta do sieci VPC konsumenta za pomocą interfejsu Internal Ranges API. Spowoduje to zablokowanie podsieci na okres przejściowy, w którym usuniemy ją z sieci VPC producenta i przeznaczymy wyłącznie do migracji w celu utworzenia jej w sieci VPC konsumenta.

Interfejs Internal Range API wymaga zarezerwowania istniejącej podsieci reguły przekierowania połączenia równorzędnego VPC (producer-fr-subnet, 192.168.0.0/28) i wyznaczenia nazwy podsieci docelowej w sieci VPC konsumenta (consumer-psc-subnet). W kilku krokach utworzymy nową podsieć w sieci VPC klienta o tej nazwie.

Zarezerwuj podsieć producer-fr-subnet na potrzeby migracji

Aktywność producenta

Z Cloud Shell

gcloud network-connectivity internal-ranges create producer-peering-internal-range \
    --ip-cidr-range=192.168.0.0/28 \
    --network=producer-vpc \
    --usage=FOR_MIGRATION \
    --migration-source=projects/$projectid/regions/$region/subnetworks/producer-fr-subnet \
    --migration-target=projects/$projectid/regions/$region/subnetworks/consumer-psc-subnet

Uruchom polecenie describe w utworzonym przez nas zakresie wewnętrznym, aby wyświetlić stan podsieci.

Aktywność producenta

Z Cloud Shell

gcloud network-connectivity internal-ranges describe producer-peering-internal-range

Przykładowe dane wyjściowe

createTime: '2025-04-24T19:26:10.589343291Z'
ipCidrRange: 192.168.0.0/28
migration:
  source: projects/$projectid/regions/$region/subnetworks/producer-fr-subnet
  target: projects/$projectid/regions/$region/subnetworks/consumer-psc-subnet
name: projects/$projectid/locations/global/internalRanges/producer-peering-internal-range
network: https://www.googleapis.com/compute/v1/projects/$project/global/networks/producer-vpc
peering: FOR_SELF
updateTime: '2025-04-24T19:26:11.521960016Z'
usage: FOR_MIGRATION

Usuwanie reguły przekierowania i podsieci na podstawie połączenia równorzędnego sieci VPC

Aktywność producenta

Z Cloud Shell

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

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

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

Migracja podsieci

Zmigruj podsieć do sieci VPC klienta, tworząc nową podsieć przy użyciu utworzonego wcześniej zakresu wewnętrznego. Nazwa tej podsieci musi być taka sama jak nazwa, na którą kierowaliśmy wcześniej (consumer-psc-subnet). Określony cel PEER_MIGRATION wskazuje, że podsieć jest zarezerwowana na potrzeby migracji podsieci między równorzędnymi sieciami VPC. Dzięki tej fladze przeznaczenia podsieć może zawierać tylko zarezerwowane statyczne adresy IP i punkty końcowe PSC.

Aktywność konsumentów

Z Cloud Shell

gcloud compute networks subnets create consumer-psc-subnet \
  --purpose=PEER_MIGRATION \
  --network=consumer-vpc \
  --range=192.168.0.0/28 \
  --region=$region

14. Tworzenie punktu końcowego PSC stanu końcowego (aktywność konsumenta)

W tym momencie usługa Producer nadal nie działa. Utworzona przez nas podsieć jest nadal zablokowana i może być używana tylko do migracji. Możesz to sprawdzić, próbując utworzyć maszynę wirtualną w tej podsieci. Nie uda się utworzyć maszyny wirtualnej.

Z Cloud Shell

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

Oczekiwane dane wyjściowe

ERROR: (gcloud.compute.instances.create) Could not fetch resource:
 - Subnetwork must have purpose=PRIVATE.

Tej podsieci możemy użyć tylko do utworzenia punktu końcowego PSC. Pamiętaj, że utworzony przez nas adres IP jest taki sam jak adres IP reguły przekierowania, której usługa producenta używała w sieci równorzędnej VPC.

Z Cloud Shell

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

Ponownie musisz użyć tego samego identyfikatora URI przyłącza usługi, który został wcześniej zapisany i użyty do utworzenia punktu końcowego PSC „test”.

Z Cloud Shell

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

15. Testowanie punktu końcowego PSC stanu końcowego (aktywność konsumenta)

W tym momencie masz architekturę stanu 3.

Z Cloud Shell

gcloud compute ssh \
    --zone "$zone" "consumer-client" \
    --tunnel-through-iap \
    --project $projectid

Z klienckiej maszyny wirtualnej konsumenta

curl service.example.com

Oczekiwane dane wyjściowe

I am a Producer Service. 

Z klienckiej maszyny wirtualnej konsumenta

exit

W tym momencie przerwa w działaniu usługi się skończyła i usługa znów działa. Pamiętaj, że nie musieliśmy wprowadzać żadnych zmian w dotychczasowym systemie DNS. Nie trzeba wprowadzać żadnych zmian po stronie klienta. Aplikacje mogą po prostu wznowić działanie w przeniesionej usłudze.

16. Czyszczenie po migracji

Aby zakończyć migrację, musimy wykonać kilka czynności porządkowych. Musimy usunąć i odblokować zasoby.

Odblokuj podsieć zakresu wewnętrznego

Spowoduje to odblokowanie zmigrowanej podsieci, aby można było zmienić jej przeznaczenie z „PEER_MIGRATION” na „PRIVATE”.

Aktywność producenta

Z Cloud Shell

gcloud network-connectivity internal-ranges delete producer-peering-internal-range

Aktywność konsumentów

Z Cloud Shell

gcloud compute networks subnets update consumer-psc-subnet \
    --region=$region \
    --purpose=PRIVATE

gcloud compute networks subnets describe consumer-psc-subnet --region=$region

Przykładowe dane wyjściowe

creationTimestamp: '2025-04-24T12:29:33.883-07:00'
fingerprint: xxx
gatewayAddress: 192.168.0.1
id: 'xxx'
ipCidrRange: 192.168.0.0/28
kind: compute#subnetwork
name: consumer-psc-subnet
network: https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/consumer-vpc
privateIpGoogleAccess: false
privateIpv6GoogleAccess: DISABLE_GOOGLE_ACCESS
purpose: PRIVATE
region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/subnetworks/consumer-psc-subnet

Usuń połączenia równorzędne VPC

Aktywność producenta

Z Cloud Shell

gcloud compute networks peerings delete producer-vpc-peering \
    --network=producer-vpc

Aktywność konsumentów

Z Cloud Shell

gcloud compute networks peerings delete consumer-vpc-peering \
        --network=consumer-vpc

Usuń punkt końcowy PSC „test”

Consumer-Activity

Z Cloud Shell

gcloud compute forwarding-rules delete test-psc-endpoint --region=$region
gcloud compute addresses delete test-psc-endpoint-ip --region=$region

17. Ostatni test po zakończeniu migracji (aktywność konsumentów)

W tym momencie osiągnięto architekturę stanu 4 (stan końcowy).

Ponownie przetestuj łączność punktu końcowego PSC, aby upeścić się, że po usunięciu migracji nie występują żadne niekorzystne efekty.

Z Cloud Shell

gcloud compute ssh \
    --zone "$zone" "consumer-client" \
    --tunnel-through-iap \
    --project $projectid

Z klienckiej maszyny wirtualnej konsumenta

curl service.example.com

Oczekiwane dane wyjściowe

I am a Producer Service. 

Z klienckiej maszyny wirtualnej konsumenta

exit

UDAŁO SIĘ!

18. Procedura czyszczenia

Z Cloud Shell

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 --zone=$zone --project=$projectid -q

gcloud dns record-sets delete service.example.com --zone="producer-service" --type=A -q

gcloud dns managed-zones delete "producer-service" -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-psc-subnet --region=$region -q

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

gcloud compute networks delete consumer-vpc -q

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

gcloud compute forwarding-rules delete psc-service-fr --region=$region -q

gcloud compute addresses delete producer-psc-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 prod-uig --zone=$zone -q

gcloud compute instances delete producer-service-vm --zone=$zone --project=$projectid -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 2001 --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-psc-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

  • Konfigurowanie usługi opartej na połączeniu równorzędnym sieci VPC
  • Jak skonfigurować usługę opartą na PSC
  • Używanie interfejsu Internal-Ranges API do przeprowadzania migracji podsieci przez połączenie równorzędne VPC w celu przeprowadzenia migracji usługi z połączenia równorzędnego VPC do usługi PSC.
  • Informacje o tym, kiedy podczas migracji usługi musi nastąpić przestój
  • Procedura zwalniania miejsca po migracji