1. Введение
Обзор
В ходе этой лабораторной работы пользователи изучат, как концентратор Network Connectivity Center распространяет конечную точку Private Service Connect на периферийные устройства VPC.
Ресурс концентратора обеспечивает централизованную модель управления подключениями для соединения трафика периферийных устройств VPC с конечными точками PSC.
Что ты построишь
В этой лабораторной работе вы построите сеть NCC, которая будет передавать конечную точку подключения частной службы к экземпляру Cloud SQL.
Что вы узнаете
- Используйте Private Service Connect для подключения к экземпляру Cloud SQL.
- Используйте концентратор NCC для распространения подсети PSC на все периферийные устройства VPC, чтобы обеспечить сетевое подключение из нескольких сетей VPC.
Что вам понадобится
- Знание облачных сетей GCP
- Базовые знания Cloud SQL
- Облачный проект Google
- Проверьте свою «Квоту: Сети» и при необходимости запросите дополнительные сети, скриншот ниже:
Цели
- Настройка среды GCP
- Настройка экземпляра Cloud SQL для MySql с помощью Private Service Sonnect
- Настройка концентратора Network Connectivity Center для распространения конечных точек PSC
- Настройка центра сетевых подключений с использованием VPC в качестве распределенного
- Проверка пути к данным
- Изучите возможности обслуживания NCC
- Очистка ресурсов
Прежде чем начать
Облачная консоль Google и Cloud Shell
Для взаимодействия с GCP на протяжении всей лабораторной работы мы будем использовать как Google Cloud Console, так и Cloud Shell.
Проект NCC Hub Google Cloud Console
Доступ к облачной консоли можно получить по адресу https://console.cloud.google.com .
Настройте следующие элементы в Google Cloud, чтобы упростить настройку Центра сетевых подключений:
В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
Запустите Cloud Shell . В этой лаборатории кода используются переменные $variables для облегчения реализации конфигурации gcloud в Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project $project
project=[YOUR-PROJECT-NAME]
echo $project
Роли IAM
NCC требуются роли IAM для доступа к определенным API. Обязательно настройте для своего пользователя роли NCC IAM по мере необходимости.
Роль/Описание | Разрешения |
networkconnectivity.networkAdmin — позволяет сетевым администраторам управлять концентратором и периферийными устройствами. | networkconnectivity.hubs. сетевое подключение.спицы. |
networkconnectivity.networkSpokeManager — позволяет добавлять периферийные устройства в концентраторе и управлять ими. Используется в общем VPC, где хост-проект владеет хабом, но другие администраторы в других проектах могут добавлять периферийные устройства для своих вложений в хаб. | networkconnectivity.спицы.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer — позволяет пользователям сети просматривать различные атрибуты концентратора и периферийных устройств. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. Настройте сетевое окружение.
Обзор
В этом разделе мы развернем две сети VPC и правила брандмауэра в одном проекте. Логическая диаграмма иллюстрирует сетевое окружение, которое будет настроено на этом этапе.
Создайте VPC1 и подсеть.
Сеть VPC содержит подсети, в которых вы установите виртуальную машину GCE для проверки пути к данным.
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}"
Создайте подсеть PSC в VPC.
Используйте команду ниже, чтобы создать подсеть на луче VPC, которая будет выделена PSC-EP.
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 и подсеть
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.
Эти правила разрешат сетевое подключение из диапазонов RFC1918 и прокси-сервера Identity Access.
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
Настройка маршрутизации VPC и правил брандмауэра VPC
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
Настройка виртуальной машины GCE в VPC1
Для установки пакетов вам понадобится временный доступ к Интернету, поэтому настройте экземпляр на использование внешнего IP-адреса.
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'
Настройка виртуальной машины GCE в VPC3
Для установки пакетов вам понадобится временный доступ к Интернету, поэтому настройте экземпляр на использование внешнего IP-адреса.
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.
Используйте приведенные ниже команды, чтобы создать экземпляр и включить Private Service Connect.
Это займет несколько минут.
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
Определите URI вложения службы экземпляра Cloud SQL.
Используйте команду описания экземпляров gcloud sql, чтобы просмотреть информацию об экземпляре с включенным Private Service Connect. Обратите внимание на поле pscServiceAttachmentLink, в котором отображается URI, указывающий на вложение службы экземпляра. Это нам понадобится в следующем разделе.
gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)'
4. Конечная точка PSC для Cloud Sql
Зарезервируйте внутренний IP-адрес для конечной точки PSC.
Используйте команду ниже, чтобы зарезервировать внутренний IP-адрес для конечной точки Private Service Connect:
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
Найдите ИМЯ, связанное с зарезервированным IP-адресом. Это будет использоваться при настройке правила переадресации.
gcloud compute addresses list \
--filter="name=csql-psc-ip"
Создайте правило переадресации Private Service Connect в VPC1.
Используйте команду ниже, чтобы создать конечную точку Private Service Connect и указать ее на вложение службы Cloud SQL.
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 принимает конечную точку.
gcloud compute forwarding-rules describe csql-psc-ep \
--region=us-central1 \
--format='value(pscConnectionStatus)'
Проверьте путь к данным MySQL из VPC1.
При создании нового экземпляра Cloud SQL необходимо установить пароль для учетной записи пользователя по умолчанию, прежде чем вы сможете подключиться к экземпляру.
gcloud sql users set-password root \
--host=% \
--instance=mysql-instance \
--prompt-for-password
Используйте приведенную ниже команду, чтобы найти IP-адрес конечной точки PSC, связанной с присоединением службы Cloud SQL.
gcloud compute addresses describe csql-psc-ip \
--region=us-central1 \
--format='value(address)'
Подключитесь к экземпляру Cloud Sql из виртуальной машины в VPC1.
Откройте сеанс SSH для csql-vpc1-vm.
gcloud compute ssh csql-vpc1-vm \
--zone=us-central1-a \
--tunnel-through-iap
Используйте команду ниже, чтобы подключиться к экземпляру Cloud Sql. При появлении запроса введите пароль, созданный на предыдущем шаге.
mysql -h 192.168.0.253 -u root -p
Вывод ниже отображается после успешного входа в систему:
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.
MySQL [(none)]> show databases;
Подключитесь к экземпляру Cloud Sql из виртуальной машины в VPC3.
Откройте сеанс SSH для csql-vpc3-vm,
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Используйте команду ниже, чтобы подключиться к экземпляру Cloud Sql. При появлении запроса введите пароль, созданный на предыдущем шаге.
mysql -h 192.168.0.253 -u root -p
Сеанс виртуальной машины, находящейся в VPC3, завершается неудачно, поскольку отсутствует путь к данным от VPC3 к конечной точке Private Service Connect. Используйте ключевые удары для разрыва сессии.
Ctrl + C
5. Концентратор центра сетевых подключений
Обзор
В этом разделе мы настроим концентратор NCC с помощью команд gcloud. Концентратор NCC будет служить плоскостью управления, ответственной за построение пути данных от периферийных устройств VPC до конечной точки Private Service Connect.
Включить службы API
Включите API сетевого подключения, если он еще не включен:
gcloud services enable networkconnectivity.googleapis.com
Создать хаб NCC
Используйте приведенную ниже команду gcloud, чтобы создать концентратор NCC. Флаг «-export-psc» указывает NCC Hub распространить известные конечные точки PSC на все лучи VPC.
hub_name="ncc-hub"
gcloud network-connectivity hubs create "${hub_name}" \
--export-psc
Опишите недавно созданный хаб NCC. Запишите имя и связанный путь.
gcloud network-connectivity hubs describe ncc-hub
Настройте VPC1 в качестве распределенного узла NCC
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
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 на наличие маршрута к подсети PSC.
gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub
6. Проверьте путь к данным NCC.
На этом этапе мы проверим путь данных между гибридным NCC и распределенным сервером VPC.
Проверьте настроенный NCC путь данных к конечной точке Cloud Sql Instances PSC.
Используйте выходные данные этих команд gcloud для входа в локальную виртуальную машину.
gcloud compute instances list --filter="name=csql-vpc3-vm"
Войдите в экземпляр виртуальной машины, находящийся в локальной сети.
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Используйте приведенную ниже команду mysql для подключения к экземпляру Cloud Sql. При появлении запроса введите пароль, созданный на предыдущем шаге.
mysql -h 192.168.0.253 -u root -p
Вывод ниже отображается после успешного входа в систему:
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
MySQL [(none)]> show databases;
7. Очистка
Войдите в облачную оболочку и удалите ресурсы GCP.
Удалить конечные точки Cloud Sql PSC
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
gcloud sql instances delete mysql-instance --quiet
Удалить правила брандмауэра
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}"
Удалить экземпляры GCE в VPC1 и VPC3
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
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_name="ncc-hub"
gcloud network-connectivity hubs delete "${hub_name}" \
--project=${project}
Удалите подсети во всех VPC.
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 и VPC3
gcloud compute networks delete vpc1-spoke vpc3-spoke
8. Поздравляем!
Вы завершили распространение Private Service Connect с помощью лаборатории Network Connectivity Center!
Что вы покрыли
- Распространение конечной точки Private Service Connect с помощью Центра сетевых подключений
Следующие шаги