• 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


    目录、参考文献

  • 相关阅读:
    基于JSP实现校园二手交易平台
    mybatis之动态SQL语句&分页查询
    嵌入式接口复习资料
    kafka安装步骤以及初步入门
    Java-内部类
    用Python插入页码到PDF文档
    iOS动态库和静态库的运用
    oracle实验四
    C++中cin输入空格
    身份认证的尽头竟然是无密码 ?
  • 原文地址:https://blog.csdn.net/wdhlzd/article/details/126275284