Kubernetes入口和节点故障

Kubernetes入口和节点故障,kubernetes,kubernetes-ingress,Kubernetes,Kubernetes Ingress,我试图了解Kubernetes对于源自集群之外的呼叫的高可用性。(适用于我的新本地Kubernetes集群) 例如:桌面应用程序需要调用Kubernetes中托管的服务 我看到了两种主要的方法,节点端口和入口 节点端口 使用NodePort发生节点故障时会发生什么情况似乎相当明显。任何将新脱机节点用作其寻址节点的调用都将失败。如果您使用的是NodePort,则需要确保您有某种方法来检测您正在使用的节点已关闭,并将流量移动到另一个节点。(并恢复在检测到停机之前发生的任何丢失的流量。) 这似乎是负载

我试图了解Kubernetes对于源自集群之外的呼叫的高可用性。(适用于我的新本地Kubernetes集群)

例如:桌面应用程序需要调用Kubernetes中托管的服务

我看到了两种主要的方法,节点端口和入口

节点端口 使用NodePort发生节点故障时会发生什么情况似乎相当明显。任何将新脱机节点用作其寻址节点的调用都将失败。如果您使用的是NodePort,则需要确保您有某种方法来检测您正在使用的节点已关闭,并将流量移动到另一个节点。(并恢复在检测到停机之前发生的任何丢失的流量。)

这似乎是负载平衡器的工作。它可以进行健康监控,并将流量发送到启动的节点

进入 我不太清楚入口控制器和入口资源是如何工作的。这里似乎有一点魔力。入口控制器是否在引擎盖下使用NodePort?我看到了很多关于负载平衡器的假设,这些假设在我阅读的文章中没有解释。是否预期集群外部将安装负载平衡器

在这种情况下,使用负载平衡器的NodePort和使用负载平衡器的Ingress之间有什么区别?负载平衡器向调用系统提供单个URL,然后尽最大努力使调用到达启动的Kubernetes节点(通过NodePort或入口控制器)。(这让我不禁要问,如果两者都需要负载平衡器来隐藏被调用的节点,为什么两者都存在。)

但我再次感到困惑,因为您使用单个URL发送到入口资源,那么负载平衡器如何决定节点

在我看来,Kubernetes似乎只在集群内具有高可用性。在集群之外,调用者的任务是确保他们将通过自己的ping系统或负载平衡器寻址的节点


Kubernetes是否有任何功能可以帮助解决节点停机时间问题?从解决集群的桌面应用程序的角度来看,而不是从保持服务正常运行的POD的角度来看。

是的,您是对的ingress controller将在集群外创建负载平衡器

入口控制器将管理集群内的入口对象,您可以重定向流量并在集群内对其进行管理

Kubernetes是否有任何功能可以帮助解决节点停机时间问题

如果您的一个节点出现故障,请跨节点运行多个副本。另一个节点上的其他POD将启动并提供服务,直到旧的不健康节点恢复正常状态


抱歉,我没有理解(在这种情况下,带负载平衡器的NodePort和带负载平衡器的Ingress之间有什么区别?)单个URL节点端口和入口部分的含义。如果你想用简单的词来理解入口,你可以把它看作是<强> nGnx。您可以使用不同的SSL/TLS证书定义多站点域和重定向规则。

是的,您是对的,入口控制器将在集群外创建LoadBalancer

入口控制器将管理集群内的入口对象,您可以重定向流量并在集群内对其进行管理

Kubernetes是否有任何功能可以帮助解决节点停机时间问题

如果您的一个节点出现故障,请跨节点运行多个副本。另一个节点上的其他POD将启动并提供服务,直到旧的不健康节点恢复正常状态


抱歉,我没有理解(在这种情况下,带负载平衡器的NodePort和带负载平衡器的Ingress之间有什么区别?)单个URL节点端口和入口部分的含义。如果你想用简单的词来理解入口,你可以把它看作是<强> nGnx。您可以使用不同的SSL/TLS证书来定义多站点域和重定向规则。

这个问题有几个方面-依次回答它们。Kubernetes中的默认服务类型是ClusterIP、NodePort和LoadBalancer

什么是服务? 在Kubernetes中,服务是一种抽象,它定义了一组逻辑POD和访问POD的策略(有时这种模式称为微服务)

基本上,它是一个逻辑负载平衡器,位于pod集合前面,由pod标签决定

集群是如何工作的? ClusterIP是一个内部服务,这意味着分配给服务的IP地址是集群的内部地址。它在kube proxy中发挥了某种魔力(如果您想了解更多,请阅读)。死吊舱将自动从负载平衡中移除

NodePort是如何工作的? NodePort是一种外部服务,它通过在主机中打开端口来工作。ClusterIP是自动创建的(),通过更多的kube代理魔法,到达节点端口的流量被发送到ClusterIP,然后根据需要发送到后端pod

如果您点击的NodePort所在的节点发生故障,您将无法访问应用程序,这是正确的

   traffic
      |
      v
--------------    --------------    --------------
|            |    |            |    |            |
|  NodePort  |    |  NodePort  |    |  NodePort  |
|            |    |            |    |            |
--------------    --------------    --------------
负载平衡器是如何工作的? LoadBalancer是一种外部服务,它通过在每个节点上打开的节点报告之间进行负载平衡来工作。这意味着在封面下,当您创建负载平衡器时,将创建一个节点端口。通常,这适用于云提供商:创建一个云提供商负载平衡器资源,将流量路由到每个节点上的节点报告。运行状况检查内置于云提供商负载平衡器中,以确定哪些节点已启动

                     traffic
                        |
                        v
              --------------------
              |                  |
              |  Cloud Provider  |
              |  Load Balancer   |
              |                  |
              --------------------
      |-----------------|------------------|
      v                 v                  v
--------------    --------------    --------------
|            |    |            |    |            |
|  NodePort  |    |  NodePort  |    |  NodePort  |
|            |    |            |    |            |
--------------    --------------    --------------
入口控制器是如何工作的? 入口控制器(通常)是在集群上运行的软件组件,提供L7路由(与LoadBalancer提供的L4路由相反)。通常,这将是自动的