目录
环境:
系统:Centos7.9
主机名:etcd-23 IP: 10.3.0.23
主机名:etcd-24 IP: 10.3.0.24
主机名:etcd-25 IP: 10.3.0.25
1. 对系统做一个简单的初始化
# 1. 关闭selinux、firewalld
#
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
setenforce 0
systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl status firewalld.service
# 2. 添加hosts,并修改主机名
# 变量
# 相关IP前3字符
Host_Net_Ip="10.3.0"
cat > /etc/hosts << EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.3.0.23 etcd-23
10.3.0.24 etcd-24
10.3.0.25 etcd-25
EOF
# 配置主机名
oneself_ip=`ip a | grep ${Host_Net_Ip} | awk '{print $2}' | awk -F/ '{print $1}'`
grep -w "$oneself_ip" /etc/hosts | awk '{print $2}' | xargs hostnamectl set-hostname && bash
# 3. 修改系统打开的文件数
grep -w "^* soft nofile.*" /etc/security/limits.conf || echo "* soft nofile 61440" >> /etc/security/limits.conf
grep -w "^* hard nofile.*" /etc/security/limits.conf || echo "* hard nofile 61440" >> /etc/security/limits.conf
grep -w "^DefaultLimitNOFILE.*" /etc/systemd/system.conf || echo "DefaultLimitNOFILE=61440" >> /etc/systemd/system.conf
grep -w "^DefaultLimitNPROC.*" /etc/systemd/system.conf || echo "DefaultLimitNPROC=61440" >> /etc/systemd/system.conf
#【不重启生效】
ulimit -Hn 61440 # 【改大后,不可改小,直到重启恢复默认】
ulimit -Sn 61440
# 4. 配置ntp
yum -y install ntp
sed -i s/centos.pool.ntp.org/cn.pool.ntp.org/g /etc/ntp.conf
ntpdate -u 0.cn.pool.ntp.org
systemctl enable ntpd.service
systemctl restart ntpd.service
systemctl status ntpd.service
ntpdate -u 0.cn.pool.ntp.org
2. 安装软件包
yum -y install etcd
3. 配置etcd集群
3.1 配置文件解释
ETCD_DATA_DIR="/var/lib/etcd/default.etcd" # etcd数据保存目录
ETCD_LISTEN_PEER_URLS="http://10.3.0.23:2380" # 集群内部通信使用的URL
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" # 供外部客户端使用的url
ETCD_NAME="etcd23" # etcd实例名称
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.3.0.23:2380" # 广播给集群内其他成员访问的URL
ETCD_ADVERTISE_CLIENT_URLS="http://10.3.0.23:2379" #广播给外部客户端使用的url
ETCD_INITIAL_CLUSTER="etcd23=http://10.3.0.23:2380,etcd24=http://10.3.0.24:2380,etcd25=http://10.3.0.25:2380" # 初始集群成员列表
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" # 集群的名称
ETCD_INITIAL_CLUSTER_STATE="new" # 初始集群状态,new为新建集群
3.2 各节点配置
# 节点:etcd-23
# 配置内容注释
egrep -v "^#|^$" /etc/etcd/etcd.conf
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://10.3.0.23:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="etcd23"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.3.0.23:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.3.0.23:2379"
ETCD_INITIAL_CLUSTER="etcd23=http://10.3.0.23:2380,etcd24=http://10.3.0.24:2380,etcd25=http://10.3.0.25:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
# 节点:etcd-24
egrep -v "^#|^$" /etc/etcd/etcd.conf
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://10.3.0.24:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="etcd24"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.3.0.24:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.3.0.24:2379"
ETCD_INITIAL_CLUSTER="etcd23=http://10.3.0.23:2380,etcd24=http://10.3.0.24:2380,etcd25=http://10.3.0.25:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
# 节点:etcd-25
egrep -v "^#|^$" /etc/etcd/etcd.conf
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://10.3.0.25:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="etcd25"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.3.0.25:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.3.0.25:2379"
ETCD_INITIAL_CLUSTER="etcd23=http://10.3.0.23:2380,etcd24=http://10.3.0.24:2380,etcd25=http://10.3.0.25:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
4. 启动集群
# 多台节点同时执行启动
systemctl enable etcd
systemctl start etcd
systemctl status etcd
5. 集群测试
etcdctl member list # 查看集群节点信息
etcdctl cluster-health # 查看集群健康状态