我想从 Google Cloud Function 连接到 Kubernetes (GKE) 容器。具体来说,容器有 postgres 数据库,我想读取表中的记录。
在 Golang 中:
func ConnectPostgres(w http.ResponseWriter, r *http.Request) {
db, err := sql.Open("postgres", "postgresql://postgres@10.32.0.142:5432/myDatabase")
if err != nil {
http.Error(w, "Error opening conn:" + err.Error(), http.StatusInternalServerError)
}
defer db.Close()
err = db.Ping()
if err != nil {
http.Error(w, "Error ping conn:" + err.Error(), http.StatusInternalServerError)
}
rows, err := db.Query("SELECT * FROM myTable")
fmt.Println(rows)
w.Write([]byte(rows))
}
10.32.0.142 是拥有容器的 pod 的内部 IP。
但是当云函数尝试 Ping 到 postgres 容器时,请求会超时。
我该如何解决这个问题?