Kubernetes|Kubernetes 笔记 / 入门 / 生产环境 / 用部署工具安装 Kubernetes / 用 kubeadm 启动集群 / 两种高可用拓扑

目录、参考文献
本文将介绍用于配置高可用(highly available (HA))Kubernetes 集群拓扑的两个选项

  • 堆叠(stacked)控制平面节点,etcd 节点与控制平面节点位于同一位置
  • 外部 etcd 节点,etcd 与控制平面运行在不同的节点
在配置高可用集群之前,应该仔细考虑每种拓扑的优缺点
注意:
kubeadm 会静态地启动 etcd 集群
详见 etcd 集群指南
1. 堆叠(stacked)etcd 拓扑 在堆叠高可用集群拓扑中
etcd 集群提供的分布式数据存储集群
堆叠在运行控制平面组件的 kubeadm 管理的节点形成的集群之上
每个控制平面节点都运行了一个 kube-apiserverkube-schedulerkube-controller-manager 实例
kube-apiserver 通过一个负载均衡器暴露给工作节点
每个控制平面节点都会创建一个本地 etcd 成员
这个 etcd 成员只与这个节点上的 kube-apiserver 通信
本地的 kube-controller-managerkube-scheduler 实例也一样
这种拓扑将控制平面与 etcd 成员耦合在相同的节点上
这样比使用外部 etcd 节点的集群更容易配置,并且更容易管理副本
然而,堆叠集群存在耦合失败的风险
如果一个节点发生故障,则 etcd 成员与控制平面实例都将丢失,并且冗余会受到影响
可以通过添加更多控制平面节点来降低此风险
因此,应该为高可用集群运行至少三个堆叠的控制平面节点
这是 kubeadm 中的默认拓扑
当使用 kubeadm initkubeadm join --control-plane
在控制平面节点上会自动创建本地 etcd 成员
Kubernetes|Kubernetes 笔记 / 入门 / 生产环境 / 用部署工具安装 Kubernetes / 用 kubeadm 启动集群 / 两种高可用拓扑
文章图片

2. 外部 etcd 拓扑 【Kubernetes|Kubernetes 笔记 / 入门 / 生产环境 / 用部署工具安装 Kubernetes / 用 kubeadm 启动集群 / 两种高可用拓扑】在外部 etcd 高可用集群拓扑中
etcd 集群提供的分布式数据存储集群
位于由运行控制平面组件的节点形成的集群的外部
就像堆叠的 etcd 拓扑一样,外部 etcd 拓扑中的每个控制平面节点都会运行 kube-apiserverkube-schedulerkube-controller-manager 实例
同样,kube-apiserver 使用负载均衡器暴露给工作节点
但是 etcd 成员在不同的主机上运行
每个 etcd 主机与每个控制平面节点的 kube-apiserver 通信
这种拓扑结构解耦了控制平面与 etcd 成员
因此它提供了一种高可用设置,失去控制平面实例或 etcd 成员的影响较小
并且不会像堆叠的高可用拓扑那样影响集群冗余
但这种拓扑需要两倍于堆叠高可用拓扑的主机数量
这种拓扑的高可用集群至少需要 3 个作为控制平面节点的主机和 3 个作为 etcd 节点的主机
Kubernetes|Kubernetes 笔记 / 入门 / 生产环境 / 用部署工具安装 Kubernetes / 用 kubeadm 启动集群 / 两种高可用拓扑
文章图片

目录、参考文献

    推荐阅读