Kubernetes kube系统/入口控制器吊舱的多个副本?

Kubernetes kube系统/入口控制器吊舱的多个副本?,kubernetes,Kubernetes,我们有一个相对标准的Kubernetes集群,它位于负载平衡器后面的云中。我们发现大多数系统吊舱仅作为单个实例运行,真正令人担忧的是,默认情况下,我们的nginx入口控制器也将作为单个实例运行。这意味着,在节点发生故障的情况下,每个应用程序都有1/n的机会停机,直到活动性探测器启动并移动入口控制器吊舱 我们不得不增加入口控制器的副本数量,因为它是单点故障。然而,我对网络图的外观不是特别满意,我想如果我们的任何应用程序都是有状态的,这会导致问题 有些pod(比如heapster)可能只有一个实例,

我们有一个相对标准的Kubernetes集群,它位于负载平衡器后面的云中。我们发现大多数系统吊舱仅作为单个实例运行,真正令人担忧的是,默认情况下,我们的nginx入口控制器也将作为单个实例运行。这意味着,在节点发生故障的情况下,每个应用程序都有1/n的机会停机,直到活动性探测器启动并移动入口控制器吊舱

我们不得不增加入口控制器的副本数量,因为它是单点故障。然而,我对网络图的外观不是特别满意,我想如果我们的任何应用程序都是有状态的,这会导致问题

有些pod(比如heapster)可能只有一个实例,但我想知道是否有人对哪些可以和哪些不能进行扩展有任何指导原则,以及为什么这是默认行为

谢谢


Joe

我看不出扩展入口控制器有任何问题,您只是拥有更多副本,并由外部IP或负载平衡器提供服务。如果其中一个宕机,负载平衡器将停止将请求转发到宕机的入口


就后端而言,您也可以拥有一个或多个副本,这实际上取决于您想要的冗余类型以及服务类型。话虽如此,我真的不推荐有状态应用的入口。入口位于第7层(HTTP(s)),您最好在集群中直接使用TCP进行连接。例如,连接到MySQL或PostgreSQL实例。我想ElasticSearch是通过HTTP(s)添加数据的例外之一,但我会小心通过入口发布大量数据。

nginx入口控制器实际上是一个
部署。看

您的命名空间和部署名称可能不同,但请尝试以下操作:

kubectl规模部署--命名空间nginx-ingres nginx-ingres控制器--副本=3