一、创建数据存储目录
二、创建配置文件目录
三、编辑配置文件
配置文件中的 ETCD_INITIAL_CLUSTER
参数请按需修改
服务启动成功之后执行 sed -i '/ETCD_INITIAL_CLUSTER_STATE/s@new@existing@' /etc/etcd/etcd.conf
| LOCAL_IP="$(ip addr show eth0|grep -Po '(?<=inet )[0-9.]+')" |
| cat > /etc/etcd/etcd.conf << EOF |
| |
| ETCD_NAME=etcd-01 |
| ETCD_DATA_DIR="/apps/etcd/" |
| ETCD_LISTEN_CLIENT_URLS="http://${LOCAL_IP}:2379,http://127.0.0.1:2379" |
| ETCD_LISTEN_PEER_URLS="http://${LOCAL_IP}:2380" |
| |
| |
| ETCD_ADVERTISE_CLIENT_URLS="http://${LOCAL_IP}:2379" |
| ETCD_INITIAL_ADVERTISE_PEER_URLS="http://${LOCAL_IP}:2380" |
| ETCD_INITIAL_CLUSTER="etcd-02=http://172.20.1.27:2380,etcd-01=http://172.20.1.26:2380,etcd-03=http://172.20.1.28:2380" |
| ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-1" |
| ETCD_INITIAL_CLUSTER_STATE="new" |
| EOF |
四、编写Service文件
| systemctl cat etcd |
| |
| [Unit] |
| Description=Etcd Server |
| After=network.target |
| After=network-online.target |
| Wants=network-online.target |
| |
| [Service] |
| Type=notify |
| EnvironmentFile=/etc/etcd/etcd.conf |
| ExecStart=/usr/local/bin/etcd |
| Restart=on-failure |
| LimitNOFILE=65536 |
| |
| [Install] |
| WantedBy=multi-user.target |
五、启动服务
启动服务之前请先将所有节点都准备好
| systemctl daemon-reload |
| systemctl start etcd |
六、验证集群状态
1. 查看集群成员
| etcdctl member list --write-out table |
| +------------------+---------+---------+-------------------------+-------------------------+------------+ |
| | ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER | |
| +------------------+---------+---------+-------------------------+-------------------------+------------+ |
| | 11582579cb716706 | started | etcd-02 | http://172.20.1.27:2380 | http://172.20.1.27:2379 | false | |
| | 3909c7e83049bd5d | started | etcd-01 | http://172.20.1.26:2380 | http://172.20.1.26:2379 | false | |
| | a10314259291b7b2 | started | etcd-03 | http://172.20.1.28:2380 | http://172.20.1.28:2379 | false | |
| +------------------+---------+---------+-------------------------+-------------------------+------------+ |
2. 查看成员健康状态
| etcdctl --endpoints="http://172.20.1.26:2379,http://172.20.1.27:2379,http://172.20.1.28:2379" --write-out table endpoint health |
| +-------------------------+--------+-------------+-------+ |
| | ENDPOINT | HEALTH | TOOK | ERROR | |
| +-------------------------+--------+-------------+-------+ |
| | http://172.20.1.26:2379 | true | 6.12222ms | | |
| | http://172.20.1.28:2379 | true | 6.812195ms | | |
| | http://172.20.1.27:2379 | true | 12.847463ms | | |
| +-------------------------+--------+-------------+-------+ |
3. 查看成员状态
| etcdctl --endpoints="http://172.20.1.26:2379,http://172.20.1.27:2379,http://172.20.1.28:2379" endpoint status --write-out table |
| +-------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ |
| | ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS | |
| +-------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ |
| | http://172.20.1.26:2379 | 3909c7e83049bd5d | 3.5.3 | 20 kB | true | false | 2 | 12 | 12 | | |
| | http://172.20.1.27:2379 | 11582579cb716706 | 3.5.3 | 20 kB | false | false | 2 | 12 | 12 | | |
| | http://172.20.1.28:2379 | a10314259291b7b2 | 3.5.3 | 20 kB | false | false | 2 | 12 | 12 | | |
| +-------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)