尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
etcd双节点扩容实战与Kubernetes存储优化
1. 项目背景与核心挑战在分布式系统中etcd作为Kubernetes的核心数据存储组件其稳定性和扩展性直接影响整个集群的可靠性。当业务规模扩大时原有的单节点或三节点etcd集群可能面临性能瓶颈。将etcd从单节点扩容至双节点虽然不能形成法定多数quorum但作为过渡方案或特定场景下的容灾配置仍具有实用价值。注意生产环境强烈建议至少3节点集群。双节点仅适用于测试环境或特殊容灾场景因为网络分区时可能出现脑裂问题。2. 扩容前准备2.1 环境检查清单现有etcd版本etcd --version证书有效期openssl x509 -in /opt/etcd/ssl/server.pem -noout -dates防火墙规则确保2379客户端、2380节点间端口双向开放磁盘空间df -h检查数据目录剩余空间2.2 证书体系更新双节点扩容需要重新生成包含新节点信息的证书# 生成CA配置 cat ca-config.json EOF { signing: { default: { expiry: 87600h }, profiles: { www: { expiry: 87600h, usages: [ signing, key encipherment, server auth, client auth ] } } } } EOF # 生成CSR配置注意hosts字段包含新旧节点IP cat server-csr.json EOF { CN: etcd, hosts: [ 192.168.1.10, 192.168.1.11, localhost ], key: { algo: rsa, size: 2048 }, names: [ { C: CN, ST: Beijing, L: Beijing, O: etcd, OU: System } ] } EOF # 使用cfssl生成证书 cfssl gencert -initca ca-csr.json | cfssljson -bare ca - cfssl gencert -caca.pem -ca-keyca-key.pem \ -configca-config.json -profilewww server-csr.json | cfssljson -bare server3. 节点扩容实操步骤3.1 现有节点配置更新备份原证书mkdir -p /opt/etcd/ssl_backup cp /opt/etcd/ssl/* /opt/etcd/ssl_backup/部署新证书cp ca.pem ca-key.pem server.pem server-key.pem /opt/etcd/ssl/ chmod 600 /opt/etcd/ssl/*-key.pem chown etcd:etcd /opt/etcd/ssl/*.pem修改etcd服务配置示例为systemd# /usr/lib/systemd/system/etcd.service [Unit] DescriptionEtcd Server Afternetwork.target [Service] Typenotify Useretcd EnvironmentFile-/etc/etcd/etcd.conf ExecStart/opt/etcd/bin/etcd \ --nameetcd-1 \ --cert-file/opt/etcd/ssl/server.pem \ --key-file/opt/etcd/ssl/server-key.pem \ --peer-cert-file/opt/etcd/ssl/server.pem \ --peer-key-file/opt/etcd/ssl/server-key.pem \ --trusted-ca-file/opt/etcd/ssl/ca.pem \ --peer-trusted-ca-file/opt/etcd/ssl/ca.pem \ --initial-advertise-peer-urlshttps://192.168.1.10:2380 \ --listen-peer-urlshttps://0.0.0.0:2380 \ --listen-client-urlshttps://0.0.0.0:2379,http://127.0.0.1:2379 \ --advertise-client-urlshttps://192.168.1.10:2379 \ --initial-cluster-tokenetcd-cluster \ --initial-clusteretcd-1https://192.168.1.10:2380,etcd-2https://192.168.1.11:2380 \ --initial-cluster-stateexisting \ --data-dir/var/lib/etcd Restarton-failure LimitNOFILE65536 [Install] WantedBymulti-user.target重启服务并验证systemctl daemon-reload systemctl restart etcd etcdctl --endpointshttps://192.168.1.10:2379 \ --cacert/opt/etcd/ssl/ca.pem \ --cert/opt/etcd/ssl/server.pem \ --key/opt/etcd/ssl/server-key.pem \ endpoint health3.2 新节点部署同步必要文件# 从现有节点复制 scp -r /opt/etcd root192.168.1.11:/opt/ scp /usr/lib/systemd/system/etcd.service root192.168.1.11:/usr/lib/systemd/system/修改新节点配置# 关键修改项 --nameetcd-2 --initial-advertise-peer-urlshttps://192.168.1.11:2380 --advertise-client-urlshttps://192.168.1.11:2379启动新节点mkdir -p /var/lib/etcd chown -R etcd:etcd /var/lib/etcd /opt/etcd systemctl daemon-reload systemctl enable --now etcd4. 集群验证与调优4.1 健康检查# 检查集群成员 etcdctl --write-outtable \ --endpointshttps://192.168.1.10:2379,https://192.168.1.11:2379 \ --cacert/opt/etcd/ssl/ca.pem \ member list # 检查leader状态 etcdctl --endpointshttps://192.168.1.10:2379 \ endpoint status -w table4.2 性能调优参数在/etc/etcd/etcd.conf中添加# 提高网络吞吐 heartbeat-interval: 100 election-timeout: 500 # 优化存储性能 auto-compaction-mode: periodic auto-compaction-retention: 1h # 内存分配建议 max-request-bytes: 33554432 # 32MB quota-backend-bytes: 8589934592 # 8GB5. 常见问题排查5.1 证书错误症状x509: certificate is valid for 192.168.1.10, not 192.168.1.11解决方案确认server-csr.json包含所有节点IP重新生成证书后同步到所有节点按顺序重启节点先follower后leader5.2 集群不健康症状failed to check member health排查步骤# 检查节点日志 journalctl -u etcd -n 50 --no-pager # 测试基础网络 nc -zv 192.168.1.11 2380 tcping 192.168.1.11 2380 # 临时调低日志级别调试 ETCD_LOG_LEVELdebug etcd --config-file/etc/etcd/etcd.conf5.3 数据不一致处理方案# 先备份数据 etcdctl snapshot save backup.db # 从健康节点恢复数据 ETCDCTL_API3 etcdctl snapshot restore backup.db \ --initial-clusteretcd-1https://192.168.1.10:2380,etcd-2https://192.168.1.11:2380 \ --initial-advertise-peer-urlshttps://192.168.1.10:2380 \ --nameetcd-16. 后续维护建议监控指标配置关键指标etcd_server_leader_changes_seen_total、etcd_disk_wal_fsync_duration_secondsPrometheus示例配置- job_name: etcd static_configs: - targets: [192.168.1.10:2379,192.168.1.11:2379] scheme: https tls_config: ca_file: /path/to/ca.pem cert_file: /path/to/client.pem key_file: /path/to/client-key.pem insecure_skip_verify: false证书自动续期方案# 使用cert-manager示例配置 apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: etcd-server spec: secretName: etcd-server-tls duration: 2160h # 90d renewBefore: 360h # 15d issuerRef: name: ca-issuer kind: ClusterIssuer commonName: etcd dnsNames: - localhost ipAddresses: - 192.168.1.10 - 192.168.1.11 usages: - server auth - client auth升级为三节点的建议步骤准备第三个节点的证书提前加入hosts字段修改现有节点的initial-cluster参数按相同流程部署第三个节点更新所有节点的--initial-cluster-state为existing后重启
RELATED

相关推荐

【小程序毕业设计】基于 SpringBoot + 微信小程序的个人财务管理记账系统的设计与实现(源码+文档+远程调试,全bao定制等)

【小程序毕业设计】基于 SpringBoot + 微信小程序的个人财务管理记账系统的设计与实现(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

📅 2026/9/12 17:54:53
AI编程助手电报体Skill实测:省Token效果仅8.5%,远低于宣传

AI编程助手电报体Skill实测:省Token效果仅8.5%,远低于宣传

这次我们来聊聊AI编程工具中一个很有意思的现象——所谓的"电报体Skill"。这种技术声称能大幅节省Token消耗,但实际情况可能跟宣传的有不小差距。 如果你在使用Claude Code、Codex这类AI编程助手,可能已经注意到社区里流行各种"省Token&…

📅 2026/10/25 17:02:19
如何免费下载Book118文档:3分钟快速上手的Java下载工具终极指南

如何免费下载Book118文档:3分钟快速上手的Java下载工具终极指南

如何免费下载Book118文档:3分钟快速上手的Java下载工具终极指南 【免费下载链接】book118-downloader 基于java的book118文档下载器 项目地址: https://gitcode.com/gh_mirrors/bo/book118-downloader 你是否曾在Book118网站上找到急需的学习资料或工作文档&…

📅 2026/9/7 15:15:42
MORE NEWS

更多资讯

📰

OpenPose pose_iter_xxxxxx.caffemodel 深度解析与部署避坑指南

简介:本资源为OpenPose官方预训练模型库完整合集,面向计算机视觉方向的研究者、算法工程师及深度学习实践者,用于快速开展人体姿态估计、手部关键点检测、面部特征定位等多场景应用开发与模型微调。压缩包内共12个文件,包含6个Caf…

📰

RAG 2.0架构解析:动态检索与混合推理的突破

1. RAG 2.0架构核心设计理念RAG(Retrieval-Augmented Generation)2.0架构是当前大模型应用领域最前沿的技术范式之一。我在实际企业级知识库项目中验证发现,相比传统RAG 1.0版本,2.0架构在三个关键维度实现了突破:动态…

📰

Anthropic订阅API等价价值5倍于OpenAI:负载与成本深度拆解

"SemiAnalysis 测算:Anthropic 订阅的 API 等价价值约为 OpenAI 的 5 倍以上",这条消息我看完第一反应是:这不是在说 Anthropic 的 API 比 OpenAI 贵 5 倍,而是在说两边订阅用户实际消耗出来的“市场价值”差了 5 倍。S…

📰

ToolPlatform烧录工具从解压到跑通:嵌入式新手避坑指南

简介:ToolPlatform-1.0.11-win32-x86-64.zip 是一款面向 Windows 平台的烧录工具软件包,版本 1.0.11,同时兼容 32 位与 64 位系统。它主要服务于需要刻录光盘、制作启动盘、复制或备份存储介质的用户,尤其适合在其它烧录工具出现兼…

📰

Citect2018培训手册实战:从零搭建可运行SCADA工程与避坑指南

简介:《Citect2018培训手册》面向工业自动化领域的初学者与工程技术人员,针对施耐德电气CitectScada2018这一监控与数据采集系统,帮助读者从零起步掌握其安装、开发与部署流程。资源包内含1个docx文档,整体约11.18MB,以…

📰

EGM96.ggf二进制解析实战:C++高精度大地水准面加载指南

简介:本资源是一套基于C#开发的EGM96大地水准模型二进制文件(.ggf)解析工具,面向GIS开发人员、测绘工程师及地球物理方向学习者,解决高程异常数据读取、定位查询与可视化分析等实际问题。项目完整实现GGF格式解析、721…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬