本页面介绍了配置高可用(HA)Kubernetes 集群拓扑的两个选项。
你可以设置 HA 集群:
在设置 HA 集群之前,你应该仔细考虑每种拓扑的优缺点。
Note:
kubeadm 静态引导 etcd 集群。 阅读 etcd 集群指南以获得更多详细信息。
堆叠(Stacked)HA 集群是一种这样的拓扑, 其中 etcd 分布式数据存储集群堆叠在 kubeadm 管理的控制平面节点上,作为控制平面的一个组件运行。
每个控制平面节点运行 kube-apiserver
、kube-scheduler
和 kube-controller-manager
实例。
kube-apiserver
使用负载均衡器暴露给工作节点。
每个控制平面节点创建一个本地 etcd 成员(member),这个 etcd 成员只与该节点的 kube-apiserver
通信。 这同样适用于本地 kube-controller-manager
和 kube-scheduler
实例。
这种拓扑将控制平面和 etcd 成员耦合在同一节点上。相对使用外部 etcd 集群, 设置起来更简单,而且更易于副本管理。
然而,堆叠集群存在耦合失败的风险。如果一个节点发生故障,则 etcd 成员和控制平面实例都将丢失, 并且冗余会受到影响。你可以通过添加更多控制平面节点来降低此风险。
因此,你应该为 HA 集群运行至少三个堆叠的控制平面节点。
这是 kubeadm 中的默认拓扑。当使用 kubeadm init
和 kubeadm join --control-plane
时, 在控制平面节点上会自动创建本地 etcd 成员。
具有外部 etcd 的 HA 集群是一种这样的拓扑, 其中 etcd 分布式数据存储集群在独立于控制平面节点的其他节点上运行。
就像堆叠的 etcd 拓扑一样,外部 etcd 拓扑中的每个控制平面节点都运行 kube-apiserver
,kube-scheduler
和 kube-controller-manager
实例。 同样,kube-apiserver
使用负载均衡器暴露给工作节点。但是 etcd 成员在不同的主机上运行, 每个 etcd 主机与每个控制平面节点的 kube-apiserver
通信。
这种拓扑结构解耦了控制平面和 etcd 成员。因此它提供了一种 HA 设置, 其中失去控制平面实例或者 etcd 成员的影响较小,并且不会像堆叠的 HA 拓扑那样影响集群冗余。
但此拓扑需要两倍于堆叠 HA 拓扑的主机数量。
具有此拓扑的 HA 集群至少需要三个用于控制平面节点的主机和三个用于 etcd 节点的主机。
Kubernetes对Windows的支持在很多组织中,其服务和应用的很大比例是Windows应用。Windows容器提供了一种对进程和包依赖关系进行...
节点健康监测节点问题检测器(NodeProblemDetector)是一个守护程序,用于监视和报告节点的健康状况。你可以将节点问题探测器以...
Webpack 是一个模块打包器。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。为什么重复...
类型签名:async function preview(inlineConfig?: InlineConfig): PromisePreviewServer示例用法:const { preview } = require...
Maven教程 -Maven依赖当编写Java代码时,我们总是需要一些库,例如,做单元测试我们需要JUnit库,做String操作我们需要Apache Co...
常用设置如上图 Gif 所示,我们可以通过Alt + F1 + 1快捷键来定位当前文件所在 Project组件窗口中的位置。...
常用设置如上图 Gif 所示,IntelliJ IDEA 自带模拟请求工具 Rest Client,在开发时用来模拟请求是非常好用的。...
常用设置如上图 Gif 所示,这是一个 Maven 多模块项目,在开发多模块的时候,经常会改到其他模块的代码,而模块与模块之间是相互...
Eclipse 菜单 Eclipse 查看的菜单栏通常包含以下几个菜单:File 菜单 Edit 菜单 Navigate 菜单 Search 菜单 Project 菜单 Run 菜...