1. Введение
В этом практическом задании вы создадите региональный внутренний балансировщик нагрузки приложений уровня L7 и бэкэнд частного сервиса подключения (Private Service Connect) для получения доступа к Looker извне. Для доступа к Looker извне необходимо, чтобы потребительская VPC была добавлена в список разрешенных для экземпляра Looker PSC.
Private Service Connect — это функция сетевых возможностей Google Cloud, которая позволяет потребителям получать доступ к управляемым сервисам в частном порядке из своей сети VPC. Аналогичным образом, она позволяет производителям управляемых сервисов размещать эти сервисы в своих отдельных сетях VPC и предлагать своим потребителям частное соединение. Например, при использовании Private Service Connect для доступа к Looker вы являетесь потребителем сервиса, а Google — производителем сервиса, как показано на рисунке 1.
Рисунок 1.

Доступ с юга, также известный как обратный PSC, позволяет потребителю создать опубликованную службу в качестве производителя, чтобы предоставить Looker доступ к конечным точкам в локальной сети, в VPC, к управляемым службам и Интернету. Подключения с юга могут быть развернуты в любом регионе, независимо от того, где развернут Looker PSC, как показано на рисунке 2.
Рисунок 2.

Что вы узнаете
- Требования к сети
- Обновите список разрешенных мест для доступа в северном направлении с помощью Looker.
- Создайте бэкэнд Private Service Connect в потребительской VPC.
- Сертификаты Google против самоподписанных сертификатов
Что вам понадобится
- Проект Google Cloud с правами владельца.
- Зарегистрированный домен
- Существующий экземпляр Looker PSC

2. Что вы построите
Вам потребуется создать разрешенную потребительскую сеть looker-psc-demo для развертывания регионального внутреннего балансировщика нагрузки приложений уровня L7 и бэкэнда PSC NEG, для которого требуется сертификат Google или собственный сертификат. Более подробную информацию см . на странице сводки по балансировщику нагрузки и сертификатам.
3. Требования к сети
Ниже приведено описание сетевых требований:
Компоненты | Описание |
VPC (looker-psc-demo) | Пользовательский режим VPC |
Подсеть PSC NEG | Используется для выделения IP-адреса группе сетевых конечных точек. |
Подсеть только для прокси | Каждому прокси-серверу балансировщика нагрузки присваивается внутренний IP-адрес. Пакеты, отправляемые с прокси-сервера на виртуальную машину или конечную точку бэкэнда, имеют исходный IP-адрес из подсети, предназначенной только для прокси-серверов. |
Бэкенд-сервис | Сервис бэкэнда выступает в качестве связующего звена между вашим балансировщиком нагрузки и вашими внутренними ресурсами. В данном руководстве сервис бэкэнда связан с PSC NEG. |
4. Топология Codelab

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



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

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

Эта виртуальная машина содержит все необходимые инструменты разработки. Она предоставляет постоянный домашний каталог объемом 5 ГБ и работает в облаке Google, что значительно повышает производительность сети и аутентификацию. Вся работа в этом практическом задании может выполняться в браузере. Вам не нужно ничего устанавливать.
6. Прежде чем начать
Включить API
Внутри Cloud Shell убедитесь, что идентификатор вашего проекта указан правильно:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region
Включите все необходимые службы:
gcloud services enable compute.googleapis.com
7. Потребительская сеть
В следующем разделе вы создадите сетевые параметры для потребителей, которые будут обновлены в списке разрешенных VPC Looker PSC.
Сеть VPC
Внутри Cloud Shell выполните следующие действия:
gcloud compute networks create looker-psc-demo --subnet-mode custom
Создание подсетей
Внутри Cloud Shell создайте подсеть группы конечных точек потребительской сети:
gcloud compute networks subnets create consumer-psc-neg-subnet --network looker-psc-demo --range 172.16.30.0/28 --region $region --enable-private-ip-google-access
Внутри Cloud Shell создайте подсеть внутреннего балансировщика нагрузки приложений:
gcloud compute networks subnets create consumer-ilb-subnet --network looker-psc-demo --range 172.16.40.0/28 --region $region --enable-private-ip-google-access
Внутри Cloud Shell создайте подсеть, предназначенную только для регионального прокси-сервера производителя:
gcloud compute networks subnets create $region-proxy-only-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$region \
--network=looker-psc-demo \
--range=10.10.10.0/24
8. Создайте собственный домен.
Для создания собственного домена необходимо выполнить следующие шаги:
В приведенном ниже примере looker.cosmopup.com — это пользовательский домен.

Пример использования OAuth
Ниже приведён пример учётных данных OAuth для авторизованных источников и функции обратного вызова для поддомена looker.cosmopup.com.

9. Сертификаты
Вы можете создавать сертификаты либо через Compute Engine, либо через Certificate Manager. Для создания сертификатов с помощью Certificate Manager используйте любой из следующих методов:
- Региональные самоуправляемые сертификаты. Информацию о создании и использовании региональных самоуправляемых сертификатов см. в разделе «Развертывание регионального самоуправляемого сертификата» . Карты сертификатов не поддерживаются.
- Региональные сертификаты, управляемые Google. Карты сертификатов не поддерживаются. Менеджер сертификатов поддерживает следующие типы региональных сертификатов, управляемых Google:
- Региональные сертификаты, управляемые Google, с авторизацией DNS для каждого проекта. Дополнительную информацию см. в разделе «Развертывание регионального сертификата, управляемого Google» .
- Региональные сертификаты, управляемые Google (частные сертификаты), с использованием службы центра сертификации. Дополнительную информацию см. в разделе «Развертывание регионального сертификата, управляемого Google, с использованием службы центра сертификации» .
10. Включение VPC в список разрешенных объектов Looker
Просмотреть разрешенные VPC
В следующем разделе вы воспользуетесь пользовательским интерфейсом Cloud Console для просмотра списка разрешенных VPC в Looker.
В консоли Cloud перейдите по следующему пути:
Looker → Looker Instance → Details
В приведенном ниже примере в списке разрешенных VPC отсутствуют какие-либо записи:

Обновить разрешенные VPC
Обновите свой экземпляр Looker для поддержки доступа извне, добавив looker-psc-demo в список разрешенных VPC.
В консоли Cloud перейдите по следующему пути:
Looker → Экземпляр Looker → Редактировать

Подключения → Разрешенные VPC
Убедитесь, что вы выбрали проект, в котором развернут looker-psc-demo, затем VPC looker-psc-demo и продолжите.


Проверить разрешенные VPC
Просмотрите обновленный список разрешенных VPC.
В консоли Cloud перейдите по следующему пути:
Looker → Looker Instance → Details

11. Создайте бэкэнд PSC.
Looker PSC в качестве производителя услуг генерирует URI подключения к услуге, используемый потребителями услуг для развертывания конечных точек и бэкэндов с целью получения доступа к Looker извне. На следующем шаге вы определите URI подключения к услуге Looker PSC, а затем создадите бэкэнд группы конечных точек сети Private Service Connect (NEG) в VPC потребителя.
Найдите приложение к сервису Looker PSC.
В консоли Cloud перейдите по ссылке и скопируйте URI подключения службы:
Looker → Looker Instance → Details

Создайте группу сетевых конечных точек PSC.
Внутри Cloud Shell выполните следующие действия, убедившись, что psc-target-service обновлен:
gcloud compute network-endpoint-groups create looker-northbound-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=[UPDATE WITH YOU LOOKER SERVICE ATTACHMENT URI] \
--region=$region \
--network=looker-psc-demo \
--subnet=consumer-psc-neg-subnet
Пример:
gcloud compute network-endpoint-groups create looker-northbound-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183 \
--region=$region \
--network=looker-psc-demo \
--subnet=consumer-psc-neg-subnet
Проверка создания конечной группы сети PSC
Внутри Cloud Shell выполните следующие действия, убедившись, что значение pscConnectionStatus принято:
gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:
Пример:
user@cloudshell$ gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:
pscConnectionStatus: ACCEPTED
Создайте региональный внутренний балансировщик нагрузки приложений.
На следующих шагах вы используете Cloud Console для создания регионального внутреннего балансировщика нагрузки приложений, а также для привязки сгенерированных сертификатов к конфигурации внешнего интерфейса.
В консоли Cloud перейдите по следующему пути:
Сетевые службы → Балансировка нагрузки → Создать балансировщик нагрузки

Выберите следующие варианты:

Создайте конфигурацию бэкэнда.
Выберите следующие параметры и настройте среду в соответствии с вашей конфигурацией развертывания:
- Регион, используемый при развертывании сетевой инфраструктуры.
- Сеть: looker-psc-demo
- Подсеть "Только прокси" заполняется автоматически в зависимости от вашего региона и сети.




Правила маршрутизации
Настройка не требуется.

Конфигурация внешнего интерфейса



Убедитесь, что балансировщик нагрузки включен, и получите IP-адрес.
В консоли Cloud Console → Сетевые службы → Балансировка нагрузки → looker-ilb-alb

12. Разрешение DNS
Разрешение DNS-запросов для пользовательского домена может осуществляться с помощью авторитетного локального DNS или облачного DNS. В этом руководстве мы определим облачный DNS в качестве авторитетного сервера для пользовательского домена Looker. Для включения разрешения DNS-запросов между локальным DNS и GCP необходимо включить политики входящих серверов. При создании политики входящих серверов облачный DNS создает точки входа политики входящих серверов в сети VPC, к которой применяется эта политика. Точки входа политики входящих серверов представляют собой внутренние IPv4-адреса, полученные из основного диапазона IPv4-адресов каждой подсети в соответствующей сети VPC, за исключением подсетей, предназначенных только для прокси-серверов.
В следующем разделе создается частная DNS-зона для пользовательского домена Looker, looker.cosmopup.com, и запись A, содержащая IP-адрес балансировщика нагрузки.
13. Создайте частную DNS-зону.
Внутри Cloud Shell создайте частную зону Cloud DNS.
gcloud dns --project=$projectid managed-zones create looker-cosmopup-dns --description="" --dns-name="looker.cosmopup.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/looker-psc-demo"
В Cloud Shell создайте запись A, содержащую IP-адрес балансировщика нагрузки, полученный на предыдущем шаге.
gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="<insert-your-ip>"
Пример:
gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="172.16.20.7"
Далее, для обеспечения возможности подключения необходимо настроить гибридную сеть (например, Interconnect, HA-VPN) между VPC looker-psc-demo и локальной сетью.
Ниже описаны шаги, необходимые для установления гибридного подключения NEG к локальной инфраструктуре:
- Выбор продукта для сетевого подключения | Google Cloud
- В архитектуре типа «звезда» с пирингом VPC, гибридный NEG развертывается в той же VPC, что и облачный маршрутизатор (хаб).
- Убедитесь, что локальные межсетевые экраны обновлены для поддержки диапазона подсетей, предназначенных только для прокси-сервера, поскольку эта подсеть служит исходным IP-адресом для связи с локальными рабочими нагрузками.
- Обновите локальную DNS-систему, указав в качестве DNS-сервера для looker.cosomopup.com IP-адрес входящего переадресации.
Получите доступ к пользовательскому интерфейсу Looker.
Теперь, когда балансировщик нагрузки запущен, вы можете получить доступ к своему домену Looker через веб-браузер. Важно отметить, что в зависимости от типа используемого сертификата (например, недоверенный сертификат или доверенный) может появиться предупреждение.
Ниже приведён пример (с использованием недоверенного сертификата) доступа к пользовательскому домену Looker looker.cosmopup.com, который обеспечивает доступ к пользовательскому интерфейсу Looker:

14. Уборка
Удалите компоненты лабораторной работы из одного терминала Cloud Shell:
gcloud compute forwarding-rules delete regional-internal-alb-fr --region=$region -q
gcloud compute target-https-proxies delete regional-internal-alb-target-proxy --region=$region -q
gcloud compute url-maps delete regional-internal-alb --region=$region -q
gcloud compute backend-services delete looker-psc-neg-backend-svc --region=$region -q
gcloud compute addresses delete regional-alb-static-ip --region=$region -q
gcloud compute network-endpoint-groups delete looker-northbound-neg --region=$region -q
gcloud compute networks delete looker-psc-demo -q
15. Поздравляем!
Поздравляем, вы успешно настроили и проверили подключение к Looker через северный канал, используя домен клиента и региональный внутренний балансировщик нагрузки приложений.
Вы создали инфраструктуру для потребителей, научились создавать PSC NEG, собственный домен и ознакомились с различными вариантами сертификатов. Столько всего интересного ждет вас в работе с Looker!
Cosmopup считает, что Codelabs — это круто!!

Что дальше?
Посмотрите некоторые из этих практических занятий по программированию...
- Использование Private Service Connect для публикации и использования сервисов.
- Подключайтесь к локальным сервисам через гибридную сеть, используя Private Service Connect и внутренний балансировщик нагрузки TCP Proxy.
- Доступ ко всем опубликованным кодам лабораторий Private Service Connect.
Дополнительная литература и видеоматериалы
Справочная документация
- Использование самоуправляемых SSL-сертификатов | Балансировка нагрузки | Google Cloud
- Разверните региональный сертификат, управляемый Google.
- Создание бэкэнда Private Service Connect | VPC | Google Cloud
- Создание бэкэнда Private Service Connect | VPC | Google Cloud
- Создайте экземпляр Looker (ядро Google Cloud) Private Service Connect.
- Как опубликовать сервис с помощью Private Service Connect