#google-cloud-sql #google-kubernetes-engine
#google-cloud-sql #google-kubernetes-engine
Вопрос:
Я пытаюсь подключиться к Google Cloud SQL из приложения node, которое работает в модуле Google Container Engine, управляемом Kubernetes. Я следовал инструкциям здесь, чтобы создать Cloud SQL proxy.
Когда я запускаю приложение, я получаю:
{
"code": "ENOTFOUND",
"errno": "ENOTFOUND",
"syscall": "getaddrinfo",
"hostname": "127.0.0.1:3306",
"host": "127.0.0.1:3306",
"port": 3306,
"fatal": true
}
Похоже, что прокси-сервер не может быть разрешен.
Я запустил kubectl describe pods <pod_name>
, и прокси-сервер, похоже, исправен:
cloudsql-proxy:
Container ID: docker://47dfb6d22d5e0924f0bb4e1df85220270b4f21e971228d03148fef6b3aad6c6c
Image: b.gcr.io/cloudsql-docker/gce-proxy:1.05
Image ID: docker://sha256:338793fcb60d519482682df9d6f88da99888ba69bc6da96b18a636e1a233e5ec
Port:
Command:
/cloud_sql_proxy
--dir=/cloudsql
-instances=touch-farm:asia-east1:api-staging=tcp:3306
-credential_file=/secrets/cloudsql/credentials.json
Requests:
cpu: 100m
State: Running
Started: Sat, 01 Oct 2016 20:38:40 1000
Ready: True
Restart Count: 0
Environment Variables: <none>
Единственное, что мне кажется необычным, это то, что Port
поле пустое, однако в руководстве, на которое ссылается выше, не было инструкции по предоставлению порта в файле конфигурации развертывания. Я также попытался указать порт 3306 в файле конфигурации, но, хотя порт затем отображается в kubectl describe pods
выходных данных, узел по-прежнему не может найти прокси.
Чего мне здесь не хватает? Почему я не могу разрешить прокси-сервер?
Редактировать (дополнительная информация)
Журналы из контейнера cloudsql-proxy:
2016-10-01T11:44:40.108529344Z 2016/10/01 11:44:40 Listening on 127.0.0.1:3306 for touch-farm:asia-east1:api-staging
2016-10-01T11:44:40.108561194Z 2016/10/01 11:44:40 Ready for new connections
Ответ №1:
Похоже, вы указываете хост как 127.0.0.1:3306
вместо 127.0.0.1
.
Комментарии:
1. Facepalm. Я был сбит с толку тем, что было написано в руководстве. Спасибо!