У меня есть то, что я считаю достаточно простой настройкой в Google Cloud - кластер GKE, экземпляр Cloud SQL и экземпляр виртуальной машины Kafka «Click-To-Deploy».
Все ресурсы находятся в одном VP C, с правилами брандмауэра, разрешающими весь трафик c на внутренние блоки VP C CIDR.
Модули в кластере GKE не имеют проблем с доступом к облаку SQL экземпляр через свой частный IP-адрес. Но они не могут получить доступ к экземпляру Kafka через его частный IP-адрес:
# kafkacat -L -b 10.1.100.2
% ERROR: Failed to acquire metadata: Local: Broker transport failure
Я запустил другую виртуальную машину вручную в VP C, и у нее нет проблем с подключением к экземпляру Kafka. :
# kafkacat -L -b 10.1.100.2
Metadata for all topics (from broker -1: 10.1.100.2:9092/bootstrap):
1 brokers:
broker 0 at ....us-east1-b.c.....internal:9092
1 topics:
topic "notifications" with 1 partitions:
partition 0, leader 0, replicas: 0, isrs: 0
Кажется, я не вижу реальной разницы в сетевом взаимодействии между контейнерами в GKE и виртуальной машиной, запускаемой вручную, тем более, что оба могут получить доступ к экземпляру Cloud SQL на 10.10.0.3.
Где мне go искать, что блокирует соединение?