下载地址
https://github.com/etcd-io/etcd/releases/tag/v3.4.13
安装
在以下主机安装
192.168.2.101
192.168.2.102
192.168.2.103
安装以及配置
### 解压到/opt目录下
tar -zxvf etcd*.tar.gz -C /opt
### 重命名文件夹
mv etcd* etcd
创建配置文件
vim /opt/etcd/etcd.conf
#[Member]
ETCD_NAME="etcd-1"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://192.168.2.101:2380"
ETCD_LISTEN_CLIENT_URLS="https://192.168.2.101:2379,http://127.0.0.1:2379"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.2.101:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.2.101:2379"
ETCD_INITIAL_CLUSTER="etcd-1=https://192.168.2.101:2380,etcd-2=https://192.168.2.102:2380,etcd-3=https://192.168.2.103:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
### etcd的名字,每台机器要不一致,每个etcd机器根据hosetcdts文件来设置
ETCD_NAME="etcd-1"
### 以下四个要写宿主机的IP
ETCD_LISTEN_PEER_URLS
ETCD_LISTEN_CLIENT_URLS
ETCD_INITIAL_ADVERTISE_PEER_URLS
ETCD_ADVERTISE_CLIENT_URLS
### etcd集群,需要每个名字对应每个IP
ETCD_INITIAL_CLUSTER
创建service文件,让systemctl进行管理
vim /etc/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
EnvironmentFile=/opt/etcd/etcd.conf
ExecStart=/opt/etcd/etcd \
--cert-file=/opt/tls/etcd/server.pem \
--key-file=/opt/tls/etcd/server-key.pem \
--peer-cert-file=/opt/tls/etcd/server.pem \
--peer-key-file=/opt/tls/etcd/server-key.pem \
--trusted-ca-file=/opt/tls/etcd/ca.pem \
--peer-trusted-ca-file=/opt/tls/etcd/ca.pem
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
启动服务
### 刷新缓存项
systemctl daemon-reload
### 启动etcd(一台无法启动,最少两台同时启动,第一次建议三台一起启动)
### 对时间特别敏感,注意三台机器的data时间
systemctl start etcd
### 开机自启
systemctl enable etcd
查看集群状态
./etcdctl --cacert=/opt/tls/etcd/ca.pem --cert=/opt/tls/etcd/server.pem --key=/opt/tls/etcd/server-key.pem \
--endpoints="https://192.168.2.101:2379,https://192.168.2.102:2379,https://192.168.2.103:2379" \
endpoint health
### 成功显示,时间不同,我这个启动的时间长了
https://192.168.2.101:2379 is healthy: successfully committed proposal: took = 42.70519ms
https://192.168.2.102:2379 is healthy: successfully committed proposal: took = 43.620346ms
https://192.168.2.103:2379 is healthy: successfully committed proposal: took = 43.428373ms
友情提示
当扩展使用 cluster-health查询不到,并且确认配置没问题时,可能是第一次启动和现在的配置不一样,
需要删除/var/lib/etcd里面的member文件夹
错误
etcd: conflicting environment variable “ETCD_NAME” is shadowed by corresponding command-line flag (either unset environment variable or disable flag)
解决方法:etcd.service和etcd.conf配置文件有冲突,保留一个即可