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 成员
stacked-etcd

2. 外部 etcd 拓扑

在外部 etcd 高可用集群拓扑
etcd 集群提供的分布式数据存储集群
位于由运行控制平面组件的节点形成的集群的外部

就像堆叠的 etcd 拓扑一样,外部 etcd 拓扑中的每个控制平面节点都会运行 kube-apiserverkube-schedulerkube-controller-manager 实例
同样,kube-apiserver 使用负载均衡器暴露给工作节点
但是 etcd 成员在不同的主机上运行
每个 etcd 主机与每个控制平面节点的 kube-apiserver 通信

这种拓扑结构解耦了控制平面与 etcd 成员
因此它提供了一种高可用设置,失去控制平面实例或 etcd 成员的影响较小
并且不会像堆叠的高可用拓扑那样影响集群冗余

但这种拓扑需要两倍于堆叠高可用拓扑的主机数量
这种拓扑的高可用集群至少需要 3 个作为控制平面节点的主机和 3 个作为 etcd 节点的主机
external-etcd


目录、参考文献

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值