Kubernetes - 两个容器之间以及与外界通信的最佳方式

Kubernetes - Best way to communicate between two containers and to the outside word

我有两个 Kubernetes developpements:一个带有 Grafana pod,另一个带有 InfluxDB pod。

我要:

1) 将我的 Grafana:3000 暴露给外界

2) Grafana 能够连接到 InfluxDB:8086

我看到它是用两个单独的 "services" 完成的:一个 Grafana 服务(类型 = NodePort,目标端口 = 3000)和一个 InfluxDB 服务(类型 = ClusterIP,目标端口 = 8086)。

它工作正常。 然而 can/should 只需一个 "service" ?

使用入口。您可以使用Nginx、Caddy或其他工具提供入口服务并在那里定义入口的路由。

对于南北向流量,即在集群 LoadBalancer 或入口外公开服务比 NodePort 更好,因为当使用 NodePort 时,如果节点 IP 或端口发生变化,则客户端需要在他们使用的端点中进行更改访问服务。

对于集群内服务之间的东西向流量,clusterIP 服务已经足够了。