1. Введение
В этой лаборатории кода вы создадите южное соединение со службой SMTP Lookers с использованием внутреннего балансировщика нагрузки TCP-прокси и группы конечных точек интернет-сети (NEG) с полным доменным именем Notifications-pa.googleapis.com, вызываемым из Looker PSC в качестве потребителя службы.
Private Service Connect — это возможность сети Google Cloud, которая позволяет потребителям получать частный доступ к управляемым сервисам изнутри своей сети VPC. Аналогичным образом, это позволяет производителям управляемых услуг размещать эти услуги в своих собственных отдельных сетях VPC и предлагать своим потребителям частное соединение. Например, когда вы используете Private Service Connect для доступа к Looker, вы являетесь потребителем услуги, а Google — производителем услуги, как показано на рисунке 1.
Рисунок 1.
Южный доступ, также известный как обратный PSC, позволяет потребителю создать опубликованную службу в качестве производителя, чтобы обеспечить доступ Looker к конечным точкам локально, в VPC, к управляемым сервисам и Интернету. Южные соединения могут быть развернуты в любом регионе, независимо от того, где развернут Looker PSC, как показано на рисунке 2.
Рисунок 2.
Что вы узнаете
- Требования к сети
- Создание службы-производителя Private Service Connect
- Создайте конечную точку Private Service Connect в Looker
- Установите подключение к SMTP-сервису Lookers.
Что вам понадобится
- Проект Google Cloud с разрешениями владельца
- Существующий экземпляр Looker PSC
2. Что вы будете строить
Вы создадите сеть-производитель, Looker-PSC-Demo, для развертывания внутреннего балансировщика нагрузки tcp-прокси и Интернет-NEG, опубликованного как услуга через Private Service Connect (PSC). После публикации вы выполните следующие действия для проверки доступа к службе Producer:
- Создайте конечную точку PSC в Looker, связанную с вложением службы производителя.
- Используйте консоль Looker для создания настроек почты SMTP.
3. Требования к сети
Ниже приводится разбивка сетевых требований для сети Producer, потребителем в этой кодовой лаборатории является экземпляр Looker PSC.
Компоненты | Описание |
VPC (просмотрщик-psc-демо) | Пользовательский режим VPC |
Подсеть PSC NAT | Пакеты из потребительской сети VPC преобразуются с использованием исходного NAT (SNAT), так что их исходные IP-адреса источника преобразуются в исходные IP-адреса из подсети NAT в сети VPC производителя. |
Подсеть правила пересылки PSC | Используется для выделения IP-адреса региональному внутреннему балансировщику нагрузки TCP-прокси. |
Подсеть PSC NEG | Используется для выделения IP-адреса для группы конечных точек сети. |
Только прокси-подсеть | Каждому из прокси-серверов балансировщика нагрузки назначается внутренний IP-адрес. Пакеты, отправляемые с прокси-сервера на серверную виртуальную машину или конечную точку, имеют исходный IP-адрес из подсети, предназначенной только для прокси-сервера. |
Интернет НЕГ | Ресурс, используемый для определения внешнего серверного компонента балансировщика нагрузки. Конечная точка не может быть доступна только через Cloud VPN или Cloud Interconnect. |
Серверная служба | Серверная служба действует как мост между балансировщиком нагрузки и серверными ресурсами. В руководстве серверная служба связана с Интернетом NEG. |
Облачный маршрутизатор | Cloud NAT использует облачные маршрутизаторы для обеспечения возможностей плоскости управления, но не для управления сеансами BGP. |
Облачный NAT | Региональная интернет-сеть NEG использует Cloud NAT для выхода в Интернет. |
4. Топология Codelab
5. Настройка и требования
Самостоятельная настройка среды
- Войдите в Google Cloud Console и создайте новый проект или повторно используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .
- Имя проекта — это отображаемое имя для участников этого проекта. Это строка символов, не используемая API Google. Вы всегда можете обновить его.
- Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (невозможно изменить после его установки). Cloud Console автоматически генерирует уникальную строку; обычно тебя не волнует, что это такое. В большинстве лабораторий кода вам потребуется указать идентификатор проекта (обычно идентифицируемый как
PROJECT_ID
). Если вам не нравится сгенерированный идентификатор, вы можете создать другой случайный идентификатор. Альтернативно, вы можете попробовать свой собственный и посмотреть, доступен ли он. Его нельзя изменить после этого шага и он сохраняется на протяжении всего проекта. - К вашему сведению, есть третье значение — номер проекта , которое используют некоторые API. Подробнее обо всех трех этих значениях читайте в документации .
- Затем вам необходимо включить выставление счетов в Cloud Console, чтобы использовать облачные ресурсы/API. Прохождение этой кодовой лаборатории не будет стоить много, если вообще что-то стоить. Чтобы отключить ресурсы и избежать выставления счетов за пределами этого руководства, вы можете удалить созданные вами ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на участие в программе бесплатной пробной версии стоимостью 300 долларов США .
Запустить Cloud Shell
Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лаборатории вы будете использовать Google Cloud Shell , среду командной строки, работающую в облаке.
В Google Cloud Console щелкните значок Cloud Shell на верхней правой панели инструментов:
Подготовка и подключение к среде займет всего несколько минут. Когда все будет готово, вы должны увидеть что-то вроде этого:
Эта виртуальная машина оснащена всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог объемом 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лаборатории кода можно выполнять в браузере. Вам не нужно ничего устанавливать.
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 производителя.
Сеть VPC
Внутри Cloud Shell выполните следующие действия:
gcloud compute networks create looker-psc-demo --subnet-mode custom
Создание подсетей
Подсеть PSC будет связана с приложением службы PSC для целей трансляции сетевых адресов.
Внутри Cloud Shell создайте подсеть PSC NAT:
gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT
В Cloud Shell создайте подсеть правила переадресации производителя:
gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.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
Создайте общедоступный шлюз NAT.
Шлюз NAT используется региональным внутренним балансировщиком нагрузки TCP-прокси для выхода из Интернета с параметром конфигурации –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB, поэтому тот же NATGW не будет поддерживать выход из Интернета GCE/GKE. Разверните дополнительный шлюз NAT с параметром –endpoint-types=ENDPOINT_TYPE_VM для выхода в Интернет GCE/GKE.
Внутри Cloud Shell создайте Cloud Router:
gcloud compute routers create looker-psc-demo-cloud-router --network looker-psc-demo --region $region
Внутри Cloud Shell создайте шлюз Cloud NAT, обеспечивающий выход в Интернет для балансировщика нагрузки прокси-сервера TCP:
gcloud compute routers nats create looker-psc-demo-natgw \
--router=looker-psc-demo-cloud-router \
--endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
--nat-custom-subnet-ip-ranges=$region-proxy-only-subnet \
--auto-allocate-nat-external-ips \
--region=$region
Зарезервируйте IP-адрес балансировщика нагрузки.
Внутри Cloud Shell зарезервируйте внутренний IP-адрес для балансировщика нагрузки:
gcloud compute addresses create internet-neg-lb-ip \
--region=$region \
--subnet=producer-psc-fr-subnet
В Cloud Shell просмотрите зарезервированный IP-адрес.
gcloud compute addresses describe internet-neg-lb-ip \
--region=$region | grep -i address:
Пример вывода:
user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2
Настроить Интернет NEG
Создайте Internet NEG и установите для параметра –network-endpoint-type значение интернет-fqdn-port (имя хоста и порт, по которым можно получить доступ к вашему внешнему серверу).
Внутри Cloud Shell создайте NEG Интернета, используемый для github.com.
gcloud compute network-endpoint-groups create smtp-internet-neg \
--network-endpoint-type=INTERNET_FQDN_PORT \
--network=looker-psc-demo \
--region=$region
В Cloud Shell обновите Internet NEG smtp-internet-neg, указав полное доменное имя Notifications-pa.googleapis.com и порт 443.
gcloud compute network-endpoint-groups update smtp-internet-neg \
--add-endpoint="fqdn=notifications-pa.googleapis.com,port=443" \
--region=$region
Создайте политику сетевого брандмауэра и правила брандмауэра.
Внутри Cloud Shell выполните следующие действия:
gcloud compute network-firewall-policies create looker-psc-demo-policy --global
gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy
Следующее правило брандмауэра разрешает передачу трафика из диапазона подсети PSC NAT во все экземпляры сети.
Внутри Cloud Shell выполните следующие действия:
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-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
8. Создать службу продюсера
Создание компонентов балансировщика нагрузки
Внутри Cloud Shell выполните следующие действия:
gcloud compute backend-services create producer-backend-svc --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED
gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=smtp-internet-neg --network-endpoint-group-region=$region --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-smtp-fr \
--load-balancing-scheme=INTERNAL_MANAGED \
--network-tier=PREMIUM \
--network=looker-psc-demo \
--subnet=producer-psc-fr-subnet \
--address=internet-neg-lb-ip \
--target-tcp-proxy=producer-lb-tcp-proxy \
--target-tcp-proxy-region=$region \
--region=$region \
--ports=443
Создать служебное приложение
Внутри Cloud Shell создайте вложение службы smtp-svc-attachment:
gcloud compute service-attachments create smtp-svc-attachment --region=$region --producer-forwarding-rule=producer-smtp-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet
Затем получите и запишите вложение службы, указанное в URI selfLink, начиная с проектов, для настройки конечной точки PSC в Looker.
selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/github-svc-attachment-https
Внутри Cloud Shell выполните следующие действия:
gcloud compute service-attachments describe smtp-svc-attachment --region=$region
Пример:
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-10-04T14:56:50.409-07:00'
description: ''
enableProxyProtocol: false
fingerprint: KUPXTZjrGkw=
id: '8947818105173563981'
kind: compute#serviceAttachment
name: smtp-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
high: '23100082169578472'
low: '8947818105173563981'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-smtp-fr
В Cloud Console перейдите к:
Сетевые службы → Подключение частных служб → Опубликованные службы
9. Установите соединение с конечной точкой PSC в Looker.
В следующем разделе вы свяжете вложение службы Producers с Looker Core PSC с помощью флагов –psc-service-attachment в Cloud Shell для одного домена.
В Cloud Shell создайте ассоциацию psc, обновив следующие параметры в соответствии с вашей средой:
- INSTANCE_NAME: имя вашего экземпляра Looker (ядро Google Cloud).
- DOMAIN_1: уведомления-pa.googleapis.com
- SERVICE_ATTACHMENT_1: URI, полученный при описании вложения службы, smtp-svc-attachment.
- РЕГИОН: регион, в котором размещен ваш экземпляр Looker (ядро Google Cloud).
Внутри Cloud Shell выполните следующие действия:
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
Пример:
gcloud looker instances update looker-psc-instance \
--psc-service-attachment domain=notifications-pa.googleapis.com,attachment=projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment \
--region=$region
В Cloud Shell убедитесь, что статус подключения serviceAttachments имеет значение «ACCEPTED», обновите его с помощью Looker PSC INSTANCE_NAME.
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json
Пример:
gcloud looker instances describe looker-psc-instance --region=$region --format=json
Пример:
{
...........................
"serviceAttachments": [
{
"connectionStatus": "ACCEPTED",
"localFqdn": "notifications-pa.googleapis.com",
"targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-10-04T22:02:31.445761128Z"
}
Проверьте конечную точку PSC в Cloud Console.
В Cloud Console вы можете проверить соединение PSC.
В Cloud Console перейдите к:
Looker → Экземпляр Looker → Подробности
10. Проверьте подключение SMTP
На следующих шагах вы будете использовать консоль Looker для проверки подключения SMTP путем создания теста и отчета SMTP.
Тестовое письмо
Looker отправляет электронную почту, используя SMTP-сервер по умолчанию, Notifications-pa.googleapis.com. Никаких дополнительных действий в этом случае не требуется. Если вы хотите использовать другой SMTP-сервер для уведомлений, обратитесь к разделу «Пользовательская конфигурация SMTP».
Откройте консоль Looker и перейдите к следующему:
Администратор → Платформа → SMTP → Выберите «Отправить тестовое письмо».
Ниже приведено тестовое письмо, полученное от Looker:
Электронная почта сгенерированного отчета
Перейдите к следующему:
Исследуйте → Активность системы → Использование API → Тип запроса API → Выполнить.
Пример вывода:
Чтобы отправить результаты на свою электронную почту, выберите значок шестеренки.
Выберите Отправить, чтобы открыть новое окно.
Введите свой адрес электронной почты и выберите «Отправить».
Ниже приведено тестовое письмо, полученное от Looker:
11. Пользовательская конфигурация SMTP
В этом руководстве SMTP-сервер Looker используется для отправки уведомлений по электронной почте через полное доменное имя Notifications-pa.googleapis.com и Cloud NAT, выполняющий выход в Интернет. Чтобы использовать собственный SMTP-сервер, создайте новое служебное приложение со следующими изменениями:
Обновите NEG в Интернете, указав полное доменное имя SMTP-сервера:
gcloud compute network-endpoint-groups update smtp-internet-neg \
--add-endpoint="fqdn=<your SMTP FQDN>,port=443" \
--region=$region
Укажите свой SMTP-домен при обновлении экземпляра Looker PSC:
- INSTANCE_NAME: имя вашего экземпляра Looker (ядро Google Cloud).
- DOMAIN_1: <полное доменное имя вашего SMTP-сервера>
- SERVICE_ATTACHMENT_1: URI, полученный при описании вложения службы, smtp-svc-attachment.
- РЕГИОН: регион, в котором размещен ваш экземпляр Looker (ядро Google Cloud).
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
Чтобы использовать другую службу электронной почты, выберите «Использовать пользовательские настройки почты».
12. Очистка
Удаление компонентов лаборатории из одного терминала Cloud Shell
gcloud compute service-attachments delete smtp-svc-attachment --region=$region -q
gcloud compute forwarding-rules delete producer-smtp-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 looker-psc-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy --name=looker-psc-demo --global-firewall-policy -q
gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q
gcloud compute routers nats delete looker-psc-demo-natgw --router=looker-psc-demo-cloud-router --router-region=$region -q
gcloud compute routers delete looker-psc-demo-cloud-router --region=$region -q
gcloud compute network-endpoint-groups delete smtp-internet-neg --region=$region -q
gcloud compute addresses delete internet-neg-lb-ip --region=$region -q
gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q
gcloud compute networks delete looker-psc-demo -q
13. Поздравления
Поздравляем, вы успешно настроили и проверили подключение к SMTP-сервису Lookers с помощью консоли Looker на базе Private Service Connect.
Вы создали инфраструктуру производителя, узнали, как создать Интернет NEG, службу производителя и конечную точку Looker PSC, которая позволяла бы подключаться к службе источника.
Cosmopup считает, что кодлабы — это здорово!!
Что дальше?
Посмотрите некоторые из этих кодовых лабораторий...
- Использование Private Service Connect для публикации и использования сервисов
- Подключайтесь к локальным службам через гибридную сеть с помощью Private Service Connect и внутреннего балансировщика нагрузки TCP-прокси.
- Доступ ко всем опубликованным лабораториям кода Private Service Connect.
Дальнейшее чтение и видео
Справочная документация
1. Введение
В этой лаборатории кода вы создадите южное соединение со службой SMTP Lookers с использованием внутреннего балансировщика нагрузки TCP-прокси и группы конечных точек интернет-сети (NEG) с полным доменным именем Notifications-pa.googleapis.com, вызываемым из Looker PSC в качестве потребителя службы.
Private Service Connect — это возможность сети Google Cloud, которая позволяет потребителям получать частный доступ к управляемым сервисам изнутри своей сети VPC. Аналогичным образом, это позволяет производителям управляемых услуг размещать эти услуги в своих собственных отдельных сетях VPC и предлагать своим потребителям частное соединение. Например, когда вы используете Private Service Connect для доступа к Looker, вы являетесь потребителем услуги, а Google — производителем услуги, как показано на рисунке 1.
Рисунок 1.
Южный доступ, также известный как обратный PSC, позволяет потребителю создать опубликованную службу в качестве производителя, чтобы обеспечить доступ Looker к конечным точкам локально, в VPC, к управляемым сервисам и Интернету. Южные соединения могут быть развернуты в любом регионе, независимо от того, где развернут Looker PSC, как показано на рисунке 2.
Рисунок 2.
Что вы узнаете
- Требования к сети
- Создание службы-производителя Private Service Connect
- Создайте конечную точку Private Service Connect в Looker
- Установите подключение к SMTP-сервису Lookers.
Что вам понадобится
- Проект Google Cloud с разрешениями владельца
- Существующий экземпляр Looker PSC
2. Что вы будете строить
Вы создадите сеть-производитель, Looker-PSC-Demo, для развертывания внутреннего балансировщика нагрузки tcp-прокси и Интернет-NEG, опубликованного как услуга через Private Service Connect (PSC). После публикации вы выполните следующие действия для проверки доступа к службе Producer:
- Создайте конечную точку PSC в Looker, связанную с вложением службы производителя.
- Используйте консоль Looker для создания настроек почты SMTP.
3. Требования к сети
Ниже приводится разбивка сетевых требований для сети Producer, потребителем в этой кодовой лаборатории является экземпляр Looker PSC.
Компоненты | Описание |
VPC (просмотрщик-psc-демо) | Пользовательский режим VPC |
Подсеть PSC NAT | Пакеты из потребительской сети VPC преобразуются с использованием исходного NAT (SNAT), так что их исходные IP-адреса источника преобразуются в исходные IP-адреса из подсети NAT в сети VPC производителя. |
Подсеть правила пересылки PSC | Используется для выделения IP-адреса региональному внутреннему балансировщику нагрузки TCP-прокси. |
Подсеть PSC NEG | Используется для выделения IP-адреса для группы конечных точек сети. |
Только прокси-подсеть | Каждому из прокси-серверов балансировщика нагрузки назначается внутренний IP-адрес. Пакеты, отправляемые с прокси-сервера на серверную виртуальную машину или конечную точку, имеют исходный IP-адрес из подсети, предназначенной только для прокси-сервера. |
Интернет НЕГ | Ресурс, используемый для определения внешнего серверного компонента для балансировщика нагрузки. Конечная точка не может быть доступна только через Cloud VPN или Cloud Interconnect. |
Серверная служба | Серверная служба действует как мост между балансировщиком нагрузки и серверными ресурсами. В руководстве серверная служба связана с Интернетом NEG. |
Облачный маршрутизатор | Cloud NAT использует облачные маршрутизаторы для обеспечения возможностей плоскости управления, но не для управления сеансами BGP. |
Облачный NAT | Региональная интернет-сеть NEG использует Cloud NAT для выхода в Интернет. |
4. Топология Codelab
5. Настройка и требования
Самостоятельная настройка среды
- Войдите в Google Cloud Console и создайте новый проект или повторно используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .
- Имя проекта — это отображаемое имя для участников этого проекта. Это строка символов, не используемая API Google. Вы всегда можете обновить его.
- Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (невозможно изменить после его установки). Cloud Console автоматически генерирует уникальную строку; обычно тебя не волнует, что это такое. В большинстве лабораторий кода вам потребуется указать идентификатор проекта (обычно идентифицируемый как
PROJECT_ID
). Если вам не нравится сгенерированный идентификатор, вы можете создать другой случайный идентификатор. Альтернативно, вы можете попробовать свой собственный и посмотреть, доступен ли он. Его нельзя изменить после этого шага и он сохраняется на протяжении всего проекта. - К вашему сведению, есть третье значение — номер проекта , которое используют некоторые API. Подробнее обо всех трех этих значениях читайте в документации .
- Затем вам необходимо включить выставление счетов в Cloud Console, чтобы использовать облачные ресурсы/API. Прохождение этой лаборатории кода не будет стоить много, если вообще что-то стоить. Чтобы отключить ресурсы и избежать выставления счетов за пределами этого руководства, вы можете удалить созданные вами ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на участие в программе бесплатной пробной версии стоимостью 300 долларов США .
Запустить Cloud Shell
Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лаборатории вы будете использовать Google Cloud Shell , среду командной строки, работающую в облаке.
В Google Cloud Console щелкните значок Cloud Shell на верхней правой панели инструментов:
Подготовка и подключение к среде займет всего несколько минут. Когда все будет готово, вы должны увидеть что-то вроде этого:
Эта виртуальная машина оснащена всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог объемом 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лаборатории кода можно выполнять в браузере. Вам не нужно ничего устанавливать.
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 производителя.
Сеть VPC
Внутри Cloud Shell выполните следующие действия:
gcloud compute networks create looker-psc-demo --subnet-mode custom
Создание подсетей
Подсеть PSC будет связана с приложением службы PSC для целей трансляции сетевых адресов.
Внутри Cloud Shell создайте подсеть PSC NAT:
gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT
В Cloud Shell создайте подсеть правила переадресации производителя:
gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.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
Создайте общедоступный шлюз NAT.
Шлюз NAT используется региональным внутренним балансировщиком нагрузки TCP-прокси для выхода из Интернета с параметром конфигурации –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB, поэтому тот же NATGW не будет поддерживать выход из Интернета GCE/GKE. Разверните дополнительный шлюз NAT с параметром –endpoint-types=ENDPOINT_TYPE_VM для выхода в Интернет GCE/GKE.
Внутри Cloud Shell создайте Cloud Router:
gcloud compute routers create looker-psc-demo-cloud-router --network looker-psc-demo --region $region
Внутри Cloud Shell создайте шлюз Cloud NAT, обеспечивающий выход в Интернет для балансировщика нагрузки TCP-прокси:
gcloud compute routers nats create looker-psc-demo-natgw \
--router=looker-psc-demo-cloud-router \
--endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
--nat-custom-subnet-ip-ranges=$region-proxy-only-subnet \
--auto-allocate-nat-external-ips \
--region=$region
Зарезервируйте IP-адрес балансировщика нагрузки.
Внутри Cloud Shell зарезервируйте внутренний IP-адрес для балансировщика нагрузки:
gcloud compute addresses create internet-neg-lb-ip \
--region=$region \
--subnet=producer-psc-fr-subnet
В Cloud Shell просмотрите зарезервированный IP-адрес.
gcloud compute addresses describe internet-neg-lb-ip \
--region=$region | grep -i address:
Пример вывода:
user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2
Настроить Интернет NEG
Создайте Internet NEG и установите для параметра –network-endpoint-type значение интернет-fqdn-port (имя хоста и порт, по которым можно получить доступ к вашему внешнему серверу).
Внутри Cloud Shell создайте NEG Интернета, используемый для github.com.
gcloud compute network-endpoint-groups create smtp-internet-neg \
--network-endpoint-type=INTERNET_FQDN_PORT \
--network=looker-psc-demo \
--region=$region
В Cloud Shell обновите Internet NEG smtp-internet-neg, указав полное доменное имя Notifications-pa.googleapis.com и порт 443.
gcloud compute network-endpoint-groups update smtp-internet-neg \
--add-endpoint="fqdn=notifications-pa.googleapis.com,port=443" \
--region=$region
Создайте политику сетевого брандмауэра и правила брандмауэра.
Внутри Cloud Shell выполните следующие действия:
gcloud compute network-firewall-policies create looker-psc-demo-policy --global
gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy
Следующее правило брандмауэра разрешает передачу трафика из диапазона подсети PSC NAT во все экземпляры сети.
Внутри Cloud Shell выполните следующие действия:
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-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
8. Создать службу продюсера
Создание компонентов балансировщика нагрузки
Внутри Cloud Shell выполните следующие действия:
gcloud compute backend-services create producer-backend-svc --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED
gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=smtp-internet-neg --network-endpoint-group-region=$region --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-smtp-fr \
--load-balancing-scheme=INTERNAL_MANAGED \
--network-tier=PREMIUM \
--network=looker-psc-demo \
--subnet=producer-psc-fr-subnet \
--address=internet-neg-lb-ip \
--target-tcp-proxy=producer-lb-tcp-proxy \
--target-tcp-proxy-region=$region \
--region=$region \
--ports=443
Создать служебное приложение
Внутри Cloud Shell создайте вложение службы smtp-svc-attachment:
gcloud compute service-attachments create smtp-svc-attachment --region=$region --producer-forwarding-rule=producer-smtp-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet
Затем получите и запишите вложение службы, указанное в URI selfLink, начиная с проектов, для настройки конечной точки PSC в Looker.
selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/github-svc-attachment-https
Внутри Cloud Shell выполните следующие действия:
gcloud compute service-attachments describe smtp-svc-attachment --region=$region
Пример:
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-10-04T14:56:50.409-07:00'
description: ''
enableProxyProtocol: false
fingerprint: KUPXTZjrGkw=
id: '8947818105173563981'
kind: compute#serviceAttachment
name: smtp-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
high: '23100082169578472'
low: '8947818105173563981'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-smtp-fr
В Cloud Console перейдите к:
Сетевые службы → Подключение частных служб → Опубликованные службы
9. Установите соединение с конечной точкой PSC в Looker.
В следующем разделе вы свяжете вложение службы Producers с Looker Core PSC с помощью флагов –psc-service-attachment в Cloud Shell для одного домена.
В Cloud Shell создайте ассоциацию psc, обновив следующие параметры в соответствии с вашей средой:
- INSTANCE_NAME: имя вашего экземпляра Looker (ядро Google Cloud).
- DOMAIN_1: уведомления-pa.googleapis.com
- SERVICE_ATTACHMENT_1: URI, полученный при описании вложения службы, smtp-svc-attachment.
- РЕГИОН: регион, в котором размещен ваш экземпляр Looker (ядро Google Cloud).
Внутри Cloud Shell выполните следующие действия:
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
Пример:
gcloud looker instances update looker-psc-instance \
--psc-service-attachment domain=notifications-pa.googleapis.com,attachment=projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment \
--region=$region
В Cloud Shell убедитесь, что статус подключения serviceAttachments имеет значение «ACCEPTED», обновите его с помощью Looker PSC INSTANCE_NAME.
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json
Пример:
gcloud looker instances describe looker-psc-instance --region=$region --format=json
Пример:
{
...........................
"serviceAttachments": [
{
"connectionStatus": "ACCEPTED",
"localFqdn": "notifications-pa.googleapis.com",
"targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-10-04T22:02:31.445761128Z"
}
Проверьте конечную точку PSC в Cloud Console.
В Cloud Console вы можете проверить соединение PSC.
В Cloud Console перейдите к:
Looker → Экземпляр Looker → Подробности
10. Проверка подключения SMTP
На следующих шагах вы будете использовать консоль Looker для проверки подключения SMTP путем создания теста и отчета SMTP.
Тестовое письмо
Looker отправляет электронную почту, используя SMTP-сервер по умолчанию, Notifications-pa.googleapis.com. Никаких дополнительных действий в этом случае не требуется. Если вы хотите использовать другой SMTP-сервер для уведомлений, обратитесь к разделу «Пользовательская конфигурация SMTP».
Откройте консоль Looker и перейдите к следующему:
Администратор → Платформа → SMTP → Выберите «Отправить тестовое письмо».
Ниже приведено тестовое письмо, полученное от Looker:
Сгенерированный отчет по электронной почте
Перейдите к следующему:
Исследуйте → Активность системы → Использование API → Тип запроса API → Выполнить.
Пример вывода:
Чтобы отправить результаты на свою электронную почту, выберите значок шестеренки.
Выберите Отправить, чтобы открыть новое окно.
Введите свой адрес электронной почты и выберите «Отправить».
Ниже приведено тестовое письмо, полученное от Looker:
11. Пользовательская конфигурация SMTP
В этом руководстве SMTP-сервер Looker используется для отправки уведомлений по электронной почте через полное доменное имя Notifications-pa.googleapis.com и Cloud NAT, выполняющий выход в Интернет. Чтобы использовать собственный SMTP-сервер, создайте новое служебное вложение со следующими изменениями:
Обновите NEG в Интернете, указав полное доменное имя SMTP-сервера:
gcloud compute network-endpoint-groups update smtp-internet-neg \
--add-endpoint="fqdn=<your SMTP FQDN>,port=443" \
--region=$region
Укажите свой SMTP-домен при обновлении экземпляра Looker PSC:
- INSTANCE_NAME: имя вашего экземпляра Looker (ядро Google Cloud).
- DOMAIN_1: <полное доменное имя вашего SMTP-сервера>
- SERVICE_ATTACHMENT_1: URI, полученный при описании вложения службы, smtp-svc-attachment.
- РЕГИОН: регион, в котором размещен ваш экземпляр Looker (ядро Google Cloud).
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
Чтобы использовать другую службу электронной почты, выберите «Использовать пользовательские настройки почты».
12. Очистка
Удаление компонентов лаборатории из одного терминала Cloud Shell
gcloud compute service-attachments delete smtp-svc-attachment --region=$region -q
gcloud compute forwarding-rules delete producer-smtp-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 looker-psc-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy --name=looker-psc-demo --global-firewall-policy -q
gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q
gcloud compute routers nats delete looker-psc-demo-natgw --router=looker-psc-demo-cloud-router --router-region=$region -q
gcloud compute routers delete looker-psc-demo-cloud-router --region=$region -q
gcloud compute network-endpoint-groups delete smtp-internet-neg --region=$region -q
gcloud compute addresses delete internet-neg-lb-ip --region=$region -q
gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q
gcloud compute networks delete looker-psc-demo -q
13. Поздравления
Поздравляем, вы успешно настроили и проверили подключение к SMTP-сервису Lookers с помощью консоли Looker на базе Private Service Connect.
Вы создали инфраструктуру производителя, узнали, как создать Интернет NEG, службу производителя и конечную точку Looker PSC, которая позволяла бы подключаться к службе источника.
Cosmopup считает, что кодлабы — это здорово!!
Что дальше?
Посмотрите некоторые из этих кодовых лабораторий...
- Использование Private Service Connect для публикации и использования сервисов
- Подключайтесь к локальным службам через гибридную сеть с помощью Private Service Connect и внутреннего балансировщика нагрузки TCP-прокси.
- Доступ ко всем опубликованным лабораториям кода Private Service Connect.