kubeadm 使用etcd学习器安全地加入控制平面节点

🤖 由 ChatGPT 生成的文章摘要

Author: Paco Xu (DaoCloud)
作者:徐柏科(道云)

该工具 kubeadm 现在支持 etcd 学习器模式,它允许您通过利用 etcd 版本 3.4 中引入的学习器模式功能来增强 Kubernetes 集群的弹性和稳定性。本指南将引导您通过 kubeadm 使用 etcd 学习器模式。默认情况下,kubeadm 在每个控制平面节点上运行一个本地 etcd 实例。

在 v1.27 中,kubeadm 引入了一个新的功能门 EtcdLearnerMode 。启用此功能门后,当加入新的控制平面节点时,将创建一个新的 etcd 成员作为学习器,并仅在 etcd 数据完全对齐后提升为投票成员。

使用etcd学习器模式有什么优势?

etcd 学习器模式提供了几个令人信服的理由来考虑在 Kubernetes 集群中采用它:

  • 增强的弹性: etcd 学习器节点是无投票权的成员,它们在完全运行之前赶上领导者的日志。这可以防止新的集群成员中断仲裁或导致领导者选举,从而使集群在成员更改期间更具弹性。

  • 减少集群不可用: 添加新成员的传统方法通常会导致集群不可用期,尤其是在基础架构缓慢或配置错误的情况下。etcd 学习器模式最大限度地减少了这种中断。

  • 简化维护: 学习节点提供了一种更安全且可逆的方式来添加或替换集群成员。这降低了由于成员添加期间配置错误或失误而导致集群意外中断的风险。

  • 改进的网络容错能力: 在涉及网络分区的方案中,学习器模式允许更优雅的处理。根据新成员登陆的分区,它可以与现有集群无缝集成,而不会造成中断。

综上所述,etcd 学习器模式提高了Kubernetes集群在成员添加和更改过程中的可靠性和可管理性,使其成为集群运营商的一项有价值的功能。

节点如何加入使用新模式的群集

在学习者模式下创建一个由 etcd 支持的 Kubernetes 集群

有关使用 kubeadm 创建高可用集群的一般说明,您可以参考 使用 kubeadm 创建高可用集群。

要使用 kubeadm 创建由学习模式下的 etcd 支持的 Kubernetes 集群,请按照以下步骤操作:

# kubeadm init --feature-gates=EtcdLearnerMode=true ...
kubeadm init --config=kubeadm-config.yaml

kubeadm 配置文件如下所示:

apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
featureGates:
 EtcdLearnerMode: true

kubeadm 工具部署了一个单节点 Kubernetes 集群,并将 etcd 设置为使用学习者模式。

将节点加入 Kubernetes 集群

在将控制平面节点加入新的 Kubernetes 集群之前,请确保现有控制平面节点和所有 etcd 成员都运行正常。

使用 检查 etcdctl 群集运行状况。如果不可用,可以在 etcdctl 容器映像中运行此工具。你可以直接使用容器运行时来做到这一点,使用诸如而不是通过 Kubernetes 的工具 crictl run

下面是一个客户端命令的示例,该命令使用安全通信来检查 etcd 集群的集群运行状况:

ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 \
 --cert=/etc/kubernetes/pki/etcd/server.crt \
 --key=/etc/kubernetes/pki/etcd/server.key \
 --cacert=/etc/kubernetes/pki/etcd/ca.crt \
 member list
...
dc543c4d307fadb9, started, node1, https://10.6.177.40:2380, https://10.6.177.40:2379, false

要检查 Kubernetes 控制平面是否正常运行,请运行 kubectl get node -l node-role.kubernetes.io/control-plane= 并检查节点是否已准备就绪。

注意:建议在 etcd 集群中拥有奇数个成员。

What's next 下一步是什么

  • EtcdLearnerMode 在 v1.27 中是 alpha,我们预计它将在 Kubernetes 的下一个次要版本(v1.29)中升级为 beta。

etcd 有一个悬而未决的问题,可能会使该过程更加自动化:支持将学习者成员自动提升为投票成员。
在此处了解有关 kubeadm 配置格式的更多信息。

原文连接

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索