示例服务器:
etcd1:etcd-41 192.168.31.41 etcd2:etcd-42 192.168.31.42 etcd3:etcd-43 192.168.31.43
1、etcd单节点安装配置
参考文档:Kubernetes(k8s) etcd 安装与配置单节点集群方法
2、配置多节点集群
1)参考下面安装etcd,然后删除etcd1现有的集群
systemctl stop etcd rm -rf /var/lib/etcd/*
2)修改etcd1和etcd2的配置文件
vim /etc/etcd/etcd.conf
etcd1:
ETCD_DATA_DIR="/var/lib/etcd/cluster.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.31.41:2380,http://localhost:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.31.41:2379,http://localhost:2379"
ETCD_NAME="etcd-41"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.31.41:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379,http://192.168.31.41:2379"
ETCD_INITIAL_CLUSTER="etcd-41=http://192.168.31.41:2380,etcd-42=http://192.168.31.42:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
注意:其中,ETCD_DATA_DIR
定义了数据存放位置;ETCD_INITIAL_CLUSTER
设置了集群中的节点数量;ETCD_NAME
定义了本etcd的名称;ETCD_INITIAL_CLUSTER_TOKEN
需要确保所有节点相同;ETCD_INITIAL_CLUSTER_STATE
可以设置为 new
或者 existing
,new
表示初始化集群,而existing
则是加入现有集群。
etcd2:
TA_DIR="/var/lib/etcd/cluster.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.31.42:2380,http://localhost:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.31.42:2379,http://localhost:2379"
ETCD_NAME="etcd-42"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.31.42:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379,http://192.168.31.42:2379"
ETCD_INITIAL_CLUSTER="etcd-41=http://192.168.31.41:2380,etcd-42=http://192.168.31.42:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
3)启动etcd1和etcd2上etcd服务
systemctl start etcd
systemctl enable etcd
4)查看测试集群状态
在etcd1查看集群信息:
etcdctl member list
在etcd1上创建一个目录,并在etcd2上查看是否已经同步:
[root@etcd1 etcd]# etcdctl put k8s cjavapy
OK
[root@etcd2 etcd]# etcdctl get k8s
k8s
cjavapy
3、etcd集群中添加节点
参考上面文件在etcd3上安装etcd,并设置etcdctl版本为3。然后在etcd1上将etcd3添加入集群,命令如下:
etcdctl member add etcd-43 --peer-urls="http://192.168.31.43:2380"
修改etcd3的配置文件如下:
vim /etc/etcd/etcd.conf
修改内容如下:
TA_DIR="/var/lib/etcd/cluster.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.31.43:2380,http://localhost:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.31.43:2379,http://localhost:2379"
ETCD_NAME="etcd-43"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.31.43:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379,http://192.168.31.43:2379"
ETCD_INITIAL_CLUSTER="etcd-41=http://192.168.31.41:2380,etcd-42=http://192.168.0.42:2380,etcd-43=http://192.168.31.43:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="existing"
然后启动etcd3上的etcd服务:
systemctl start etcd
在etcd1上查看etcd3是否成功加入:
[root@etcd1 etcd]# etcdctl member list 243ed279a613f16b, started, etcd-41, http://192.168.31.41:2380, http://192.168.31.41:2379,http://localhost:2379 6929dce9748956d9, started, etcd-43, http://192.168.31.43:2380, http://192.168.31.43:2379,http://localhost:2379 341f7d323462e38f, started, etcd-42, http://192.168.31.42:2380, http://192.168.31.42:2379,http://localhost:2379
4、etcd集群中删除节点
1)在etcd1上删除etcd3节点
etcdctl member remove 6929dce9748956d9
2)在etcd1上查看节点信息
[root@etcd1 etcd]# etcdctl member list 903cd449c601f13a, started, etcd-41, http://192.168.31.41:2380, http://192.168.31.41:2379,http://localhost:2379 876vf3e12sdfe45b, started, etcd-42, http://192.168.31.42:2380, http://192.168.31.42:2379,http://localhost:2379
3)停止删除节点的服务并删除数据
systemctl stop etcd rm -rf /var/lib/etcd/*