目录、参考文献
本文将介绍用于配置高可用(highly available (HA))Kubernetes 集群拓扑的两个选项
- 堆叠(stacked)控制平面节点,etcd 节点与控制平面节点位于同一位置
- 外部 etcd 节点,etcd 与控制平面运行在不同的节点
注意:1. 堆叠(stacked)etcd 拓扑 在堆叠高可用集群拓扑中
kubeadm
会静态地启动 etcd 集群
详见 etcd 集群指南
etcd 集群提供的分布式数据存储集群
堆叠在运行控制平面组件的
kubeadm
管理的节点形成的集群之上每个控制平面节点都运行了一个
kube-apiserver
、kube-scheduler
、kube-controller-manager
实例kube-apiserver
通过一个负载均衡器暴露给工作节点每个控制平面节点都会创建一个本地 etcd 成员
这个 etcd 成员只与这个节点上的
kube-apiserver
通信本地的
kube-controller-manager
与 kube-scheduler
实例也一样这种拓扑将控制平面与 etcd 成员耦合在相同的节点上
这样比使用外部 etcd 节点的集群更容易配置,并且更容易管理副本
然而,堆叠集群存在耦合失败的风险
如果一个节点发生故障,则 etcd 成员与控制平面实例都将丢失,并且冗余会受到影响
可以通过添加更多控制平面节点来降低此风险
因此,应该为高可用集群运行至少三个堆叠的控制平面节点
这是
kubeadm
中的默认拓扑当使用
kubeadm init
和 kubeadm join --control-plane
时在控制平面节点上会自动创建本地 etcd 成员
文章图片
2. 外部 etcd 拓扑 【Kubernetes|Kubernetes 笔记 / 入门 / 生产环境 / 用部署工具安装 Kubernetes / 用 kubeadm 启动集群 / 两种高可用拓扑】在外部 etcd 高可用集群拓扑中
etcd 集群提供的分布式数据存储集群
位于由运行控制平面组件的节点形成的集群的外部
就像堆叠的 etcd 拓扑一样,外部 etcd 拓扑中的每个控制平面节点都会运行
kube-apiserver
、kube-scheduler
和 kube-controller-manager
实例同样,
kube-apiserver
使用负载均衡器暴露给工作节点但是 etcd 成员在不同的主机上运行
每个 etcd 主机与每个控制平面节点的 kube-apiserver 通信
这种拓扑结构解耦了控制平面与 etcd 成员
因此它提供了一种高可用设置,失去控制平面实例或 etcd 成员的影响较小
并且不会像堆叠的高可用拓扑那样影响集群冗余
但这种拓扑需要两倍于堆叠高可用拓扑的主机数量
这种拓扑的高可用集群至少需要 3 个作为控制平面节点的主机和 3 个作为 etcd 节点的主机
文章图片
目录、参考文献
推荐阅读
- 笔记|微信小程序(原生)
- Docker最全实战教程|如何对 Kubernetes 节点进行运维
- kubernetes|k8s中清除已安装的rook-ceph集群
- 笔记|2022年热带气旋强度估计论文
- 笔记|浅谈数据湖的探究与调研!
- kubernetes|Kubernetes K8S之存储Volume详解
- kubernetes|Kubernetes K8S之存储Secret详解
- kubernetes|kubernetes (k8s) k8s 控制器
- kubernetes|kubernetes (k8s) list-watch机制、调度约束