ETCD从单节点迁移到集群

news/2025/3/30 17:18:56/文章来源:https://www.cnblogs.com/weistudy/p/18795691
ETCD迁移到集群:
在kubeadm部署的Kubernetes集群中停用单节点ETCD并重新搭建高可用三节点ETCD集群,需遵循以下步骤:
一、停用旧ETCD节点
1. 确认ETCD部署方式 • 内置ETCD(kubeadm默认):ETCD以静态Pod形式运行,配置文件位于/etc/kubernetes/manifests/etcd.yaml。
2. 停止旧ETCD节点 • 删除静态Pod配置文件,kubelet自动终止进程: bash 复制 rm /etc/kubernetes/manifests/etcd.yaml • 等待ETCD容器终止后,备份数据目录(可选): bash 复制 cp -r /var/lib/etcd /var/lib/etcd.bak
3. 备份ETCD数据(可选) 使用etcdctl工具备份数据(需旧集群仍可访问): bash 复制 ETCDCTL_API=3 etcdctl --endpoints=https://<旧ETCD节点IP:2379>
--cacert=/etc/kubernetes/pki/etcd/ca.crt
--cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt
--key=/etc/kubernetes/pki/etcd/healthcheck-client.key
snapshot save /path/to/backup.db
二、部署新ETCD集群
1. 环境准备 • 节点要求:3台新ETCD节点(如etcd-node1、etcd-node2、etcd-node3),关闭防火墙/SELinux,配置时间同步。 • 安装依赖:Docker、kubelet、etcd二进制包或容器镜像。 2. 生成证书 使用cfssl工具生成CA及节点证书(示例): bash 复制 # 生成CA证书
cfssl gencert -initca ca-csr.json | cfssljson -bare ca

生成ETCD服务器证书

for node in etcd-node1 etcd-node2 etcd-node3; do
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json
-profile=kubernetes server- $ node-csr.json | cfssljson -bare server- $ node
done
3. 配置ETCD节点 在每个ETCD节点创建配置文件etcd.conf.yaml: yaml 复制 name: "etcd-node1"
data-dir: "/var/lib/etcd"
listen-peer-urls: "https://:2380"
listen-client-urls: "https://:2379,http://127.0.0.1:2379"
initial-advertise-peer-urls: "https://:2380"
initial-cluster: "etcd-node1=https://:2380,etcd-node2=https://:2380,etcd-node3=https://:2380"
initial-cluster-state: "new"
cert-file: "/etc/etcd/ssl/server.crt"
key-file: "/etc/etcd/ssl/server.key"
trusted-ca-file: "/etc/etcd/ssl/ca.crt"
peer-cert-file: "/etc/etcd/ssl/peer.crt"
peer-key-file: "/etc/etcd/ssl/peer.key"
peer-trusted-ca-file: "/etc/etcd/ssl/ca.crt"
client-cert-auth: true
peer-client-cert-auth: true
4. 启动ETCD集群 • 将证书和配置文件分发到各节点。 • 启动ETCD服务: bash 复制 systemctl enable --now etcd • 验证集群状态: bash 复制 ETCDCTL_API=3 etcdctl --endpoints=https://<新节点IP:2379>
--cacert=/etc/etcd/ssl/ca.pem
--cert=/etc/etcd/ssl/server.pem
--key=/etc/etcd/ssl/server-key.pem member list
三、更新kubeadm配置并重启控制平面
1. 修改kubeadm配置 编辑kube-system命名空间下的kubeadm-config ConfigMap,更新ClusterConfiguration中的etcd.endpoints: bash 复制 kubectl edit cm kubeadm-config -n kube-system 修改为新ETCD集群地址(如https://etcd-node1:2379,https://etcd-node2:2379,https://etcd-node3:2379)。
2. 重新生成API Server证书 • 若新ETCD使用新证书,需重新生成API Server证书: bash 复制 kubeadm init phase etcd local --config=kubeadm-config.yaml • 更新kube-apiserver.yaml中的证书路径(位于/etc/kubernetes/manifests/)。
3. 重启控制平面组件 删除旧组件的静态Pod配置文件,触发kubelet重新拉取新配置: bash 复制 rm /etc/kubernetes/manifests/kube-apiserver.yaml
rm /etc/kubernetes/manifests/kube-controller-manager.yaml
rm /etc/kubernetes/manifests/kube-scheduler.yaml
四、验证集群状态
1. 检查ETCD健康状态: bash 复制 ETCDCTL_API=3 etcdctl --endpoints=https://<新节点IP:2379>
--cacert=/etc/etcd/ssl/ca.pem
--cert=/etc/etcd/ssl/server.pem
--key=/etc/etcd/ssl/server-key.pem endpoint health
2. 验证Kubernetes组件:
bash 复制 kubectl get pods -A 注意事项 • 证书一致性:确保新ETCD证书与API Server的--etcd-cafile等参数匹配。 • 网络连通性:新ETCD节点需开放2379(客户端)和2380(集群通信)端口。 • 数据恢复:若需恢复旧数据,使用etcdctl snapshot restore命令加载备份文件。 • 高可用性:三节点ETCD集群具备容错能力,但建议定期备份数据。 通过以上步骤,可安全停用旧ETCD节点并启用高可用三节点集群,确保Kubernetes服务的稳定性与可靠性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906616.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring 和 Spring Boot 之间的比较

概述 本位我们将讨论标准 Spring 框架和 Spring Boot 之间的区别。 将重点讨论 Spring 的模块,如 MVC 和 Security,在 Spring 中使用时与 在Spring Boot 中使用时有何不同。 什么是 Spring 简而言之,Spring 框架为开发 Java 应用程序提供了全面的基础设施支持。它包含了一些…

出现Invalid bound statement (not found)错误

出现Invalid bound statement (not found)错误时,通常是由于MyBatis无法正确匹配Mapper接口与XML文件的映射关系。以下是具体排查步骤和解决方案:

当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系

《当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系》引言:一场OOM引发的血案 某个月黑风高的夜晚,监控系统突然发出刺耳的警报——我们的数据发现流水线集体扑街。事后复盘发现:Kafka集群、Gateway、Discovery服务默契地同时表演了OOM自杀式艺术行为。这场事…

EtherCAT转DeviceNet看台达MH2如何借助网关与欧姆龙CJ1W-DRM21通讯​

一.案例背景台达MH2设备通常采用EtherCAT通信协议,这种协议在高速实时通信方面表现出色,适合设备之间的快速数据交换和精准控制。而欧姆龙CJ1W-DRM21 模块基于DeviceNet通信协议,DeviceNet在工业现场总线领域应用广泛,侧重于设备的分布式控制和信息共享。EtherCAT与DeviceN…

温湿度传感器:核心原理与跨领域应用解析

一、温湿度传感器的技术演进与核心价值 温湿度传感器是一种通过物理或化学机制实时监测环境温湿度参数的电子设备。在物联网(IoT)与智慧化转型的浪潮中,其作为环境感知的 “神经末梢”,已渗透至工业制造、农业种植、医疗仓储等领域。根据市场研究机构的数据,2025 年全球温…

20242830 2021-2022-2 《网络攻防实践》第六周作业

20242830 2021-2022-2 《网络攻防实践》第六周作业 一、知识点梳理与总结本次实验旨在学会使用Metasploit软件对Windows系统进行远程渗透实验,能够让我们深入了解漏洞的原理和利用过程,如MS08-067这样的常见漏洞,通过实际操作去发现和利用它们,可以更加直观地理解系统存在的…

数字先锋 | 打造专属AI大脑,天翼云助力重庆理工大学开启智慧校园新篇!

从在线课程的蓬勃兴起,到远程教育的逐渐普及,再到智能教学工具的广泛应用……人工智能、大数据、云计算等前沿技术迅速发展的当下,科技正以前所未有的深度和广度重塑教育领域,促使教育各个层面发生深刻变革。师生对个性化、智能化教育服务的期待与日俱增,智慧校园建设,成…

【洛谷P6464】传送门

每天刷个一两题 比较值得写的会写在这里 P6464 [传智杯 #2 决赛] 传送门 题目描述 传智专修学院里有 \(n\) 栋教学楼,有 \(m\) 条双向通行道路连接这些教学楼,不存在重边和自环。每条道路都有一定的长度,而且所有教学楼之间都可以直接或者间接的通过道路到达。我们可以很容易…

高度混淆和多层嵌套的JSP案例免杀思路

免责声明:本文所涉及的技术仅供学习和参考,严禁使用本文内容从事违法行为和未授权行为,如因个人原因造成不良后果,均由使用者本人负责,作者及本博客不承担任何责任。 01 分析特征 目前webshell检测方式还是以检测特征为主,像JSP木马中常见的Runtime、ProcessBuilder、rea…

某项目三台设备PCIE Surprise Down故障分析

描述: 某项目交付过程中,发现三台服务器报The PCIe Card 1 (PCIe Device) triggered an uncorrectable error的错误(如下图)分析 通过fdm/fdm_output日志,发现存在大量的PCIe的报错(如下),可以看出来全是Surprise Down Error错误,且问题都说发生在CPU1 的Riser模组上检…

关联(Association), 聚合(Aggregation), 组合(Composition) 在软件设计模式中的区别

关联(Association)、聚合(Aggregation)与组合(Composition)的区别 这三种关系都是面向对象设计中描述类之间关系的重要概念,它们在耦合强度、生命周期管理等方面有显著差异。 1. 关联(Association) 基本特征:最通用的关系类型,表示类之间的使用关系可以是单向或双向的关联对…

H7-TOOL固件2.28发布,CAN, UART和RTT三合一同时收发且实时记录,脱机烧录新增革命性一键添加新芯片功能,新增多脱机芯片支持

H7-TOOL详细介绍(含操作手册): http://www.armbbs.cn/forum.php?mod=viewthread&tid=89934H7-TOOL PLUS电池版无需升级,预装的已经是最新的2.28版。后面还有个PLUS电池板低功耗运行模式,后续也将上线。【PC软件】V2.2.8 1. 脱机烧录功能更新:- 新增MAGTRON(巨磁智能)…