2016-10-01 101 views
2

我試圖從節點應用程序連接到Google Cloud SQL,該節點應用程序在由Kubernetes管理的Google Container Engine窗格中運行。我按照指示here創建了一個Cloud SQL代理。從Container Engine連接到Google Cloud SQL:無法解析雲端SQL代理

當我運行應用程序時,我得到:

{ 
    "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代理容器

日誌:

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 

回答

4

它看起來像你指定主機127.0.0.1:3306而不是127.0.0.1

+0

Facepalm。我被教程中寫的內容拋棄了。謝謝! –