Looker PSC Northbound Региональный внутренний L7 ALB

1. Введение

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

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

Рисунок 1.

145ea4672c3a3b14.png

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

Рисунок 2.

3edfcc67e195d082.png

Что вы узнаете

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

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

def88091b42bfe4d.png

2. Что вы построите

Вам потребуется создать разрешенную потребительскую сеть looker-psc-demo для развертывания регионального внутреннего балансировщика нагрузки приложений уровня L7 и бэкэнда PSC NEG, для которого требуется сертификат Google или собственный сертификат. Более подробную информацию см . на странице сводки по балансировщику нагрузки и сертификатам.

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

Ниже приведено описание сетевых требований:

Компоненты

Описание

VPC (looker-psc-demo)

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

Подсеть PSC NEG

Используется для выделения IP-адреса группе сетевых конечных точек.

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

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

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

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

4. Топология Codelab

2f6bb87ef0e139b2.png

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

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

Запустить Cloud Shell

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

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

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

Эта виртуальная машина содержит все необходимые инструменты разработки. Она предоставляет постоянный домашний каталог объемом 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 — это пользовательский домен.

5424ce99136d5b3a.png

Пример использования OAuth

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

c7e5b8c7d2cc6a01.png

9. Сертификаты

Вы можете создавать сертификаты либо через Compute Engine, либо через Certificate Manager. Для создания сертификатов с помощью Certificate Manager используйте любой из следующих методов:

10. Включение VPC в список разрешенных объектов Looker

Просмотреть разрешенные VPC

В следующем разделе вы воспользуетесь пользовательским интерфейсом Cloud Console для просмотра списка разрешенных VPC в Looker.

В консоли Cloud перейдите по следующему пути:

Looker → Looker Instance → Details

В приведенном ниже примере в списке разрешенных VPC отсутствуют какие-либо записи:

ad33177a2d721ea7.png

Обновить разрешенные VPC

Обновите свой экземпляр Looker для поддержки доступа извне, добавив looker-psc-demo в список разрешенных VPC.

В консоли Cloud перейдите по следующему пути:

Looker → Экземпляр Looker → Редактировать

cbbc069688890b82.png

Подключения → Разрешенные VPC

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

dc931643e1b220a.png

3e26d16d83cceae9.png

Проверить разрешенные VPC

Просмотрите обновленный список разрешенных VPC.

В консоли Cloud перейдите по следующему пути:

Looker → Looker Instance → Details

e34664c867929c66.png

11. Создайте бэкэнд PSC.

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

Найдите приложение к сервису Looker PSC.

В консоли Cloud перейдите по ссылке и скопируйте URI подключения службы:

Looker → Looker Instance → Details

a253f94e946a1eef.png

Создайте группу сетевых конечных точек 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 перейдите по следующему пути:

Сетевые службы → Балансировка нагрузки → Создать балансировщик нагрузки

e3474ca153d7c55a.png

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

c80afa6a28b6d922.png

Создайте конфигурацию бэкэнда.

Выберите следующие параметры и настройте среду в соответствии с вашей конфигурацией развертывания:

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

115627dc54d7a582.png

b3eaa88dd02a95c1.png

cf519145f0259061.png

530527bc9273e002.png

Правила маршрутизации

Настройка не требуется.

53a80d74b3c7dd56.png

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

29faa25397025fb4.png

538da2b4930d243b.png

bbc13e921681dd65.png

Убедитесь, что балансировщик нагрузки включен, и получите IP-адрес.

В консоли Cloud Console → Сетевые службы → Балансировка нагрузки → looker-ilb-alb

abc7d02b4c951c73.png

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 к локальной инфраструктуре:

Получите доступ к пользовательскому интерфейсу Looker.

Теперь, когда балансировщик нагрузки запущен, вы можете получить доступ к своему домену Looker через веб-браузер. Важно отметить, что в зависимости от типа используемого сертификата (например, недоверенный сертификат или доверенный) может появиться предупреждение.

Ниже приведён пример (с использованием недоверенного сертификата) доступа к пользовательскому домену Looker looker.cosmopup.com, который обеспечивает доступ к пользовательскому интерфейсу Looker:

ae43d0d0d7136044.png

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 — это круто!!

c911c127bffdee57.jpeg

Что дальше?

Посмотрите некоторые из этих практических занятий по программированию...

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

Справочная документация