etcd服务作为Kubernetes集群的主数据库,在安装Kubernetes各服务之前需要首先安装和启动。
1. 安装etcd
yum -y install etcd
2. 修改etcd配置文件
vim /etc/etcd/etcd.conf
ETCD_NAME=etcd-node1 #定义节点名称
ETCD_DATA_DIR="/var/lib/etcd/default.etcd" #定义数据存放位置
#[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS=http://192.168.1.1:2380 #通知其他etcd实例地址
ETCD_INITIAL_CLUSTER="etcd-node1=http://192.168.1.1:2380,etcd-node2=http://192.168.1.2:2380,etcd-node3=http://192.168.1.3:2380" #定义etcd集群节点
ETCD_INITIAL_CLUSTER_STATE=new #初始化集群状态,new表示新建
ETCD_INITIAL_CLUSTER_TOKEN=etcd-k8s-cluster #初始化集群token,token一致则可以进入同一集群
ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 #监听etcd实例的地址
ETCD_ADVERTISE_CLIENT_URLS=http://192.168.1.1:2379 #通知客户端地址
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" #监听客户端地址
#[proxy]
ETCD_PROXY="off"
#[security]
etcd数据库安装时要安装为奇数节点(与zookeeper类似),最少为3台,否则选举Leader会失败,启动其他节点时直接修改以上配置文件的本地ip为当前服务器ip即可。
3. 启动etcd数据库并查询当前状态
3.1 启动etcd数据库
systemctl start etcd
3.2 查询etcd集群成员
etcdctl member list
3.3 查询etcd集群健康状态
etcdctl cluster-health
etcd集群启动完成后可以开始部署Kubernetes master节点。如果遇到etcd节点启动失败,报错为该节点已经加入其它集群的提示,可以尝试在其他节点上执行etcdctl member remove node-name
将节点剔除集群,或者换一个新的集群认证token加入新的集群即可。