kubernetes - 在 NAT 后面公开 Kubernetes 集群内的服务

标签 kubernetes google-cloud-platform google-kubernetes-engine nat gke-networking

我有一个 GKE 集群设置 Cloud NAT ,因此来自任何节点/容器的流量将具有相同的外部 IP。 (我在使用 3rd 方服务时需要这个用于白名单目的)。

现在,如果我想在这个做基本流量转发的集群上部署一个代理服务器,我该如何暴露代理服务器“端点”?或者更笼统地说,如果我将服务部署到这个 GKE 集群,我该如何公开它?

最佳答案

在 NAT 后面运行的代理服务器?

坏主意,除非它仅适用于您的 kubernetes 集群 工作负载,但您没有指定任何地方它应该只能由运行在同一集群中的其他 Pod 访问集群。

如您所见here :

Cloud NAT does not implement unsolicited inbound connections from the internet. DNAT is only performed for packets that arrive as responses to outbound packets.

所以它并不意味着可以从外部访问。

如果您想公开集群中的任何应用程序,使其可供其他 Pod 使用,请使用简单的 ClusterIP Service这是默认类型,即使您根本没有指定它的类型,它也会被创建。

关于kubernetes - 在 NAT 后面公开 Kubernetes 集群内的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60500896/

相关文章:

kubernetes - kubernetes_sd_config(在prometheus 内)与metrics-server 和kube-state-metrics 有什么区别?

go - 为什么解码返回结果为空

elasticsearch - FluentBit 和 ES 的重复和缺失日志条目

docker - 不允许 kubernetes mysql chown 操作

google-cloud-platform - 403 "Request had insufficient authentication scopes"在 gcloud 容器集群获取凭据期间

docker - 来自服务器的错误(未找到):找不到deployments.extensions “keras-app”

Terraform GKE 从私有(private) gcr 中提取问题

node.js - 如何在 Cloud Run 中获取环境变量?

google-cloud-platform - 如何从云存储中的存储桶中下载对象?

kubernetes - Rabbit mq - 等待 Mnesia 表时出错