如何使用无服务器VPC访问云功能

问题描述 投票:1回答:1

我已经创建了一个带有示例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 google-cloud-platform google-cloud-functions serverless
1个回答
1
投票

默认情况下,Kubernetes服务是Kubernetes集群的内部服务。您必须公开服务,以便来自Kubernetes外部的应用程序可以连接到它。

在Kubernetes中有三种主要的方式来公开服务:

  1. 公共负载均衡器。服务暴露于互联网。
  2. 内部负载平衡器。服务在VPC和区域内部暴露。
  3. NodePort。服务在某些高端口上的Kube节点IP地址上公开。这使得服务在内部以及VPC内的区域之间可见。

在这里阅读更多https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-typeshttps://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer

© www.soinside.com 2019 - 2024. All rights reserved.