From 2001ee8586429c8d0e6b862f99ab071c963d37fd Mon Sep 17 00:00:00 2001 From: SataQiu Date: Sun, 11 Aug 2019 20:31:10 +0800 Subject: [PATCH] zh-trans: add zh/docs/setup/production-environment/tools/kubeadm/ha-topology.md (#15778) --- .../tools/kubeadm/ha-topology.md | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 content/zh/docs/setup/production-environment/tools/kubeadm/ha-topology.md diff --git a/content/zh/docs/setup/production-environment/tools/kubeadm/ha-topology.md b/content/zh/docs/setup/production-environment/tools/kubeadm/ha-topology.md new file mode 100644 index 0000000000..1e97eb65a0 --- /dev/null +++ b/content/zh/docs/setup/production-environment/tools/kubeadm/ha-topology.md @@ -0,0 +1,137 @@ +--- +reviewers: +- sig-cluster-lifecycle +title: 高可用拓扑选项 +content_template: templates/concept +weight: 50 +--- + + +{{% capture overview %}} + + +本页面介绍了配置高可用(HA) Kubernetes 集群拓扑的两个选项。 + + +您可以设置 HA 集群: + + + - 使用堆叠(stacked)控制平面节点,其中 etcd 节点与控制平面节点共存 + - 使用外部 etcd 节点,其中 etcd 在与控制平面不同的节点上运行 + + +在设置 HA 集群之前,您应该仔细考虑每种拓扑的优缺点。 + +{{% /capture %}} + +{{% capture body %}} + + +## 堆叠(Stacked) etcd 拓扑 + + +堆叠(Stacked) HA 集群是一种这样的[拓扑](https://en.wikipedia.org/wiki/Network_topology),其中 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 --experimental-control-plane` 时,在控制平面节点上会自动创建本地 etcd 成员。 + + +![堆叠的 etcd 拓扑](/images/kubeadm/kubeadm-ha-topology-stacked-etcd.svg) + + +## 外部 etcd 拓扑 + + +具有外部 etcd 的 HA 集群是一种这样的[拓扑](https://en.wikipedia.org/wiki/Network_topology),其中 etcd 分布式数据存储集群在独立于控制平面节点的其他节点上运行。 + + +就像堆叠的 etcd 拓扑一样,外部 etcd 拓扑中的每个控制平面节点都运行 `kube-apiserver`,`kube-scheduler` 和 `kube-controller-manager` 实例。同样, `kube-apiserver` 使用负载均衡器暴露给工作节点。但是,etcd 成员在不同的主机上运行,​​每个 etcd 主机与每个控制平面节点的 `kube-apiserver` 通信。 + + +这种拓扑结构解耦了控制平面和 etcd 成员。因此,它提供了一种 HA 设置,其中失去控制平面实例或者 etcd 成员的影响较小,并且不会像堆叠的 HA 拓扑那样影响集群冗余。 + + +但是,此拓扑需要两倍于堆叠 HA 拓扑的主机数量。 + +具有此拓扑的 HA 集群至少需要三个用于控制平面节点的主机和三个用于 etcd 节点的主机。 + + +![外部 etcd 拓扑](/images/kubeadm/kubeadm-ha-topology-external-etcd.svg) + +{{% /capture %}} + +{{% capture whatsnext %}} + + + - [使用 kubeadm 设置高可用集群](/docs/setup/production-environment/tools/kubeadm/high-availability/) + +{{% /capture %}}