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

standalone network endpoint group (NEG) on GKE not working

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

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

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

集群服务运行良好,我可以使用

看到它
kubectl get service service-name

但我看不到 NEG 设置...以下命令 returns 什么都没有

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

我的 pod 公开端口 8080 我的服务映射 51000 到 8080 并且我提供了否定注释

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

我没有看到任何此类错误,但我也没有看到 NEG created/listed。

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

作为后续问题...

提前致谢!

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

创建新集群时,默认情况下禁用此选项,您必须在创建时启用它。您可以在 GKE 中查看您的集群详细信息,确认您的集群是否为 VPC Native。它应该是这样的:

VPC-native (alias IP)   Enabled

如果集群不是 VPC Native,您将无法使用此功能,如他们的限制所述:

如果您启用了 VPC Native,请确保 pods 具有相同的标签“目的:”和“主题:”以确保它们是服务的成员:

kubectl get pods --show-labels

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