1.安裝etcd
yum install etcd
2.准備目錄
mkdir -p /work/etcd
chown etcd:etcd /work/etcd
3.備份
cp /etc/etcd/etcd.conf /etc/etcd/etcd.conf.template
4.參數說明
name 節點名稱
data-dir 指定節點的數據存儲目錄
listen-peer-urls 監聽URL,用於與其他節點通訊
listen-client-urls 對外提供服務的地址:比如 http://ip:2379,http://127.0.0.1:2379 ,客戶端會連接到這里和 etcd 交互
initial-advertise-peer-urls 該節點同伴監聽地址,這個值會告訴集群中其他節點
initial-cluster 集群中所有節點的信息,格式為 node1=http://ip1:2380,node2=http://ip2:2380,… 。注意:這里的 node1 是節點的 --name 指定的名字;后面的 ip1:2380 是 --initial-advertise-peer-urls 指定的值
initial-cluster-state 新建集群的時候,這個值為 new ;假如已經存在的集群,這個值為 existing
initial-cluster-token 創建集群的 token,這個值每個集群保持唯一。這樣的話,如果你要重新創建集群,即使配置和之前一樣,也會再次生成新的集群和節點 uuid;否則會導致多個集群之間的沖突,造成未知的錯誤
advertise-client-urls 對外公告的該節點客戶端監聽地址,這個值會告訴集群中其他節點
5.編輯配置文件
vim /etc/etcd/etcd.conf
[member]
ETCD_NAME="etcd1" #范例:etcd1
ETCD_DATA_DIR="/work/etcd"
ETCD_LISTEN_PEER_URLS="http://master_ip:2380"
ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://master_ip:2379"
[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://master_ip:2380"
ETCD_INITIAL_CLUSTER="master_ip_name=http://master_ip:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://master_ip:2379"
如果k8s-master是集群,配置不同之處如下:
ETCD_INITIAL_CLUSTER="etcd1=http://master_ip1:2380,etcd2=http://master_ip2:2380,etcd3=http://master_ip2:2380"
6.編輯啟動腳本
vim /usr/lib/systemd/system/etcd.service
ExecStart=/bin/bash -c "GOMAXPROCS={ETCD_NAME}" --data-dir="
{ETCD_LISTEN_CLIENT_URLS}" --listen-peer-urls="
{ETCD_ADVERTISE_CLIENT_URLS}" --initial-advertise-peer-urls="
{ETCD_INITIAL_CLUSTER}" --initial-cluster-state="${ETCD_INITIAL_CLUSTER_STATE}""
7.啟動etcd服務
systemctl daemon-reload
systemctl enable etcd.service
systemctl start etcd.service
8.創建網絡信息
etcdctl mkdir /k8s/network
etcdctl set /k8s/network/config '{"Network":"172.100.0.0/16"}'