У нас возникли проблемы с настройкой двух компонентов GCP (GCP Cloud Composer, GCP Functions) под VPC Service Controls для одного проекта. Мы можем настроить их отдельно с помощью VPC Service Controls, но как только мы добавляем второй компонент, у нас возникают проблемы.
Как только мы настроили правила брандмауэра и параметры DNS для облачной функции, Composer начинает давать сбои. Инструмент мониторинга Composer (для веб-сервера, SQL-сервера и т.д.) показывает, что композитор нездоров.
Что мы делаем неправильно?
Документация, которую мы использовали:
https://cloud.google.com/functions/docs/securing/using-vpc-service-controls
https://cloud.google.com/composer/docs/configuring-vpc-sc
Для Composer мы используем следующие настройки: 3 узла стандартный тип машины версия образа: composer-1.16.3-airflow-1.10.15 python: v3 private IP Composer
API, которые мы включили для VPC Service Controls: Ограниченные службы: Google Cloud Dataproc API Cloud Functions API Google Cloud Pub/Sub API Cloud SQL API Google Cloud Storage API Google Compute Engine API Google Kubernetes Engine API Google Container Registry API API облачного мониторинга Cloud Composer API API реестра артефактов
Настройки FireWall (на основе документации):
Имя | Тип | Цели | Фильтры | Протоколы / порты | Действие | Приоритет |
---|---|---|---|---|---|---|
composer-egress-gke-cluster-all-port | Egress | Применить ко всем | IP диапазоны: 10.10.0.0/16 | tcp, udp | Allow | 1000 |
composer-egress-healthcheck | Egress | Apply to all | IP ranges: 130.211.0.0/22, 35.191.0.0/16 | tcp:80,443 | Allow | 1000 |
composer-egress-port53 | Egress | Apply to all | IP ranges: 0.0.0.0/0 | tcp:53, udp:53 | Allow | 1000 |
composer-egress-webserver | Egress | Apply to all | IP ranges: 172.31.251.0/24 | tcp:3306,3307 | Allow | 1000 |
restricted-google-apis | Egress | Apply to all | IP ranges: 199.36.153.4/30 | tcp:443 | Allow | 1000 |
composer-deny-all | Egress | Apply to all | IP ranges: 0.0.0.0/0 | all | Deny | 2000 |
composer-ingress-helthcheck | Ingress | Apply to all | IP ranges: 130.211.0.0/22, 35.191.0.0/16 | tcp:80,443 | Allow | 1000 |
ingress-iap | Ingress | Apply to all | IP ranges: 35.235.240.0/20 | tcp | Allow | 1000 |
gke-europe-west1-composer-dns-xxx-xxx-all | Ingress | gke-europe-west1-composer-dns-xxx-xxx-node | IP ranges: 10.124.0.0/14 | tcp;udp;esp;ah;sctp;icmp | Allow | 1000 |
gke-europe-west1-composer-dns-xxx-xxx-master | Ingress | gke-europe-west1-composer-dns-xxx-xxx-node | IP ranges: 172.16.8.0/28 | tcp:10250,443 | Allow | 1000 |
gke-europe-west1-composer-dns-xxx-xxx-vms | Ingress | gke-europe-west1-composer-dns-xxx-xxx-node | IP ranges: 10.10.0.0/16 | tcp:1-65535;udp:1-65535;icmp | Allow | 1000 |
Настройки DNS (на основе документации):
Имя DNS: googleapis.com. Тип: Private
DNS name | Type | TTl(Seconds) | Data |
---|---|---|---|
*.googleapis.com. | CNAME | 300 | restricted.googleapis.com. |
googleapis.com. | SOA | 21600 | ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 |
googleapis.com. | NS | 21600 | ns-gcp-private.googledomains.com. |
DNS имя: cloudfunctions.net. Тип: Private
DNS name | Type | TTl(Seconds) | Data |
---|---|---|---|
*.cloudfunctions.net. | A | 300 | 199.36.153.4,199.36.153.5,199.36.153.6,199.36.153.7 |
cloudfunctions.net | NS | 21600 | ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 |
cloudfunctions.net. | SOA | 21600 | ns-gcp-private.googledomains.com. |
DNS имя: pkg.dev. Тип: Private
DNS name | Type | TTl(Seconds) | Data |
---|---|---|---|
*.pkg.dev. | CNAME | 300 | pkg.dev. |
pkg.dev. | SOA | 21600 | ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 |
pkg.dev. | NS | 21600 | ns-gcp-private.googledomains.com. |
pkg.dev. | A | 300 | 199.36.153.4,199.36.153.5,199.36.153.6,199.36.153.7 |
DNS name: gcr.io. Тип: Private
DNS name | Type | TTl(Seconds) | Data |
---|---|---|---|
*.gcr.io. | CNAME | 300 | gcr.io. |
gcr.io. | SOA | 21600 | ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 |
gcr.io. | NS | 21600 | ns-gcp-private.googledomains.com. |
gcr.io. | A | 300 | 199.36.153.4,199.36.153.5,199.36.153.6,199.36.153.7 |
Спасибо за любую идею или помощь, которую вы можете дать.
Тем временем мы разобрались с проблемой:
A
отсутствовала на googleapis.com.
которая содержит IP-адреса. Эти две документации, очевидно, не охватывают этот особый случай, когда два этих сервиса должны использоваться вместе. После устранения вышеуказанных проблем все заработало.
Проблемы, с которыми мы все еще сталкиваемся:
О проблемах с отладкой в ответе, предоставленном вами.
Проблема с логами Stackdriver:
Эта проблема уже есть в открытых проблемах общедоступного трекера gcp. Вы можете отслеживать статус по ссылке ниже[1].
Проблема с панелью мониторинга Composer:
Вы указали общую проблему. Посмотрите, есть ли открытые вопросы по вашей проблеме по ссылке ниже [2]. Если нет, создайте новую проблему.
Вы можете найти или создать проблемы, связанные с продуктом gcp, по ссылке ниже.
Ссылка на примечания к выпуску службы GCP Cloud composer:
Вы можете периодически проверять эту страницу на наличие объявлений о новых или обновленных функциях, исправлениях ошибок. и устаревшая функциональность службы облачного композитора.