Agentspace Hybrid NEG для кросс-облачной базы данных с собственным размещением

1. Введение

В этой лабораторной работе вы развернёте внутренний балансировщик нагрузки TCP-прокси и гибридную группу конечных точек сети (NEG), опубликованную как сервис-производитель PSC. NEG будет состоять из IP-адреса и порта кросс-облачной базы данных, размещаемой самостоятельно, например, JIRA, Confluence или Sharepoint.

Private Service Connect — это функция Google Cloud Networking, которая позволяет потребителям получать доступ к управляемым сервисам в частном порядке из своей сети VPC. Аналогичным образом, она позволяет производителям управляемых сервисов размещать эти сервисы в собственной сети VPC или кросс-облачной сети, предлагая своим потребителям частное подключение. Например, при использовании Private Service Connect для доступа к кросс-облачной базе данных вы являетесь производителем сервиса, а Google (Agentspace) — потребителем сервиса.

Чему вы научитесь

  • Сетевые требования для Agentspace
  • Лучшие практики сетевого взаимодействия Agentspace
  • Создайте частную службу Connect Producer

Что вам понадобится

  • Проект Google Cloud с разрешениями владельца

2. Что вы будете строить

Вы создадите сеть Producer, agentspace-psc-demo, для развертывания внутреннего балансировщика нагрузки прокси-сервера TCP и гибридного NEG, опубликованного как служба через Private Service Connect (PSC).

3. Требования к сети

Ниже приведена разбивка сетевых требований для сети-производителя, потребителем в этой кодовой лаборатории является Agentspace.

Компоненты

Описание

VPC (agentspace-psc-demo)

Пользовательский режим VPC

Подсеть PSC NAT

Пакеты из сети VPC потребителя преобразуются с помощью исходного NAT (SNAT), так что их исходные IP-адреса источника преобразуются в исходные IP-адреса из подсети NAT в сети VPC производителя. PSC NAT поддерживает подсеть /29 для каждого подключения к сервису.

Подсеть правил пересылки PSC

Используется для выделения IP-адреса для регионального внутреннего балансировщика нагрузки TCP-прокси . Подсеть правила пересылки считается обычной подсетью.

Подсеть только для прокси-сервера

Каждому прокси-серверу балансировщика нагрузки назначается внутренний IP-адрес. Пакеты, отправляемые с прокси-сервера на виртуальную машину бэкэнда или группу конечных точек сети, имеют исходный IP-адрес из подсети, предназначенной только для прокси-серверов. Рекомендуется использовать подсеть /23, хотя поддерживается и минимальная подсеть /26. Для каждого региона требуется одна региональная подсеть прокси-серверов.

Гибридный NEG

Локальные и другие облачные сервисы обрабатываются так же, как и любые другие бэкенды Cloud Load Balancing. Ключевое отличие заключается в том, что для настройки конечных точек этих бэкендов используется гибридный сетевой шлюз (NEG) . Конечные точки должны представлять собой допустимые комбинации IP-адресов и портов, к которым ваш балансировщик нагрузки может получить доступ с помощью гибридных решений, таких как Cloud VPN или Cloud Interconnect.

Бэкэнд-сервис

Бэкенд-сервис выступает в качестве моста между балансировщиком нагрузки и вашими бэкенд-ресурсами. В этом руководстве бэкенд-сервис связан с гибридным NEG.

4. Лучшие практики

  • AgentSpace поддерживает кросс-облачный доступ к самостоятельно размещенным базам данных, развернутым локально или на вычислительных ресурсах (например, AWS EC2 и виртуальные машины Azure) при публикации в качестве поставщика услуг.
  • Трафик к кросс-облачной базе данных будет исходить из региональной прокси-подсети. Поэтому необходимо обновить правила брандмауэра, чтобы добавить этот трафик в список разрешенных.
  • Хотя облачный маршрутизатор по умолчанию объявляет подсеть, работающую только через прокси, убедитесь, что кросс-облачная сеть узнала эту подсеть.
  • Убедитесь, что сеть Agentspace VPC узнала подсеть кросс-облачной базы данных или IP-адрес хоста.
  • Включите глобальный доступ в правиле пересылки производителя перед созданием прикрепления службы.
  • Включите глобальный доступ при создании конечной точки Agentspace.

5. Топология кодлаб-программы

f5cb7b235f6fa306.png

6. Настройка и требования

Настройка среды для самостоятельного обучения

  1. Войдите в Google Cloud Console и создайте новый проект или используйте существующий. Если у вас ещё нет учётной записи Gmail или Google Workspace, вам необходимо её создать .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Название проекта — отображаемое имя участников проекта. Это строка символов, не используемая API Google. Вы можете изменить её в любой момент.
  • Идентификатор проекта уникален для всех проектов Google Cloud и неизменяем (нельзя изменить после установки). Cloud Console автоматически генерирует уникальную строку; обычно вам не важно, какой именно. В большинстве практических работ вам потребуется указать идентификатор проекта (обычно обозначаемый как PROJECT_ID ). Если вам не нравится сгенерированный идентификатор, вы можете сгенерировать другой случайный идентификатор. Вы также можете попробовать использовать свой собственный идентификатор и посмотреть, доступен ли он. После этого шага его нельзя будет изменить, и он останется на протяжении всего проекта.
  • К вашему сведению, существует третье значение — номер проекта , который используется некоторыми API. Подробнее обо всех трёх значениях можно узнать в документации .
  1. Далее вам нужно включить биллинг в Cloud Console для использования облачных ресурсов/API. Выполнение этой лабораторной работы не потребует больших затрат, если вообще потребует. Чтобы отключить ресурсы и избежать списания средств за пределами этого руководства, вы можете удалить созданные вами ресурсы или удалить проект. Новые пользователи Google Cloud могут воспользоваться бесплатной пробной версией стоимостью 300 долларов США .

Запустить Cloud Shell

Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лабораторной работе вы будете использовать Google Cloud Shell — среду командной строки, работающую в облаке.

В консоли Google Cloud Console нажмите значок Cloud Shell на верхней правой панели инструментов:

55efc1aaa7a4d3ad.png

Подготовка и подключение к среде займёт всего несколько минут. После завершения вы увидите примерно следующее:

7ffe5cbb04455448.png

Эта виртуальная машина содержит все необходимые инструменты разработки. Она предоставляет постоянный домашний каталог объёмом 5 ГБ и работает в облаке Google Cloud, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лабораторной работе можно выполнять в браузере. Вам не нужно ничего устанавливать.

7. Прежде чем начать

Включить API

Внутри Cloud Shell убедитесь, что настроен идентификатор вашего проекта:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region

Включите все необходимые службы:

gcloud services enable compute.googleapis.com

8. Создайте сеть VPC-производителя

Сеть VPC

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks create agentspace-psc-demo --subnet-mode custom

Создать подсети

Подсеть PSC будет связана с подключением к службе PSC для целей трансляции сетевых адресов.

Внутри Cloud Shell создайте подсеть PSC NAT:

gcloud compute networks subnets create producer-psc-nat-subnet --network agentspace-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

Внутри Cloud Shell создайте подсеть правила пересылки Producer:

gcloud compute networks subnets create producer-psc-fr-subnet --network agentspace-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

Внутри Cloud Shell создайте подсеть только для регионального прокси-сервера Producer, которая будет отображаться в кросс-облачной базе данных как исходный IP-адрес.

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=agentspace-psc-demo \
  --range=10.10.10.0/24

Зарезервируйте IP-адрес балансировщика нагрузки

Внутри Cloud Shell зарезервируйте внутренний IP-адрес для балансировщика нагрузки:

gcloud compute addresses create hybrid-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

Внутри Cloud Shell просмотрите зарезервированный IP-адрес.

gcloud compute addresses describe hybrid-neg-lb-ip \
  --region=$region | grep -i address:

Пример вывода:

gcloud compute addresses describe hybrid-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

Настройте гибридный NEG

Создайте гибридный NEG и задайте для параметра –network-endpoint-type значение NON_GCP_PRIVATE_IP_PORT.

Внутри Cloud Shell создайте гибридный NEG, используемый для доступа к локальной базе данных:

gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --network=agentspace-psc-demo \
    --zone=$zone

Внутри Cloud Shell обновите Hybrid NEG, указав IP-адрес и порт кросс-облачной базы данных, 192.168.10.10 и порт 443 в соответствии с эталонной архитектурой:

gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
    --add-endpoint=ip=192.168.10.10,port=443 \
    --zone=$zone

Создайте региональную проверку здоровья

Внутри Cloud Shell создайте проверку работоспособности, которая проверяет порт локальной базы данных, 443:

gcloud compute health-checks create tcp on-prem-443-healthcheck \
    --region=$region \
    --port=443

Создание политики сетевого брандмауэра и правил брандмауэра

Внутри Cloud Shell выполните следующие действия:

gcloud compute network-firewall-policies create agentspace-psc-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy agentspace-psc-demo-policy --network agentspace-psc-demo --name agentspace-psc-demo --global-firewall-policy

Следующее правило брандмауэра разрешает трафик из диапазона подсети PSC NAT ко всем экземплярам в сети.

Внутри Cloud Shell выполните следующие действия:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy agentspace-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

9. Создать службу-производителя

Создание компонентов балансировщика нагрузки

Внутри Cloud Shell создайте внутреннюю службу:

gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=on-prem-443-healthcheck --health-checks-region=$region

Внутри Cloud Shell добавьте бэкэнд Hybrid NEG к бэкэнд-сервису:

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=on-prem-hybrid-neg --network-endpoint-group-zone=$zone --balancing-mode=CONNECTION --max-connections=100 --region=$region

В Cloud Shell создайте целевой TCP-прокси для маршрутизации запросов в вашу внутреннюю службу:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

Используя следующий синтаксис, создайте правило пересылки (внутренний балансировщик нагрузки прокси-сервера TCP) с включенным глобальным доступом.

В Cloud Shell выполните следующие действия:

gcloud compute forwarding-rules create producer-hybrid-neg-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=agentspace-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=hybrid-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --allow-global-access \
     --ports=443

Создать приложение к услуге

Чтобы опубликовать услугу, необходимо создать вложение к ней. Вы можете опубликовать услугу с автоматическим или явным одобрением.

  • Чтобы опубликовать услугу и автоматически разрешить любому потребителю подключаться к ней, следуйте инструкциям в разделе Публикация услуги с автоматическим одобрением .
  • Чтобы опубликовать службу с явным одобрением потребителя , в настройках подключения к службе выберите Принимать подключения для выбранных проектов и оставьте поле Принятые проекты пустым.
  • После создания подключения к сервису конечные точки Consumer, запрашивающие доступ к сервису Producer, первоначально перейдут в состояние ожидания. Чтобы разрешить подключение, Producer должен принять проект, из которого был отправлен запрос к конечной точке Consumer.

Внутри Cloud Shell создайте служебное приложение cc-database1-svc-attachment с автоматическим одобрением:

gcloud compute service-attachments create cc-database1-svc-attachment --region=$region --producer-forwarding-rule=producer-hybrid-neg-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

Затем получите и запомните служебное вложение, указанное в URI selfLink, начиная с проектов по настройке конечной точки PSC в Agentspace.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/cc-database1-svc-attachment

Внутри Cloud Shell выполните следующие действия:

gcloud compute service-attachments describe cc-database1-svc-attachment --region=$region

Пример ожидаемого результата:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-07-06T16:05:14.706-07:00'
description: ''
enableProxyProtocol: false
fingerprint: rXjeAOjb41k=
id: '1726139744351862725'
kind: compute#serviceAttachment
name: cc-database1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '54619734758392808'
  low: '1726139744351862725'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/serviceAttachments/cc-database1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/forwardingRules/producer-hybrid-neg-fr

В Cloud Console перейдите к:

Сетевые службы → Частное подключение служб → Опубликованные службы

62a981141ca52077.png

e36e988fc46c07a8.png

10. Установите соединение конечной точки PSC в Agentspace

Перед подключением приложения Producer Service к Agentspace убедитесь, что выполнены следующие проверки:

  • Межсетевой экран кросс-облачной сети разрешает доступ к подсети регионального прокси-сервера.
  • Кросс-облачная сеть узнала региональную прокси-подсеть.
  • Agentspace VPC узнал подсеть кросс-облачной базы данных или IP-адрес хоста.

Свяжите URI сервисного подключения Producers с Agentspace, убедившись, что выбран глобальный доступ. Ниже приведён пример включения глобального доступа с сервисным подключением эталонной архитектуры.

c80e0e3845880771.png

Чтобы завершить настройку частной сети, обратитесь к сторонним источникам данных Agentspace для получения дополнительных инструкций.

Проверьте конечную точку PSC в Cloud Console

Чтобы убедиться в успешном подключении PSC между Agentspace (потребителем) и Producer, проверьте проект клиента Agentspace, связанный со службой Producer. Его можно найти в разделе «Подключенные проекты». Идентификатор проекта клиента назначается случайным образом, но всегда заканчивается на «tp».

В Cloud Console вы можете проверить подключение PSC. В Cloud Console перейдите к:

Сетевые службы → Подключение частной службы → Опубликованная служба, затем выберите службу cc-database1-svc-attachment.

4ae5916ea5402c1e.png

11. Уборка

Из одного терминала Cloud Shell удалить компоненты лаборатории

gcloud compute service-attachments delete cc-database1-svc-attachment --region=$region -q

gcloud compute forwarding-rules delete producer-hybrid-neg-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete producer-backend-svc --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy agentspace-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=agentspace-psc-demo-policy  --name=agentspace-psc-demo --global-firewall-policy -q

gcloud compute network-firewall-policies delete agentspace-psc-demo-policy --global -q

gcloud compute network-endpoint-groups delete on-prem-hybrid-neg --zone=$zone -q

gcloud compute addresses delete hybrid-neg-lb-ip --region=$region -q

gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-nat-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q

gcloud compute health-checks delete on-prem-443-healthcheck --region=us-central1 -q

gcloud compute networks delete agentspace-psc-demo -q

12. Поздравления

Поздравляем, вы успешно настроили и опубликовали службу Producer с подключенной частной службой.

Вы создали инфраструктуру Producer, узнали, как создать гибридный NEG, службу Producer и связать присоединение службы с Agentspace.

Cosmopup считает, что лабораторные занятия — это здорово!

c911c127bffdee57.jpeg

Что дальше?

Ознакомьтесь с некоторыми из этих практикумов...

Дополнительные материалы и видео

Справочные документы