二進制部署etcd集群


kuberntes 系統使用 etcd 存儲所有數據,本文檔介紹部署一個三節點高可用 etcd 集群的步驟,這三個節點配置復用 ,我在這里沒有做認證,如果有需要也可以做。

下載二進制文件

https://github.com/coreos/etcd/releases 頁面下載最新版本的二進制文件

 

# wget https://github.com/etcd-io/etcd/releases/download/v3.2.24/etcd-v3.2.24-linux-amd64.tar.gz

# tar –xvf etcd-v3.2.24-linux-amd64.tar.gz

# mv etcd-v3.2.24-linux-amd64/* /usr/local/bin/

**********************************************************

這里也可以用yum方式安裝

# yum install etcd –y
 
yum 安裝的 Etcd 默認配置文件在 /etc/etcd/etcd.conf具體配置內容,以下*.*.*.*根據自己實際ip地址。
 
# 編輯配置文件 vim /etc/etcd/etcd.conf 
# 樣例配置如下 
# 節點名稱 ETCD_NAME=etcd0 
# 數據存放位置 ETCD_DATA_DIR="/var/lib/etcd/etcd0" 
# 監聽其他 Etcd 實例的地址 ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380" 
# 監聽客戶端地址 ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001" 
# 通知其他 Etcd 實例地址 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://*.*.*.*:2380" 
# 初始化集群內節點地址 ETCD_INITIAL_CLUSTER="etcd0=http://*.*.*.*:2380,etcd1=http://*.*.*.*:2380,etcd2=http://*.*.*.*:2380" 
# 初始化集群狀態,new 表示新建 ETCD_INITIAL_CLUSTER_STATE="new" 
# 初始化集群 token ETCD_INITIAL_CLUSTER_TOKEN="mritd-etcd-cluster" 
# 通知 客戶端地址 ETCD_ADVERTISE_CLIENT_URLS="http://*.*.*.*:2379,http://*.*.*.*:4001"
 
************************************************************
 
在/usr/lib/systemd/system/目錄下創建文件etcd.service,內容如下
 

[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
Documentation=https://github.com/coreos

[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
ExecStart=/usr/local/bin/etcd \
   --name ${ETCD_NAME} \
   --initial-advertise-peer-urls ${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
   --listen-peer-urls ${ETCD_LISTEN_PEER_URLS} \
   --listen-client-urls ${ETCD_LISTEN_CLIENT_URLS},http://127.0.0.1:2379 \
   --advertise-client-urls ${ETCD_ADVERTISE_CLIENT_URLS} \
   --initial-cluster-token ${ETCD_INITIAL_CLUSTER_TOKEN} \
   --initial-cluster etcd1=http://172.16.*.*:2380,etcd2=http://172.16.*.*:2380,etcd3=http://172.16.*.*:2380 \
   --initial-cluster-state new \
   --data-dir=${ETCD_DATA_DIR}
Restart=on-failure
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

 


環境變量配置文件/etc/etcd/etcd.conf

# [member]
ETCD_NAME=etcd1
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_LISTEN_PEER_URLS=http://172.16.*.*:2380
ETCD_LISTEN_CLIENT_URLS=http://172.16.*.*:2379

#[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS=http://172.16.*.*:2380
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS=http://172.16.*.*:2379

啟動etcd集群(這里的啟動先啟動etcd2和etcd3,最后啟動etcd1)

systemctl daemon-reload
systemctl enable etcd
systemctl start etcd
systemctl status etcd
 
驗證etcd集群是否正常

etcdctl cluster-health


member 295f11ee2eb4860f is healthy: got healthy result from http://172.16.*.*:2379
member 52e09c7ccb0e79aa is healthy: got healthy result from http://172.16.*.*:2379
member 58804fbff8cfcce0 is healthy: got healthy result from http://172.16.*.*:2379
cluster is healthy

etcdctl member list

295f11ee2eb4860f: name=etcd3 peerURLs=http://172.16.*.*:2380 clientURLs=http://172.16.*.*:2379 isLeader=false
52e09c7ccb0e79aa: name=etcd1 peerURLs=http://172.16.*.*:2380 clientURLs=http://172.16.*.*:2379 isLeader=false
58804fbff8cfcce0: name=etcd2 peerURLs=http://172.16.*.*:2380 clientURLs=http://172.16.*.*:2379 isLeader=true

可以看到etcd集群正常在etcd2上運行,可以停止etcd2查看etcd是否跳到別的機器上,具體自己測試一下就不過多說明


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM