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

时间:2018-10-01 22:33:22

标签: kubernetes

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

我们不得不增加入口控制器的副本数量,因为它是单点故障。但是,我对使网络图看起来如何并不特别满意,并且我想如果我们的任何应用程序为有状态的话,这都会引起问题。

某些吊舱(例如堆垛机)可能只能有一个实例,但是我想知道是否有人对可以扩展和不能扩展的准则有任何规定,为什么这是默认行为?

谢谢

2 个答案:

答案 0 :(得分:3)

我没有看到扩展入口控制器的任何问题,您只有更多副本,并且由外部IP或负载均衡器提供服务。如果其中之一发生故障,您的负载均衡器将停止将请求转发到发生故障的入口。

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

答案 1 :(得分:0)

nginx入口控制器实际上是一个Deployment。参见here

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

kubectl scale deployment --namespace nginx-ingress nginx-ingress-controller --replicas=3