【发布时间】:2019-09-28 06:20:46
【问题描述】:
我正在 GKE 上运行一个最小的有状态数据库服务。单节点集群。到目前为止,我已经在单个 pod 上将数据库设置为有状态集。该数据库在特定端口上公开了一个管理控制台以及强制数据库端口。我正在尝试做两件事。
- 通过全局 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 时,我如何强制执行身份验证? 我可以使用服务帐户角色或 oauth/openid。
我能否使用单个 NEG 公开多个端口?为了 例如如果我想向我的全局负载均衡器公开一个端口并且 另一个本地服务,这可能与单个 NEG 或 我应该使用专用的 ClusterIP 服务公开每个端口吗?
-
在哪里可以找到 google kubernetes 的文档/规范 注释。我尝试使用 neg 暴露两个端口 以下注释语法。这甚至受支持/有意义吗?
cloud.google.com/neg: '{"exposed_ports": {"51000":{},"51010":{}}'
提前致谢!
【问题讨论】:
标签: google-cloud-platform load-balancing google-kubernetes-engine