我正在尝试了解从群集外部发起的呼叫的Kubernetes High Availability。(对于我的新内部Kubernetes集群)
例如:桌面应用程序需要调用托管在Kubernetes中的服务。
我认为有两种主要的方式可以实现这一点,NodePort和Ingress。
NodePort
在NodePort的节点故障期间会发生什么似乎是相当明显的。使用新脱机节点作为要寻址的节点的任何呼叫都将失败。如果您使用的是NodePort,则需要确保您有某种方法来检测您正在使用的节点是否已关闭,并将流量转移到另一个节点。(并恢复在检测到停机时间之前发生的任何丢失的流量。)
这似乎是负载均衡器的工作。它可以进行健康监控,并将流量发送到处于运行状态的节点。
入口
我不太确定入口控制器和入口资源是如何工作的。看起来这里有点魔力。入口控制器是否在幕后使用NodePort?我看到了很多关于负载均衡器的假设,这些假设在我读到的帖子中没有解释。预计集群外会有负载均衡器吗?
在哪种情况下,使用负载均衡器的NodePort和使用负载均衡器的入口有什么区别?负载均衡器向调用系统提供单个URL,然后它会尽最大努力使调用到达处于运行状态的Kubernetes节点(通过NodePort或入口控制器)。(这让我不禁要问,如果两者都确实需要负载均衡器来隐藏被调用的节点,为什么两者都存在。)
但是我再次感到困惑,因为您使用单个URL发送到Ingress资源,那么负载均衡器是如何决定节点的呢?
在我看来,Kubernetes似乎只在集群中具有高可用性。从集群外部,调用者的工作是确保它们将通过您自己的ping系统或负载均衡器寻址的节点。
Kubernetes有没有什么特性可以帮助减少节点停机时间?
从处理集群的桌面应用程序的角度来看,而不是从保持服务正常运行的pods的角度来看。
发布于 2021-02-25 11:57:32
是的,您是对的,入口控制器将在集群之外创建LoadBalancer。
入口控制器将管理集群内的入口对象,您可以重定向流量并在集群内对其进行管理。
Kubernetes是否有任何功能可以帮助减少节点停机时间
在节点上运行多个副本,如果您的一个节点出现故障,另一个节点上的其他PODs将正常运行并提供服务,直到旧的不健康节点恢复正常状态。
对不起,我不明白(在这种情况下,具有负载均衡器的NodePort和具有负载均衡器的入口有什么区别?)单个URL节点端口和入口部分。如果你想用简单的语言理解入口,你可以把它看作
NGINX..。您可以使用不同的SSL/TLS证书定义多个站点域和重定向规则。
https://stackoverflow.com/questions/66361274
复制相似问题