安裝etcd
$ ETCD_VER=v3.3.1
$ GITHUB_URL=https://github.com/coreos/etcd/releases/download
$ rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
$ rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test
$ curl -L ${GITHUB_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-{ETCD_VER}-linux-amd64.tar.gz
$ tar -xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /opt/bin --strip-components=1
$ rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
$ /opt/bin /etcd –version (或者是/opt/bin /etcd-${ETCD_VER}-linux-amd64/etcd –version)
<<輸出結果
etcd Version: 3.3.1
Git SHA: 28f3f26c0
Go Version: go1.9.4
Go OS/Arch: linux/amd64
輸出結果>>
$ ETCDCTL_API=3 /opt/bin/etcd-${ETCD_VER}-linux-amd64/etcd–version version
<<輸出結果
etcdctl version: 3.3.1
API version: 3.3
輸出結果>>
配置etcd集群
以3臺機器為例:
Name? ? ? ? ? ? ?IP? ? ? ? ? ? ? ? ? ? ?Master/slave
Node0? ? ? 172.23.100.4? ? ? ? ? ? ?Master
Node1? ? ? 172.23.100.5? ? ? ? ? ? ?Node
Node2? ? ? 172.23.100.6? ? ? ? ? ? ?Node
1 在三個節(jié)點分別執(zhí)行:
$ sudo mkdir -p /var/lib/etcd/
$ sudo mkdir -p /opt/config/
2 在每個節(jié)點分別創(chuàng)建/opt/config/etcd.conf 文件(不同節(jié)點不同)康震,注意修改ip地址為本機地址以及ETCD_NAME:
如node0:
ETCD_DATA_DIR=/var/lib/etcd
ETCD_NAME="kub-node-0"
ETCD_INITIAL_CLUSTER="kub-node-0=http://172.23.100.4:2380,kub-node-1=http://172.23.100.5:2380,kub-node-2=http://172.23.100.6:2380"
ETCD_INITIAL_CLUSTER_STATE=new
ETCD_LISTEN_PEER_URLS=http://172.23.100.4:2380
ETCD_INITIAL_ADVERTISE_PEER_URLS=http://172.23.100.4:2380
ETCD_ADVERTISE_CLIENT_URLS=http://172.23.100.4:2379
ETCD_LISTEN_CLIENT_URLS=http://172.23.100.4:2379,http://127.0.0.1:2379
而在node1:
ETCD_DATA_DIR=/var/lib/etcd
ETCD_NAME="kub-node-1"
ETCD_INITIAL_CLUSTER="kub-node-0=http://172.23.100.4:2380,kub-node-1=http://172.23.100.5:2380,kub-node-2=http://172.23.100.6:2380"
ETCD_INITIAL_CLUSTER_STATE=new
ETCD_LISTEN_PEER_URLS=http://172.23.100.5:2380
ETCD_INITIAL_ADVERTISE_PEER_URLS=http://172.23.100.5:2380
ETCD_ADVERTISE_CLIENT_URLS=http://172.23.100.5:2379
ETCD_LISTEN_CLIENT_URLS=http://172.23.100.5:2379,http://127.0.0.1:2379
3 創(chuàng)建/lib/systemd/system/etcd.service文件(不同節(jié)點相同配置):
[Unit]
Description=Etcd Server
Documentation=https://github.com/coreos/etcd
After=network.target
[Service]
User=root
Type=simple
EnvironmentFile=-/opt/config/etcd.conf
ExecStart=/opt/bin/etcd-${ETCD_VER}-linux-amd64/etcd
Restart=on-failure
RestartSec=10s
LimitNOFILE=40000
[Install]
WantedBy=multi-user.target
4 分別在三個節(jié)點上啟動服務:
$ sudo systemctl daemon-reload
$ sudo systemctl enable etcd
$ sudo systemctl start etcd
5 查看etcd是否正常啟動:
$ sudo systemctl status etcd
如果顯示Active: active (running),則啟動成功崖媚,否則可以嘗試再次執(zhí)行步驟4;
6 查看端口是否正常開放:
$ sudo netstat -apn | grep 2379
7 查看集群狀態(tài):
$ /opt/bin/etcd-v3.3.1-linux-amd64/etcdctl cluster-health
輸出結果:
member 664b85ff39242fbc is healthy: gothealthy result from http://172.23.100.6:2379
member 9dd263662a4b6f73 is healthy: gothealthy result from http://172.23.100.4:2379
member b17535572fd6a37b is healthy: gothealthy result from http://172.23.100.5:2379
cluster is healthy
8 查看 etcd 集群成員:
$ /opt/bin/etcd-v3.3.1-linux-amd64/etcdctl member list
輸出結果:
9dd263662a4b6f73:name=kub-node-0 peerURLs=http://172.23.100.4:2380clientURLs=http://172.23.100.4:2379 isLeader=true
b17535572fd6a37b:name=kub-node-1 peerURLs=http://172.23.100.5:2380clientURLs=http://172.23.100.5:2379 isLeader=false
e6db3cac1db23670:name=kub-node-2 peerURLs=http://172.23.100.6:2380clientURLs=http://172.23.100.6:2379 isLeader=false
備注:
1 集群ip地址變化后绪励,除了修改/opt/config/etcd.conf 文件并重新啟用服務外踊淳,還需要刪除/var/lib/etcd目錄下保存的數(shù)據(jù);
2 .conf文件中不支持環(huán)境變量;