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