1

我正在设计一个具有 HA 和负载分配的解决方案。我有一个关于如何在工作节点和主节点之间建立关系以支持 HA(容错)和负载分配的问题。

我的理解是,工作节点由主节点管理,这意味着在构建工作节点期间,我们将其加入主节点以建立信任并与主节点链接。

所以现在如果我想在主节点上为集群构建 HA:

  • 我将定义 3 个主节点,每个主节点都有一个 API 服务器,它们前面有一个负载均衡器。
  • 在外部构建具有 3 个节点的 ETCD 集群并让主节点使用它们。
  • 3 个主节点将各有一个调度程序。

进入工作节点:

  • 我通过使用 VIP/负载平衡 API 服务器使其加入主节点来启动工作节点。

所以我的问题是:

  • 在 3 个主节点上,我们应该有一个控制器吗?
  • 我们可以将工作节点链接到 3 个主节点吗?如果是,这样做有什么好处?使用负载均衡器/VIP不是更好吗?在那种情况下,我们仍然有 5000 个节点的限制吗?或者最多可以有 5000X3 个工作节点?
  • 我们可以像在 etcd 中那样拥有一个主动-被动的 API 服务器集群吗?即使我们可以在初始化阶段使用一组配置来做到这一点?
4

2 回答 2

0

在 3 个主节点上,我们应该有一个控制器吗?

我不确定您在说什么控制器(Kubernetes 控制器?kube-controller-manager?)。总之,所有主节点都将具有相同的 Kubernetes 组件:kube-apiserver、kube-scheduler、kube-controller-manager、kube-proxy、runtime 等。

我们可以将工作节点链接到 3 个主节点吗?如果是,这样做有什么好处?使用负载均衡器/VIP不是更好吗?在那种情况下,我们仍然有 5000 个节点的限制吗?或者最多可以有 5000X3 个工作节点?

如果您有 3 个主设置,一个处于活动状态(领导者),另一个处于备用状态,则这些组件的配置法定人数只有一个领导者,因此您不能扩展 5000x3 节点,5000 的限制仍然存在申请,因为你总是在和领导说话。

我们可以像在 etcd 中那样拥有一个主动-被动的 API 服务器集群吗?即使我们可以在初始化阶段使用一组配置来做到这一点?

这就是它的工作方式。在 3 主设置中,有 1 个主动和 2 个被动,在 5 个主设置中,有 1 个主动和 5 个被动。

希望能帮助到你!

于 2019-04-15T17:33:55.540 回答
0

是的,我说的是 kube 控制管理器。现在我知道它将以领导从模式运行,我的意思是 kube 控制管理器以及 kube 调度。所以只有一位大师在领导这些。

是的,我也在想它不会超过 5000(主节点的限制)。

我不确定 kube api 服务器在领导从属集群中运行,这就是为什么我认为我们需要在它上面放置一个解决方案来隐藏真正的 api 服务器 ip 或 dns。

一位同事告诉我,我们可以将多个 api 服务器连接到同一个工作节点,我自己没有尝试过,但我真的怀疑它会起作用,我仍然相信 DNS 服务器的选项,就像 Ruote 53 或像 nigix 这样的代理,甚至像 F5 这样的硬件平衡器应该是让工作人员与活动主机通信而不依赖它的可能选项。

于 2019-04-16T18:09:08.650 回答