我已经创建了一个带有示例Spring Boot应用程序的Kubernetes集群,它在公共IP上运行良好。现在我想在Kubernetes集群中访问Spring引导的终点。我已经按照Google的教程来配置无服务器VPC访问。 (https://cloud.google.com/vpc/docs/configure-serverless-vpc-access?hl=bg)。我创建了无服务器VPC访问并在云功能之一中使用。
现在我的问题是,如何从我的云功能连接Kubernetes集群的内部ip?我在Go中编写了代码。
package p
import (
"fmt"
"io/ioutil"
"net/http"
)
func HelloWorld(w http.ResponseWriter, r *http.Request) {
fmt.Println("Starting the application...")
response, err := http.Get("http://10.59.247.177:47002/")
if err != nil {
fmt.Fprint(w, "The HTTP request failed with error %s\n", err)
} else {
data, _ := ioutil.ReadAll(response.Body)
fmt.Fprint(w, string(data))
}
}
但我收到错误:HTTP请求失败,错误%s获取http://10.59.247.177:47002/:拨打tcp 10.59.247.177:47002:i / o timeout
默认情况下,Kubernetes服务是Kubernetes集群的内部服务。您必须公开服务,以便来自Kubernetes外部的应用程序可以连接到它。
在Kubernetes中有三种主要的方式来公开服务:
在这里阅读更多https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types和https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer