# #google-cloud-platform #google-cloud-functions #google-cloud-composer #google-cloud-dns #google-vpc
Вопрос:
У нас возникли проблемы с настройкой двух компонентов GCP (GCP Cloud Composer, функции GCP) под управлением службы VPC для одного проекта. Мы можем настроить их отдельно с помощью элементов управления службами VPC, но как только мы добавим второй компонент, у нас возникнут проблемы.
Как только мы настроили правила брандмауэра и настройки DNS для облачной функции, программа Composer начинает отказывать. Средство мониторинга композитора (для веб-сервера, SQL server и т.д.) Показывает, что композитор не работает.
Что мы делаем не так?
Документы, которые мы использовали:
https://cloud.google.com/functions/docs/securing/using-vpc-service-controls
https://cloud.google.com/composer/docs/configuring-vpc-sc
Для композитора мы используем следующие настройки:
- 3 узла
- стандартный тип машины
- версия изображения: композитор-1.16.3-воздушный поток-1.10.15
- python: v3
- частный IP-композитор
API, которые мы включили для управления службами VPC:
- API Google Cloud Dataproc
- API облачных функций
- Google Cloud Pub/Sub API
- Облачный SQL API
- API облачного хранилища Google
- API Google Compute Engine
- API движка Google Kubernetes
- API реестра контейнеров Google
- API облачного мониторинга
- API облачного композитора
- API реестра артефактов
Настройки брандмауэра (на основе документации):
Имя | Тип | Цели | Фильтры | Протоколы / Порты | Экшен | Приоритет |
---|---|---|---|---|---|---|
композитор-выход-gke-кластер-все-порты | Покидание | Применяются ко всем | Диапазоны IP-адресов: 10.10.0.0/16 | tcp, udp | Позволять | 1000 |
композитор-выход-проверка здоровья | Покидание | Применяются ко всем | Диапазоны IP-адресов: 130.211.0.0/22, 35.191.0.0/16 | tcp:80 443 | Позволять | 1000 |
композитор-выход-порт53 | Покидание | Применяются ко всем | Диапазоны IP-адресов: 0.0.0.0/0 | tcp:53, udp:53 | Позволять | 1000 |
композитор-выход-веб-сервер | Покидание | Применяются ко всем | Диапазоны IP-адресов: 172.31.251.0/24 | tcp:3306 3307 | Позволять | 1000 |
ограниченные-google-api | Покидание | Применяются ко всем | Диапазоны IP-адресов: 199.36.153.4/30 | tcp:443 | Позволять | 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 |
The DNS settings (based on the documentation):
DNS name: googleapis.com.
Type: Private
DNS name | Type | TTl(Seconds) | Data |
---|---|---|---|
*.googleapis.com. | CNAME | 300 | restricted.googleapis.com. |
googleapis.com. | СОА | 21600 | ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 |
googleapis.com. | нс | 21600 | ns-gcp-private.googledomains.com. |
DNS-имя: cloudfunctions.net. Тип: Частный
DNS-имя | Тип | TTl(секунды) | Данные |
---|---|---|---|
*.cloudfunctions.net. | A | 300 | 199.36.153.4,199.36.153.5,199.36.153.6,199.36.153.7 |
cloudfunctions.net | нс | 21600 | ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 |
cloudfunctions.net. | СОА | 21600 | ns-gcp-private.googledomains.com. |
DNS-имя: pkg.dev. Тип: Частный
DNS-имя | Тип | TTl(секунды) | Данные |
---|---|---|---|
*.pkg.dev. | CNAME | 300 | пкг.дев. |
пкг.дев. | СОА | 21600 | ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 |
пкг.дев. | нс | 21600 | ns-gcp-private.googledomains.com. |
пкг.дев. | A | 300 | 199.36.153.4,199.36.153.5,199.36.153.6,199.36.153.7 |
DNS-имя: gcr.io. Тип: Частный
DNS-имя | Тип | TTl(секунды) | Данные |
---|---|---|---|
*.gcr.io. | CNAME | 300 | gcr.io. |
gcr.io. | СОА | 21600 | ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 |
gcr.io. | нс | 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 |
Спасибо вам за любую идею или помощь, которую вы можете дать.
Комментарии:
1. Можете ли вы предоставить некоторые журналы или фактические сообщения об ошибках, которые вы получаете ? Из вашего описания трудно сказать, что здесь вызывает проблему.
2. Проблема в том, что трудно получить соответствующий журнал… Композитор просто начинает выходить из строя в соответствии с пользовательским интерфейсом мониторинга после настройки правил брандмауэра и настроек DNS. Этот пользовательский интерфейс, похоже,подводит итоги непротиворечивым образом. После изменения разрешения по времени иногда он показывает сбой, иногда все зеленое. После включения регистрации в подсети композитора StackDriver сбрасывается слишком большим количеством записей, чтобы отладить его должным образом. Тем временем мы разобрались с проблемой, я опишу ее ниже.
Ответ №1:
Тем временем мы разобрались с проблемой:
- Наиболее проблематичным является
A
отсутствие записи DNS типаgoogleapis.com.
, в которой содержатся IP-адреса. - Вторая проблема заключалась в том, что правило брандмауэра, исходящее из документации настроек VPC SC облачной функции, заблокировало связь между:
- узлы композитора в подсети
- между рабочими узлами и Главным узлом (кластера Kubernetes, созданного для composer), который автоматически создается в другом проекте и подключается с помощью сетевого пиринга к подсети работников Composer
Эти две документации, очевидно, не охватывают этот особый случай, когда две из этих служб должны использоваться вместе. После устранения вышеперечисленных проблем он начал работать.
Проблемы, с которыми мы все еще сталкиваемся:
- отлаживать такого рода проблемы сложно, потому что пользовательский интерфейс мониторинга композитора, похоже, отображает информацию несогласованным образом
- трудно использовать журналы StackDriver для отладки после их включения в подсети, потому что в них просто слишком много информации, и они регистрируются на уровне «информация», а не на уровне «предупреждение» или «ошибка» .