Lab: NCC PSC Yayılımı

1. Giriş

Genel Bakış

Bu laboratuvarda kullanıcılar, Network Connectivity Center'ın merkezinin bir Private Service Connect uç noktasını VPC kollara nasıl dağıttığını keşfedecekler.

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

Oluşturacağınız uygulama

Bu codelab'de, özel bir Service Connect uç noktasını Cloud SQL örneğine dağıtacak 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ğının ağ bağlantısına izin vermek için PSC alt ağını tüm VPC kollarına dağıtmak üzere NCC merkezini kullanın.

İhtiyacınız olanlar

  • GCP Cloud Networking hakkında bilgi
  • Cloud SQL ile ilgili Temel Bilgiler
  • Google Cloud projesi
  • Kota:Ağlar'ı kontrol edin ve gerekirse ek ağlar isteyin. Ekran görüntüsü aşağıda verilmiştir:

6bc606cb34bce7e8.png

Hedefler

  • GCP ortamını ayarlama
  • Private Service Connect ile MySQL için Cloud SQL örneği oluşturma
  • PSC uç noktalarını dağıtmak için Network Connectivity Center Hub'ı yapılandırma
  • Ağ Bağlantısı Merkezi'ni, VPC ile konuşmalı olarak yapılandırma
  • Veri Yolunu Doğrulama
  • NCC servis edilebilirlik özelliklerini keşfedin
  • Kaynakları temizleme

Başlamadan önce

Google Cloud Console ve Cloud Shell

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

NCC Hub Projesi 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 değişkenleri 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 rolleri 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 merkeze kola eklemenize ve bunları yönetmenize olanak tanır. Ana makine projesinin Hub'ın sahibi olduğu ancak diğer projelerdeki diğer yöneticilerin Hub'a ekleriyle ilgili bağlantılar ekleyebildiği Paylaşılan VPC'de kullanılır.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer: Ağ kullanıcılarının merkez ve kollar arasındaki farklı özellikleri 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 projeye dağıtacağız. Mantıksal diyagram, bu adımda ayarlanacak ağ ortamını gösterir.

8884a55988881e17.png

VPC1 ve bir alt ağ oluşturma

VPC ağı, veri yolu doğrulaması için GCE sanal makinesini 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

VPC ağında PSC-EP'ye ayrılacak 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 bir 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 tanımlama

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 ekini 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 için PSC uç noktası

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

Özel 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 İSİM'i arayın. Bu, yönlendirme kuralı yapılandırmasında kullanılır.

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

VPC1'de Private Service Connect Yönlendirme Kuralı oluşturma

Private Service Connect uç noktasını oluşturmak ve Cloud SQL hizmet eki için yönlendirmek üzere 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 hizmet eki 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ğrulama

Yeni bir Cloud SQL örneği oluşturduğunuzda, örneği bağlayabilmek için varsayılan kullanıcı hesabı için bir şifre ayarlamanız gerekir.

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

Cloud SQL'in hizmet eki ile 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 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 

Başarılı bir girişten sonra aşağıdaki çıkış 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ığı için başarısız olur. Oturumdan çıkmak için tuş vuruşlarını kullanın.

Ctrl + C

5. Network Connectivity Center Merkezi

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 hizmet eder.

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 merkezi oluşturma

NCC merkezi 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 kollarına dağıtmasını söyler.

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

Yeni oluşturulan NCC Hub'ı tanımlayın. Adı ve ilişkili yolu not edin.

gcloud network-connectivity hubs describe ncc-hub

VPC1'i NCC ağı 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 ağı 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

PSC alt ağına giden bir rota olup olmadığını kontrol etmek için NCC Hub'ın rota tablosunu kontrol etmek üzere 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 karma ve VPC ağı arasındaki veri yolunu doğrulayacağız.

Cloud SQL örnekleri PSC uç noktasına yönelik NCC yapılandırılmış veri yolunu 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 

Başarılı bir girişten sonra aşağıdaki çıkış 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 üyeleriyle olan bağlantıları 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'ü silme

gcloud compute networks delete vpc1-spoke vpc3-spoke 

8. Tebrikler!

Network Connectivity Center Lab ile Private Service Connect dağıtımını tamamladınız.

İşlediğiniz konular

  • Network Connectivity Center ile Private Service Connect uç noktası yayma

Sonraki Adımlar