Lab: NCC PSC Yayılımı

1. Giriş

Genel Bakış

Bu laboratuvarda kullanıcılar, Network Connectivity Center'ın hub'ının Private Service Connect uç noktasını VPC kollarına nasıl yaydığını keşfedecek.

Merkez kaynağı, VPC kolu trafiğini PSC uç noktalarına bağlamak için merkezi bir bağlantı yönetimi modeli sağlar.

Ne oluşturacaksınız?

Bu codelab'de, bir Private Service Connect uç noktasını Cloud SQL örneğine yayacak bir NCC ağı oluşturacaksınız.

74bf390e323ea3bb.png

Neler öğreneceksiniz?

  • Cloud SQL örneğine bağlanmak için Private Service Connect'i kullanma
  • Birden fazla VPC ağından ağ bağlantısına izin vermek için PSC alt ağını tüm VPC kollarına yaymak üzere NCC hub'ı kullanın.

İhtiyacınız olanlar

  • GCP Cloud Networking bilgisi
  • Cloud SQL ile ilgili temel bilgiler
  • Google Cloud projesi
  • Kota:Ağlar seçeneğini kontrol edin ve gerekirse ek ağ isteyin. Aşağıdaki ekran görüntüsünde bu işlem gösterilmektedir:

6bc606cb34bce7e8.png

Hedefler

  • GCP ortamını ayarlama
  • Private Service Connect ile MySQL için Cloud SQL örneği oluşturma
  • PSC uç noktalarını yaymak için Network Connectivity Center Hub'ı yapılandırma
  • VPC'yi dağıtım merkezi olarak kullanarak Network Connectivity Center'ı yapılandırma
  • Veri Yolunu Doğrulama
  • NCC'nin servis verilebilirliği özelliklerini keşfedin
  • Kaynakları temizleme

Başlamadan önce

Google Cloud Console ve Cloud Shell

GCP ile etkileşim kurmak için bu laboratuvar boyunca hem Google Cloud Console hem de Cloud Shell'i kullanacağız.

NCC Hub Project Google Cloud Console

Cloud Console'a https://console.cloud.google.com adresinden ulaşabilirsiniz.

Ağ Bağlantısı Merkezi'ni yapılandırmayı kolaylaştırmak için Google Cloud'da aşağıdaki öğeleri ayarlayın:

Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.

Cloud Shell'i başlatın. Bu Codelab'de, Cloud Shell'de gcloud yapılandırmasının uygulanmasına yardımcı olmak için $variables kullanılır.

gcloud auth list
gcloud config list project
gcloud config set project $project
project=[YOUR-PROJECT-NAME]
echo $project

IAM Rolleri

NCC, belirli API'lere erişmek için IAM rollerini gerektirir. Kullanıcınızı gerektiği gibi NCC IAM rolleriyle yapılandırdığınızdan emin olun.

Rol/Açıklama

İzinler

networkconnectivity.networkAdmin: Ağ yöneticilerinin hub ve kolları yönetmesine olanak tanır.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager: Bir hub'a spoke eklemeye ve spoke'ları yönetmeye izin verir. Ana makine projesinin Hub'a sahip olduğu ancak diğer projelerdeki diğer yöneticilerin ekleri için Hub'a bağlı ağlar ekleyebildiği Paylaşılan VPC'de kullanılır.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer: Ağ kullanıcılarının hub ve spoke'ların farklı özelliklerini görüntülemesine olanak tanır.

networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList

2. Ağ ortamını ayarlama

Genel Bakış

Bu bölümde, iki VPC ağını ve güvenlik duvarı kurallarını tek bir projede dağıtacağız. Mantıksal diyagram, bu adımda kurulacak ağ ortamını gösterir.

8884a55988881e17.png

VPC1 ve bir alt ağ oluşturun

VPC ağı, veri yolu doğrulaması için GCE VM'yi yükleyeceğiniz alt ağları içerir.

vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="subnet1"
vpc_spoke_subnet_ip_range="10.0.1.0/24"
region="us-central1"
zone="us-central1-a"

gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom \

gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}" 

VPC'de PSC alt ağı oluşturma

PSC-EP'ye ayrılacak VPC spoke'unda bir alt ağ oluşturmak için aşağıdaki komutu kullanın.

vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
vpc_spoke_subnet_ip_range="192.168.0.0/24"

gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}" 

VPC3 ve alt ağ oluşturma

vpc_spoke_network_name="vpc3-spoke"
vpc_spoke_subnet_name="subnet3"
vpc_spoke_subnet_ip_range="10.0.3.0/24"
region="us-central1"
zone="us-central1-a"

gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom \

gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"

VPC1'in Güvenlik Duvarı Kurallarını Yapılandırma

Bu kurallar, RFC1918 ve Identity Access Proxy aralıklarından ağ bağlantısına izin verir.

vpc_spoke_network_name="vpc1-spoke"

gcloud compute firewall-rules create vpc1-allow-all \
--network="${vpc_spoke_network_name}" \
--allow=all \
--source-ranges=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

gcloud compute firewall-rules create vpc1-allow-iap \
--network="${vpc_spoke_network_name}" \
--allow all \
--source-ranges 35.235.240.0/20

Yönlendirme VPC'sini ve VPC güvenlik duvarı kurallarını yapılandırma

vpc_spoke_network_name="vpc3-spoke"

gcloud compute firewall-rules create vpc3-allow-all \
--network="${vpc_spoke_network_name}" \
--allow=all \
--source-ranges=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

gcloud compute firewall-rules create vpc3-allow-iap \
--network="${vpc_spoke_network_name}" \
--allow all \
--source-ranges 35.235.240.0/20

VPC1'de GCE sanal makinesini yapılandırma

Paketleri yüklemek için geçici internet erişimine ihtiyacınız olacağından örneği harici IP adresi kullanacak şekilde yapılandırın.

vm_vpc1_spoke_name="csql-vpc1-vm"
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="subnet1"
region="us-central1"
zone="us-central1-a"

gcloud compute instances create "${vm_vpc1_spoke_name}" \
--machine-type="e2-medium" \
--subnet="${vpc_spoke_subnet_name}" \
--zone="${zone}" \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y default-mysql-client'

VPC3'te GCE sanal makinesini yapılandırma

Paketleri yüklemek için geçici internet erişimine ihtiyacınız olacağından örneği harici IP adresi kullanacak şekilde yapılandırın.

vm_vpc_spoke_name="csql-vpc3-vm"
vpc_spoke_network_name="vpc3-spoke"
vpc_spoke_subnet_name="subnet3"
region="us-central1"
zone="us-central1-a"

gcloud compute instances create "${vm_vpc_spoke_name}" \
--machine-type="e2-medium" \
--subnet="${vpc_spoke_subnet_name}" \
--zone="${zone}" \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y default-mysql-client'

3. Cloud SQL örneğini oluşturma

Örnek oluşturmak ve Private Service Connect'i etkinleştirmek için aşağıdaki komutları kullanın .

Bu işlem birkaç dakika sürer.

gcloud config set project ${project}

gcloud sql instances create mysql-instance \
--project="${project}" \
--region=us-central1 \
--enable-private-service-connect \
--allowed-psc-projects="${project}" \
--availability-type=zonal \
--no-assign-ip \
--tier=db-f1-micro \
--database-version=MYSQL_8_0 \
--enable-bin-log

Cloud SQL örneğinin hizmet eki URI'sini belirleyin.

Private Service Connect'in etkin olduğu bir örnekle ilgili bilgileri görüntülemek için gcloud sql instances describe komutunu kullanın. Örneğin hizmet ekine işaret eden URI'yi gösteren pscServiceAttachmentLink alanını not edin. Bu bilgiye sonraki bölümde ihtiyacımız olacak.

gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)'

4. Cloud SQL'e PSC uç noktası

PSC uç noktası için dahili bir IP adresi ayırma

Private Service Connect uç noktası için dahili IP adresi ayırmak üzere aşağıdaki komutu kullanın.

region="us-central1"
vpc_spoke_subnet_name="csql-psc-subnet"

gcloud compute addresses create csql-psc-ip \
--subnet="${vpc_spoke_subnet_name}" \
--region="${region}" \
--addresses=192.168.0.253

Ayrılmış IP adresiyle ilişkili arayın. Bu, iletme kuralı yapılandırmasında kullanılır.

gcloud compute addresses list \
--filter="name=csql-psc-ip"

VPC1'de Private Service Connect iletim kuralını oluşturun

Private Service Connect uç noktasını oluşturmak ve Cloud SQL hizmet ekine yönlendirmek için aşağıdaki komutu kullanın.

vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
csql_psc_ep_name="csql-psc-ep"
sa_uri=$(gcloud sql instances describe mysql-instance \
  --format='value(pscServiceAttachmentLink)')
echo "$sa_uri"

gcloud compute forwarding-rules create "${csql_psc_ep_name}" \
--address=csql-psc-ip \
--region="${region}" \
--network="${vpc_spoke_network_name}" \
--target-service-attachment="${sa_uri}" \
--allow-psc-global-access

cSQL hizmeti eklerinin uç noktayı kabul ettiğini doğrulamak için aşağıdaki komutu kullanın.

gcloud compute forwarding-rules describe csql-psc-ep \
--region=us-central1 \
--format='value(pscConnectionStatus)'

VPC1'den MySQL'e giden veri yolunu doğrulayın.

Yeni bir Cloud SQL örneği oluşturduğunuzda, örneğe bağlanabilmek için varsayılan kullanıcı hesabına bir şifre belirlemeniz gerekir.

gcloud sql users set-password root \
--host=% \
--instance=mysql-instance \
--prompt-for-password

Cloud SQL'in hizmet ekiyle ilişkili PSC uç noktasının IP adresini bulmak için aşağıdaki komutu kullanın.

gcloud compute addresses describe csql-psc-ip \
--region=us-central1 \
--format='value(address)'

VPC1'deki bir sanal makineden Cloud SQL örneğine bağlanma

csql-vpc1-vm için bir SSH oturumu açın.

gcloud compute ssh csql-vpc1-vm \
--zone=us-central1-a \
--tunnel-through-iap

Cloud SQL örneğine bağlanmak için aşağıdaki komutu kullanın. İstendiğinde yukarıdaki adımda oluşturulan şifreyi girin.

mysql -h 192.168.0.253 -u root -p 

Aşağıdaki çıkış, başarılı bir girişin ardından gösterilir.

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 8350
Server version: 8.0.31-google (Google)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 

MySQL'de varsayılan olarak oluşturulan veritabanlarını doğrulamak için show databases; komutunu kullanın.

MySQL [(none)]> show databases;

VPC3'teki bir sanal makineden Cloud SQL örneğine bağlanma

csql-vpc3-vm için bir SSH oturumu açın.

gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap

Cloud SQL örneğine bağlanmak için aşağıdaki komutu kullanın. İstendiğinde yukarıdaki adımda oluşturulan şifreyi girin.

mysql -h 192.168.0.253 -u root -p 

VPC3'te bulunan sanal makineden gelen oturum, VPC3'ten Private Service Connect uç noktasına veri yolu olmadığından başarısız olur. Oturumdan çıkmak için tuş vuruşlarını kullanın.

Ctrl + C

5. Network Connectivity Center Hub

Genel Bakış

Bu bölümde, gcloud komutlarını kullanarak bir NCC Hub'ı yapılandıracağız. NCC Hub, VPC kolları ile Private Service Connect uç noktası arasındaki veri yolunu oluşturmaktan sorumlu kontrol düzlemi olarak görev yapar.

b615efa4bad5f86.png

API hizmetlerini etkinleştirme

Henüz etkinleştirilmemişse ağ bağlantısı API'sini etkinleştirin:

gcloud services enable networkconnectivity.googleapis.com

NCC Hub oluşturma

NCC hub'ı oluşturmak için aşağıdaki gcloud komutunu kullanın. "–export-psc" işareti, NCC Hub'a bilinen PSC uç noktalarını tüm VPC spoke'larına yaymasını bildirir.

hub_name="ncc-hub"
gcloud network-connectivity hubs create "${hub_name}" \
--export-psc

Yeni oluşturulan NCC Hub'ı açıklayın. Adı ve ilişkili yolu not edin.

gcloud network-connectivity hubs describe ncc-hub

VPC1'i NCC kolu olarak yapılandırma

hub_name="ncc-hub"
vpc_spoke_name="sql-vpc1-spoke"
vpc_spoke_network_name="vpc1-spoke"

gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global

VPC3'ü NCC kolu olarak yapılandırma

hub_name="ncc-hub"
vpc_spoke_name="sql-vpc3-spoke"
vpc_spoke_network_name="vpc3-spoke"

gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global

NCC Hub'ın rota tablosunda PSC alt ağına giden bir rota olup olmadığını kontrol etmek için aşağıdaki komutu kullanın.

gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub

6. NCC veri yolunu doğrulama

Bu adımda, NCC hibrit ile VPC spoke arasındaki veri yolunu doğrulayacağız.

NCC'nin Cloud SQL örnekleri PSC uç noktasına veri yolu yapılandırmasını doğrulama

Şirket içi sanal makineye giriş yapmak için bu gcloud komutlarının çıktısını kullanın.

 gcloud compute instances list --filter="name=csql-vpc3-vm" 

Şirket içi ağda bulunan sanal makine örneğine giriş yapın.

gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap

Cloud SQL örneğine bağlanmak için aşağıdaki mysql komutunu kullanın. İstendiğinde yukarıdaki adımda oluşturulan şifreyi girin.

mysql -h 192.168.0.253 -u root -p 

Aşağıdaki çıkış, başarılı bir girişin ardından gösterilir.

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 8501
Server version: 8.0.31-google (Google)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.005 sec)

MySQL'de varsayılan olarak oluşturulan veritabanlarını doğrulamak için show databases; komutunu kullanın.

MySQL [(none)]> show databases;

7. Temizleme

Cloud Shell'e giriş yapın ve GCP kaynaklarını silin.

Cloud SQL PSC uç noktalarını silme

gcloud compute forwarding-rules delete csql-psc-ep \
--region=us-central1 \
--quiet

gcloud compute addresses delete csql-psc-ip \
--region=us-central1 \
--quiet

gcloud compute networks subnets delete csql-psc-subnet \
--region=us-central1 \
--quiet

Cloud SQL örneğini silme

gcloud sql instances delete mysql-instance --quiet

Güvenlik duvarı kurallarını silme

vpc_spoke_network_name="vpc3-spoke"

gcloud compute firewall-rules delete vpc3-allow-all \ --network="${vpc_spoke_network_name}" 
gcloud compute firewall-rules delete vpc3-allow-iap \ --network="${vpc_spoke_network_name}"
vpc_spoke_network_name="vpc1-spoke"

gcloud compute firewall-rules delete vpc1-allow-all \ --network="${vpc_spoke_network_name}"
gcloud compute firewall-rules delete vpc1-allow-iap \ --network="${vpc_spoke_network_name}"

VPC1 ve VPC3'teki GCE örneklerini silme

vm_vpc1_spoke_name="csql-vpc1-vm"
zone="us-central1-a"
gcloud compute instances delete "${vm_vpc1_spoke_name}" \
--zone="${zone}" \
--quiet


vm_vpc_spoke_name="csql-vpc3-vm"
zone="us-central1-a"
gcloud compute instances delete "${vm_vpc_spoke_name}" \
--zone="${zone}" --quiet

NCC merkezlerini silme

vpc_spoke_name="sql-vpc1-spoke"
gcloud network-connectivity spokes delete "${vpc_spoke_name}" \
--global \  
--quiet
vpc_spoke_name="sql-vpc3-spoke"
gcloud network-connectivity spokes delete "${vpc_spoke_name}" \
--global \  
--quiet

NCC Hub'ı silme

hub_name="ncc-hub"
gcloud network-connectivity hubs delete "${hub_name}" \
  --project=${project}

Tüm VPC'lerdeki alt ağları silme

vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"

gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \ 
--region="${region}" \
--quiet
vpc_spoke_subnet_name="subnet1"
region="us-central1"

gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \ 
--region="${region}" \
--quiet
vpc_spoke_subnet_name="subnet3"
region="us-central1"

gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \ 
--region="${region}" \
--quiet

VPC1 ve VPC3'ü silin

gcloud compute networks delete vpc1-spoke vpc3-spoke 

8. Tebrikler!

Network Connectivity Center ile Private Service Connect yayma laboratuvarını tamamladınız.

İşlediğiniz konular

  • Network Connectivity Center ile Private Service Connect uç noktası yayılımı

Sonraki Adımlar