07.K8S高可用集群节点规划

K8S高可用集群节点规划

1、部署拓扑图

07.K8S高可用集群节点规划_第1张图片

2、master节点数(物理机数)
总数 最少存活 失败容忍 说明
1 1 0 单个主节点时使用
2 2 0 不推荐
3 2 1 推荐
4 3 1 不推荐
5 3 2 推荐
6 4 2 不推荐
7 4 3 可以考虑,但会导致确定集群成员和仲裁的开销加大
8 5 3 不推荐
9 5 4 可以考虑,但会导致确定集群成员和仲裁的开销加大

说明:

  • k8s的一致性算法是RAFT,要求集群需要数量(n/2)+1的正常主节点才能提供服务

  • 脑裂现象:集群中的Master或Leader节点往往是通过选举产生的。

    在网络正常的情况下,可以顺利的选举出Leader。但当两个机房之间的网络通信出现故障时,选举机制就有可能在不同的网络分区中选出两个Leader。当网络恢复时,这两个Leader该如何处理数据同步?又该听谁的?这也就出现了“脑裂”现象。

    为了避免脑裂的问题,给出了一个规定:集群中存活的节点数必须要超过总节点数的半数才能继续提供服务,而正是由于这个规定,导致集群中n台和n+1台你的容灾能力是一样的(n为奇数),都只能坏一台。

  • 奇数的原因是防止资源的浪费,因此3个主节点有1个节点的容错率,而4个主节点也只有1个节点的容错率

  • 3或5则是因为1个没有容错率,7个主节或更多将导致确定集群成员和仲裁的开销加大,不建议这样做

3、worker节点数量
  • Kubernetes 支持最多 5000 个节点的集群
  • 可以按照需求追加worker节点,但是如果计划使用超过 500 个节点,需要考虑主节点性能瓶颈

你可能感兴趣的:(云原生,kubernetes,容器,云原生)