OpenShift Container Platform 提供以下方法,用于在集群外部与在集群中运行的服务进行通信。
这些方法按优先顺序推荐。
如果您有 HTTP/HTTPS,请使用 Ingress 控制器。
如果您有除 HTTPS 之外的 TLS 加密协议。例如,对于带有 SNI 标头的 TLS,请使用 Ingress 控制器。
否则,请使用负载均衡器、外部 IP 或 `NodePort`。
方法 | 用途 |
---|---|
允许访问 HTTP/HTTPS 流量和除 HTTPS 之外的 TLS 加密协议(例如,带有 SNI 标头的 TLS)。 |
|
允许通过从池中分配的 IP 地址访问非标准端口的流量。大多数云平台都提供了一种使用负载均衡器 IP 地址启动服务的方法。 |
|
允许访问机器网络上特定 IP 地址或池中地址的流量。对于裸机安装或类似裸机的平台,MetalLB 提供了一种使用负载均衡器 IP 地址启动服务的方法。 |
|
允许通过特定 IP 地址访问非标准端口的流量。 |
|
在集群中的所有节点上公开服务。 |
对于提供对外部 IP 地址访问的通信方法,对 IP 地址的容错访问是另一个需要考虑的问题。以下功能提供对外部 IP 地址的容错访问。
IP 故障转移为一组节点管理虚拟 IP 地址池。它使用 Keepalived 和虚拟路由冗余协议 (VRRP) 实现。IP 故障转移仅为 2 层机制,依赖于组播。组播对于某些网络可能存在缺点。
MetalLB 具有 2 层模式,但不使用组播。2 层模式的缺点是它通过一个节点传输所有外部 IP 地址的流量。
您可以使用 IP 地址块配置集群,该地址块用于为服务分配外部 IP 地址。默认情况下,此功能处于禁用状态。此功能灵活,但会给集群或网络管理员带来最大的负担。集群已准备好接收目标为外部 IP 的流量,但每个客户都必须决定如何将流量路由到节点。