Private Service Connect Değişkenliği Codelab'i

1. Giriş

Private Service Connect, tüketicilerin yönetilen hizmetlere VPC ağlarının içinden özel olarak erişmesine olanak tanıyan bir Google Cloud ağ iletişimi özelliğidir. Aynı şekilde, yönetilen hizmet üreticilerinin bu hizmetleri kendi ayrı VPC ağlarında barındırmasına ve tüketicilerine özel bir bağlantı sunmasına olanak tanır.

Şimdiye kadar, PSC hizmetleri bir hizmet eki aracılığıyla kullanıma sunulduktan sonra hizmet eki kaldırılmadan ve tüketici PSC uç nokta bağlantısı kesintiye uğratılmadan hizmet yük dengeleyicilerinde değişiklik yapılamıyordu. PSC değiştirilebilirliğinin kullanıma sunulmasıyla birlikte üreticiler, yük dengeleyicilerini PSC uç nokta bağlantısını koruyarak güncelleyebilir. Yük dengeleyiciyi değiştirirken PSC uç nokta bağlantısını hizmet ekine korumak, tüketici tarafında herhangi bir işlem yapılmasını gerektirmemesi açısından avantajlıdır.

Şu anda PSC değiştirilebilirliği aşağıdaki özellikleri desteklemektedir:

  • Aynı türden bir yük dengeleyici yönlendirme kuralına geçiş (ör. Ağ Geçişi - Ağ Geçişi)
  • Farklı türde bir yük dengeleyici yönlendirme kuralına taşıma (ör. Ağ Geçişi - Uygulama Yük Dengeleyicisi)

PSC değişkenliği, iletim kuralının yerinde düzenlenmesini desteklemez.

Bu laboratuvarda, dahili ağ geçişi yük dengeleyicisi aracılığıyla kullanıma sunulan bir üretici web hizmeti oluşturacak, hizmetin PSC uç noktası üzerinden bağlantısı olduğunu doğrulayacak ve ardından hizmet eki ilişkilendirmesini dahili uygulama yük dengeleyicisine yönelik yeni bir yönlendirme kuralıyla güncelleyeceksiniz.

Neler öğreneceksiniz?

  • PSC üretici hizmeti olarak kullanıma sunulan basit bir Apache web hizmeti oluşturun.
  • PSC uç noktası oluşturun.
  • Tüketici hizmeti çağrıları için Cloud DNS özel bölgesi oluşturun.
  • PSC Değişkenliği'ni kullanarak hizmet ekiyle ilişkili yönlendirme kuralını güncelleyin.

Gerekenler

  • Sahip izinlerine sahip bir Google Cloud projesi
  • Google Cloud Networking hakkında temel bilgiler

2. Test Ortamı

Geleneksel olarak, üreticiler ve tüketiciler farklı projelerde çalışır. Basitlik için tüm işlemleri aynı projede yapacağız ancak kullanıcı farklı projelerde çalışmayı tercih ederse her adım Üretici veya Tüketici projeleriyle etiketlenecektir.

Bu laboratuvarda, üç alt ağı bulunan producer-vpc oluşturarak başlayacağız. Bu alt ağlardan biri üretici hizmetine ve test sanal makinesine, biri yük dengeleyici yönlendirme kurallarına, biri de PSC NAT alt ağına ev sahipliği yapacak. Linux paketlerini indirmek için internete erişilebilirlik amacıyla bir Cloud Router ve Cloud NAT'ye ihtiyacımız olacak. Yönetilmeyen bir örnek grubu aracılığıyla yapılandırılan Apache hizmetimizi, dahili bölgesel bir Ağ Geçişi yük dengeleyicisi üzerinden kullanıma sunacağız ve iletim kuralını bir hizmet ekiyle ilişkilendireceğiz.

Tüketici tarafında, PSC uç noktamızı ve bir test istemcisi sanal makinesini barındırmak için tek bir alt ağa sahip consumer-vpc oluşturacağız. Hizmete ana makine adı üzerinden erişmek için Cloud DNS özel bölgesi yapılandıracağız.

PSC Değişkenlik özelliğini göstermek için üretici tarafında iki ek alt ağ ekleyeceğiz. Bunlardan biri yeni hizmet sanal makinesini, diğeri ise yük dengeleyici proxy'si için yalnızca proxy alt ağını barındıracak. Yine yönetilmeyen bir örnek grubu aracılığıyla yapılandırılmış bir Apache web sunucusunun barındırıldığı yeni bir sanal makine oluşturup yeni bir dahili bölgesel uygulama yük dengeleyicisi üzerinden kullanıma sunacağız. Hizmet ekini, yeni yönlendirme kuralını gösterecek şekilde güncelleyeceğiz ve tüketici tarafındaki bağlantının devam ettiğini test edeceğiz.

683e2b440a0cc07f.png

3. Kurulum ve Gereksinimler

Yönlendirmesiz ortam kurulumu

  1. Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Bu bilgiyi istediğiniz zaman güncelleyebilirsiniz.
  • Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğinize (genellikle PROJECT_ID olarak tanımlanır) başvurmanız gerekir. Oluşturulan kimliği beğenmezseniz başka bir rastgele kimlik oluşturabilirsiniz. Dilerseniz kendi adınızı deneyerek kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu adım tamamlandıktan sonra değiştirilemez ve proje süresince geçerli kalır.
  • Bazı API'lerin kullandığı üçüncü bir değer olan Proje Numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
  1. Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırılmayı önlemek için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.

Cloud Shell'i başlatma

Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

Google Cloud Console'da sağ üstteki araç çubuğunda Cloud Shell simgesini tıklayın:

Cloud Shell'i etkinleştirme

Ortamın temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır. İşlem tamamlandığında aşağıdakine benzer bir sonuç görürsünüz:

Ortamın bağlandığını gösteren Google Cloud Shell terminalinin ekran görüntüsü

Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu codelab'deki tüm çalışmalarınızı tarayıcıda yapabilirsiniz. Herhangi bir şey yüklemeniz gerekmez.

4. Başlamadan önce

API'leri etkinleştir

Cloud Shell'de proje kimliğinizin ayarlandığından emin olun.

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

Gerekli tüm hizmetleri etkinleştirin

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

5. Yapımcı Ağı Oluşturma [Yapımcı Projesi]

VPC ağı oluşturma

Cloud Shell'den

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

Alt ağ oluşturma

Öncelikle producer-vpc'ye 3 alt ağ dağıtacağız. Biri üretici hizmetini dağıtmak, biri yük dengeleyici iletim kuralları için, biri de PSC NAT alt ağımız için PSC hizmet ekiyle ilişkilendirilecek şekilde üç alt ağ oluşturacağız.

Cloud Shell'den

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

Cloud NAT oluşturma

Üretici hizmetlerimiz için uygun paketlerin yüklenmesi amacıyla Cloud NAT gereklidir.

Cloud Shell'den

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

Cloud Shell'den

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

Ağ Güvenlik Duvarı Politikası ve Kuralları Oluşturma

Cloud Shell'den

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

IAP'nin sanal makine örneklerinize bağlanmasına izin vermek için aşağıdaki özellikleri içeren bir güvenlik duvarı kuralı oluşturun:

  • IAP kullanarak erişmek istediğiniz tüm sanal makine örnekleri için geçerlidir.
  • 35.235.240.0/20 IP aralığından gelen giriş trafiğine izin verir. Bu aralık, IAP'nin TCP yönlendirme için kullandığı tüm IP adreslerini içerir.

Cloud Shell'den

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

Üç güvenlik duvarı kuralıyla başlayacağız. Biri yük dengeleyici durum denetimleri için sanal makinelere erişime (2000), biri PSC NAT aralığından sanal makinelere erişime (3000), diğeri ise test amacıyla hizmet alt ağındaki sanal makineler arasında bağlantıya (4000) izin verir. Hizmetimiz için bu bağlantı noktasını kullanacağımızdan 80 numaralı bağlantı noktasıyla ilgili tüm kuralları oluşturacağız.

Cloud Shell'den

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. Üretici hizmeti oluşturma [Üretici projesi]

"I am a Producer Service" (Ben bir Üretici Hizmetiyim) mesajını gösteren, yönetilmeyen bir örnek grubu kullanarak basit bir Apache web hizmeti oluşturacağız.

Örnek Oluştur

Cloud Shell'den

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'

Yönetilmeyen Örnek Grubu Oluşturma

Cloud Shell'den

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

producer-service-vm'yi yeni oluşturduğumuz yönetilmeyen örnek grubuna ekleyin.

Cloud Shell'den

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

Yük Dengeleyici Bileşenleri Oluşturma

Üretici hizmetinin 1. sürümünde, hizmeti 80 numaralı bağlantı noktasında bir Ağ Geçişi Yük Dengeleyicisi kullanarak kullanıma sunacağız.

80 numaralı bağlantı noktası için durum denetimini dağıtın.

Cloud Shell'den

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

Arka uç hizmetini dağıtın ve arka ucu arka uç hizmetine ekleyin.

Cloud Shell'den

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

Yük dengeleyici iletim kuralı için kullanılacak statik IP adresini oluşturun.

Cloud Shell'den

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

Daha önce oluşturduğumuz arka uç hizmetini ve IP adresini kullanarak 80 numaralı bağlantı noktasını kullanıma sunan yük dengeleyici iletim kuralını oluşturun.

Cloud Shell'den

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. Üretici Hizmetini Test Etme [Üretici Projesi]

producer-service-subnet'te bir test sanal makinesi oluşturun, sanal makineye giriş yapın ve Apache hizmetine yapılan bir çağrıyı test edin.

Cloud Shell'den

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

Cloud Shell'den

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

Beklenen çıktı

I am a Producer Service.

8. Üretici Hizmetini Hizmet Eki Aracılığıyla Kullanıma Sunma [Üretici Projesi]

Hizmet ekini oluşturun. Bu kuralı, psc-nat-subnet kullanarak oluşturduğumuz iletme kuralıyla ilişkilendirin.

Cloud Shell'den

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

Servis eki URI'sini (selfLink) not almanız gerekir. Bu URI, PSC uç noktası yapılandırması için sonraki adımlarda gereklidir. Bu kimliği Cloud Shell'de aşağıdaki komutu çalıştırarak edinebilirsiniz.

Cloud Shell'den

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

Örnek çıktı

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

projects ile başlayan URI'yi kopyalayın.

Örnek: projects/$project/regions/$region/serviceAttachments/producer-attachment

9. Tüketici Ağı Oluşturma [Tüketici Projesi]

VPC ağı oluşturma

Cloud Shell'den

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

Alt Ağ Oluştur

PSC uç noktasını ve bir test istemcisi sanal makinesini dağıtacağımız tek bir alt ağ dağıtılır.

Cloud Shell'den

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

Ağ Güvenlik Duvarı Politikası ve Kuralları Oluşturma

Cloud Shell'den

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

Ayrıca, tüketici VPC'sini SSH için IAP kullanacak şekilde yapılandıracağız.

Cloud Shell'den

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. Private Service Connect uç noktasını oluşturun [Tüketici Projesi]

PSC uç noktası için kullanılacak statik IP adresini ayırın.

Cloud Shell'den

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

Daha önce belirttiğimiz ayrılmış statik IP adresini ve hizmet eki URI'sini kullanarak PSC uç noktasını oluşturun.

Cloud Shell'den

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. PSC uç noktası için özel DNS bölgesi yapılandırma [Tüketici Projesi]

Cloud DNS'yi kullanarak PSC uç noktamızla kullanılacak myservice.com DNS adıyla gizli bir DNS bölgesi yapılandıracağız.

Cloud Shell'den

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"

myservice.com için bir A kaydı oluşturun ve bunu PSC uç noktası IP adresine yönlendirin.

Cloud Shell'den

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. PSC uç noktasını test etme [Tüketici Projesi]

İstemci sanal makinesi oluşturma

Cloud Shell'den

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

PSC uç nokta bağlantısını test etme

Cloud Shell'den

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

Beklenen çıktı

I am a Producer Service.

Bu kod laboratuvarının bir sonraki bölümünde, tüketici tarafı yapılandırmasında herhangi bir güncelleme gerektirmeden bu sorunsuz güncellemeyi sağlayan PSC Değişkenlik özelliğini göstererek yeni üretici hizmetini oluşturup bu hizmete geçiş yapacağız.

13. Güncellenmiş Üretici Hizmeti Oluşturma [Üretici Projesi]

Üretici hizmetimizi güncellemek için "I am a NEW Producer service" (Ben YENİ bir üretici hizmetiyim) mesajını içeren benzer bir Apache web sunucusunu çalıştıran yeni bir sanal makine dağıtacağız. Bu sanal makineyi yeni bir yönetilmeyen örnek grubuna ekleyip bu yönetilmeyen örnek grubunu yeni yük dengeleyicimizin arka ucu olarak kullanacağız. Ağ Geçişi yük dengeleyicisi kullanmak yerine yük dengeleyicimizi bölgesel bir dahili uygulama yük dengeleyicisi olarak güncelleyeceğiz.

Ağı güncelleme

Uygulama yük dengeleyicisi için yalnızca proxy alt ağı olarak kullanılacak yeni bir alt ağ oluşturun.

Cloud Shell'den

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

Yeni hizmetimizin barındırılacağı yeni bir alt ağ oluşturun.

Cloud Shell'den

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

Yalnızca proxy kullanılan alt ağdan yeni üretici hizmetimize bağlantıya izin verecek yeni bir güvenlik duvarı kuralı oluşturun.

Cloud Shell'den

 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

Örnek Oluştur

Cloud Shell'den

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'

Yönetilmeyen Örnek Grubu Oluşturma

Cloud Shell'den

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

Yeni Yük Dengeleyici Bileşenleri Oluşturma

Arka uç hizmetini oluşturun. Dahili uygulama yük dengeleyicisine güncelleme yaptığımız için INTERNAL_MANAGED yük dengeleme şemasını kullandığımızı unutmayın.

Cloud Shell'den

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

Yönetilmeyen örnek grubunu arka uç hizmetine arka uç olarak ekleyin.

Cloud Shell'den

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

URL eşlemesini ve hedef HTTP proxy'lerini oluşturun.

Cloud Shell'den

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

İletim kuralımız için kullanacağımız statik IP adresini oluşturun. Bu, orijinal yönlendirme kuralı için kullandığımız alt ağdan gelir.

Cloud Shell'den

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

İletim kuralını oluşturun.

Cloud Shell'den

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. Güncellenmiş Üretici Hizmetini Test Etme [Üretici Projesi]

İlk dağıtılan hizmeti test etmek için oluşturduğumuz test sanal makinesini kullanacağız.

Cloud Shell'den

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

Güncellenmiş bir IP adresini aradığımızı unutmayın. 192.168.0.3, bölgesel dahili uygulama yük dengeleyicimizin IP adresidir.

Beklenen çıktı

I am a NEW Producer Service.

15. Hizmet ekini güncelleme [Üretici Projesi]

Hizmet eki yönlendirme kuralındaki güncellemeyi daha iyi görselleştirmek için değişiklikten önce ve sonra hizmet ekinde bir açıklama çalıştırabiliriz.

Cloud Shell'den

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

Beklenen çıktı

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

Hizmet ekini güncelleyin.

Cloud Shell'den

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

Yeni yönlendirme kuralını görmek için şimdi tekrar açıklama komutunu çalıştırın.

Cloud Shell'den

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

Beklenen çıktı

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

16. Tüketici PSC bağlantısını yeniden test etme [Tüketici Projesi]

Aynı tüketici istemcisine giriş yapın.

Cloud Shell'den

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

Beklenen çıktı

 I am a NEW Producer Service.

Tebrikler! Bir PSC üretici hizmeti yük dengeleyicisini başarıyla güncellediniz ve tüketici tarafında herhangi bir yapılandırma değişikliği yapmanız gerekmedi.

17. Temizleme adımları [Tüketici Projesi]

Tek bir Cloud Shell terminalinden laboratuvar bileşenlerini silme

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. Temizleme adımları [Producer Project]

Tek bir Cloud Shell terminalinden laboratuvar bileşenlerini silme

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. Tebrikler!

Codelab'i tamamladığınız için tebrik ederiz.

İşlediğimiz konular

  • PSC üretici hizmeti olarak kullanıma sunulan basit bir Apache web hizmeti oluşturun.
  • PSC uç noktası oluşturun.
  • Tüketici hizmeti çağrıları için Cloud DNS özel bölgesi oluşturun.
  • PSC Değişkenliği'ni kullanarak hizmet ekiyle ilişkili yönlendirme kuralını güncelleyin.