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 服务已经足够了。
我有两个 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 服务已经足够了。