У меня есть пользовательская облачная сборка, которая запускает образ докера, размещенный в нашем реестре контейнеров Google, и не может подключиться к нашему Postgres с облачным SQL-сервером с SSL-аутентификацией и публичным IP-адресом без истечения времени ожидания (1800 с).
Контейнер Docker имеет правильные ключи клиента и корневой сертификат, а также пароль для подключения к реплике чтения Cloud SQL, так как я тестировал эту сборку локально с помощью той же команды запуска Docker, и он может подключиться правильно (используя белый список IP-адресов с компьютера, на котором выполняется сборка Docker локально). Однако при работе в облачной сборке с учетной записью службы облачной сборки по умолчанию она в настоящее время всегда истекает и не может подключиться к облаку. Sql.
Что я пробовал
- Включение разрешения Cloud SQL Viewer или Cloud SQL Editor для учетной записи службы облачной сборки
- Двойная / тройная / четверная проверка всех значений, используемых для открытия соединения postgres с Cloud SQL
- Повернутые сертификаты / ключи для Cloud SQL
- Я попытался настроить VPC для Cloud SQL, и все наши службы должны находиться в одной сети (по умолчанию) и указать IP-адрес подключения контейнера для postgres к IP-адресу частной сети, но это по-прежнему не работает (ошибка тайм-аута)
- Перестройка образа докера на этапе построения облака в случае, если между моим локальным образом док-станции и образом в облаке была некоторая разница
- Странно, но раньше это работало в прошлую пятницу, и ничего в нашей базе кода или в деталях Postgres не изменилось, поэтому мы подозреваем, что что-то изменилось в конце GCE.
- Настройка Cloud SQL для разрешения всех подключений (0.0.0.0/0) работает должным образом, указывая на вероятную проблему с неверной настройкой учетной записи службы с правильным доступом к Cloud SQL (Примечание. Я установил разрешения учетной записи службы на иметь либо Cloud SQL Viewer, либо Cloud SQL Editor, и оба все равно приводят к тайм-ауту)