kube-system/ingress 控制器 Pod 的多个副本?

Joe*_*oeS 5 kubernetes

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

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

有些 Pod(如 Heapster)您可能只能拥有一个实例,但我想知道是否有人对哪些内容可以扩展、哪些内容不能扩展以及为什么这是默认行为有任何指导?

谢谢,

Ric*_*ico 6

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

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