登录
首页 >  文章 >  linux

Linux安装etcd集群教程

时间:2026-03-30 15:31:20 386浏览 收藏

本文详细介绍了在Linux环境下从零搭建高可用etcd集群的完整实战流程,涵盖网络与时间同步准备、基于cfssl的多节点TLS证书定制化生成、官方二进制文件的统一分发、systemd服务的精细化配置(含节点差异化参数),以及集群健康检查与跨节点数据一致性验证等关键环节,为Kubernetes底层存储或分布式系统提供安全、稳定、可复现的etcd部署指南。

Linux怎么安装etcd集群_Linux etcd分布式键值存储部署教程【高级】

如果您计划在Linux环境中部署etcd集群,需确保多节点间网络互通、时钟同步,并采用一致的TLS安全配置。以下是完成etcd分布式键值存储集群部署的具体步骤:

一、准备三台Linux主机并配置基础环境

为保障etcd集群高可用,至少需三台独立主机(推荐奇数节点),所有节点须运行相同版本的Linux发行版,关闭防火墙或开放必要端口,并完成时间同步与主机名解析配置。

1、在每台主机上执行 hostnamectl set-hostname etcd-01(分别设为etcd-01/etcd-02/etcd-03)。

2、编辑 /etc/hosts 文件,添加三行映射:192.168.1.101 etcd-01192.168.1.102 etcd-02192.168.1.103 etcd-03

3、执行 timedatectl set-ntp true 启用NTP同步,并验证各节点时间偏差小于500ms。

二、生成自签名TLS证书用于节点间安全通信

etcd集群强制启用TLS验证,必须为每个节点生成唯一证书,包含CA根证书、节点服务证书及客户端证书,且证书Subject Alternative Name(SAN)须覆盖所有IP和DNS名称。

1、在任一控制节点安装cfssl工具:curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl,并赋予可执行权限。

2、创建CA配置文件 ca-config.json,指定 signing、client auth 和 server auth 用途。

3、运行 cfssl gencert -initca ca-csr.json | cfssljson -bare ca 生成CA证书与私钥。

4、为每个节点分别生成证书请求文件(如 etcd-01-csr.json),其中 hosts 字段需包含本机IP、localhost、主机名及集群全部节点IP。

三、下载etcd二进制文件并分发至各节点

避免使用包管理器安装不可控版本,应从官方GitHub发布页获取静态链接二进制包,确保所有节点版本严格一致,防止Raft协议不兼容。

1、访问 https://github.com/etcd-io/etcd/releases 下载对应架构的最新稳定版tar.gz包(如 etcd-v3.5.19-linux-amd64.tar.gz)。

2、解压后提取 etcdetcdctl 两个二进制文件。

3、将两个文件复制到各节点的 /usr/local/bin/ 目录,并执行 chmod +x /usr/local/bin/etcd*

四、编写systemd服务单元文件并启动集群

通过systemd统一管理etcd进程,确保自动重启、日志集成与资源隔离;每个节点的服务文件需差异化配置成员参数与证书路径。

1、在 /etc/systemd/system/etcd.service 中编写服务定义,设置 Environment="ETCD_NAME=etcd-01" 等变量。

2、ExecStart 行中指定完整启动参数,包括 --initial-advertise-peer-urls=https://192.168.1.101:2380--listen-peer-urls=https://0.0.0.0:2380--cert-file=/etc/etcd/etcd-01.pem 等关键选项。

3、对etcd-02和etcd-03节点,仅修改 ETCD_NAME--initial-advertise-peer-urls 和证书路径,其余参数保持与初始集群定义一致。

4、执行 systemctl daemon-reload && systemctl enable etcd && systemctl start etcd 启动服务。

五、验证集群健康状态与基础读写功能

启动完成后,需立即确认所有成员加入成功、Raft状态正常,并测试跨节点数据同步能力,排除证书错误、网络阻断或配置错位问题。

1、在任意节点执行 export ETCDCTL_API=3 并设置证书环境变量:export ETCDCTL_CACERT=/etc/etcd/ca.pemexport ETCDCTL_CERT=/etc/etcd/etcd-01.pemexport ETCDCTL_KEY=/etc/etcd/etcd-01-key.pem

2、运行 etcdctl --endpoints=https://192.168.1.101:2379,https://192.168.1.102:2379,https://192.168.1.103:2379 member list 查看全部成员状态,确认 isHealthy=true

3、执行 etcdctl --endpoints=https://192.168.1.101:2379 put foo bar 写入键值,再用 etcdctl --endpoints=https://192.168.1.102:2379 get foo 在另一节点读取,验证数据一致性。

好了,本文到此结束,带大家了解了《Linux安装etcd集群教程》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>