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加入新的集群即可。
