GKE上的独立网络端点组(NEG)无法正常运行

时间:2019-09-28 06:20:46

标签: google-cloud-platform load-balancing google-kubernetes-engine

我正在GKE上运行最小状态数据库服务。单节点集群。到目前为止,我已经将数据库设置为一个有状态集。数据库已经在特定端口上公开了管理控制台以及必需的数据库端口。我正在尝试做两件事。

  • 通过全局HTTP(S)负载均衡器公开管理端口
  • 将数据库端口暴露在GKE之外,以供Cloud Functions或App Engine应用程序使用。

我的有状态集运行正常,并且从容器日志中可以看到数据库已正确启动并且正在侦听所需的端口。

我正在尝试使用简单的ClusterIP服务设置独立的NEG(参考:https://cloud.google.com/kubernetes-engine/docs/how-to/standalone-neg)。

集群服务正常运行,我可以使用

看到它
kubectl get service service-name

但是我看不到NEG设置...下面的命令什么都不返回

$ gcloud compute network-endpoint-groups list
Listed 0 items.

我的pod暴露了8080端口,我的服务将51000映射到8080,并且我提供了neg注释

cloud.google.com/neg: '{"exposed_ports": {"51000":{}}'

我没有看到任何此类错误,但是也没有看到NEG创建/列出。

关于我将如何调试它的任何建议。

作为后续问题...

  • 当将NEG暴露在全局负载均衡器上时,我该如何执行authn? 可以使用服务帐户角色或oauth / openid。

  • 我可以使用单个NEG公开多个端口吗?对于 例如如果我想向我的全局负载均衡器公开一个端口,并且 另一个本地服务,是否可以通过单个NEG或 我应该使用专用的ClusterIP服务公开每个端口吗?

  • 我在哪里可以找到Google kubernetes的文档/规范 注释。我试图使用 遵循注释语法。甚至支持/有意义吗?

    cloud.google.com/neg:'{“ exposed_ports”:{“ 51000”:{},“ 51010”:{}}'

谢谢!

1 个答案:

答案 0 :(得分:0)

为了创建由网络端点组支持的服务,您需要在VPC本机的GKE群集上进行工作:

创建新集群时,默认情况下禁用此选项,并且必须在创建时启用它。您可以转到GKE中的“群集”详细信息,确认您的群集是否为VPC本机。它应该看起来像这样:

VPC-native (alias IP)   Enabled

如果群集不是VPC本机,则将无法按照其限制说明使用此功能:

如果您启用了VPC本机,请确保这些窗格具有相同的标签“ purpose:”和“ topic:”,以确保它们是该服务的成员:

kubectl get pods --show-labels

您还可以按照Kubernetes文档中的描述创建多端口服务: