centos7二进制部署etcd集群

一般在生产环境下单机的etcd不满足高可用的需求,所以我们需要部署高可用的etcd集群,确保集群节点数N*2+1,etcd的raft协议可以保障各个节点数据的一致性。

我们目前规划集群信息如下:

01.
192.168.1.76 etcd1
02.
192.168.1.77 etcd2
03.
192.168.1.79 etcd3

然后就开始部署,部署方式基本和单机一致,主要是配置文件需要增加一些配置,配置启动可以查看笔记:https://sulao.cn/post/962

在每个节点操作

01.
wget https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gz
02.
tar -zxf etcd-v3.5.0-linux-amd64.tar.gz
03.
mv etcd-v3.5.0-linux-amd64 /usr/local/etcd

添加环境变量并使其生效

01.
echo 'export PATH=$PATH:/usr/local/etcd' >> /etc/profile
02.
source /etc/profile

创建存储目录

01.
mkdir -p /data/etcd

接着我们创建etcd.conf配置文件目录

01.
mkdir -p /etc/etcd

etcd1节点上的etcd.conf配置文件如下

01.
vi /etc/etcd/etcd.conf
02.
name: "etcd1" #节点名称
03.
data-dir: "/data/etcd" # 数据存储目录
04.
advertise-client-urls: "http://192.168.1.76:2379" # 客户端监听地址
05.
listen-client-urls: "http://192.168.1.76:2379,http://127.0.0.1:2379" # 客户端请求的地址列表
06.
listen-peer-urls: "http://192.168.1.76:2380" # 监听URL,用于节点之间通信监听地址
07.
initial-advertise-peer-urls: "http://192.168.1.76:2380" # 服务端之间通讯地址列表
08.
initial-cluster: "etcd1=http://192.168.1.76:2380,etcd2=http://192.168.1.77:2380,etcd3=http://192.168.1.79:2380" #etcd集群的节点地址列表
09.
initial-cluster-token: "etcd-cluster" # etcd集群的初始集群令牌
10.
initial-cluster-state: 'new' # etcd集群初始化的状态,new代表新建集群,existing表示加入现有集群

etcd2节点上的etcd.conf配置如下

01.
vi /etc/etcd/etcd.conf
02.
name: "etcd2"
03.
data-dir: "/data/etcd"
04.
advertise-client-urls: "http://192.168.1.77:2379"
05.
listen-client-urls: "http://192.168.1.77:2379,http://127.0.0.1:2379"
06.
listen-peer-urls: "http://192.168.1.77:2380"
07.
initial-advertise-peer-urls: "http://192.168.1.77:2380"
08.
initial-cluster: "etcd1=http://192.168.1.76:2380,etcd2=http://192.168.1.77:2380,etcd3=http://192.168.1.79:2380"
09.
initial-cluster-token: 'etcd-cluster'
10.
initial-cluster-state: 'new'

etcd3节点上的etcd.conf配置如下

01.
vi /etc/etcd/etcd.conf
02.
name: "etcd3"
03.
data-dir: "/data/etcd"
04.
advertise-client-urls: "http://192.168.1.79:2379"
05.
listen-client-urls: "http://192.168.1.79:2379,http://127.0.0.1:2379"
06.
listen-peer-urls: "http://192.168.1.79:2380"
07.
initial-advertise-peer-urls: "http://192.168.1.79:2380"
08.
initial-cluster: "etcd1=http://192.168.1.76:2380,etcd2=http://192.168.1.77:2380,etcd3=http://192.168.1.79:2380"
09.
initial-cluster-token: 'etcd-cluster'
10.
initial-cluster-state: 'new'

然后在每个节点创建etcd服务

01.
cat >/usr/lib/systemd/system/etcd.service<<EOF
02.
[Unit]
03.
Description=Etcd Server
04.
After=network.target
05.
After=network-online.target
06.
Wants=network-online.target
07.
08.
[Service]
09.
Type=notify
10.
EnvironmentFile=/etc/etcd/etcd.conf
11.
ExecStart=/usr/local/etcd/etcd --config-file=/etc/etcd/etcd.conf
12.
Restart=on-failure
13.
LimitNOFILE=65536
14.
15.
[Install]
16.
WantedBy=multi-user.target
17.
EOF

然后每个节点设置开机启动并启动etcd

01.
systemctl daemon-reload
02.
systemctl start etcd
03.
systemctl enable etcd

三个节点的etcd部署启动好以后可以通过命令验证集群状态

01.
etcdctl endpoint status --cluster -w table

微信截图_20240126192349.png



内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/964

评论列表