Etcd集羣部署小結

etcd集羣模式

這裏的集羣模式是指完全集羣模式,當然也可以在單機上通過不同的端口,部署僞集羣模式,只是那樣做只適合測試環境,生產環境考慮到可用性的話需要將etcd實例分佈到不同的主機上,這裏集羣搭建有三種方式,分佈是靜態配置,etcd發現,dns發現
下面將在以下三臺主機上搭建etcd集羣,
etcd0 192.168.115.136
etcd1 192.168.115.137
etcd2 192.168.115.138

在每個節點上:

yum install etcd -y
ssh-keygen -t rsa
yum -y install openssh-clients
ssh-copy-id -i ~/.ssh/id_rsa.pub node1
ssh-copy-id -i ~/.ssh/id_rsa.pub node2
ssh-copy-id -i ~/.ssh/id_rsa.pub node3

2.1 配置項說明
--name
#etcd集羣中的節點名,這裏可以隨意,可區分且不重複就行  
--listen-peer-urls
#監聽的用於節點之間通信的url,可監聽多個,集羣內部將通過這些url進行數據交互(如選舉,數據同步等)
--initial-advertise-peer-urls 
#建議用於節點之間通信的url,節點間將以該值進行通信。
--listen-client-urls
#監聽的用於客戶端通信的url,同樣可以監聽多個。
--advertise-client-urls
#建議使用的客戶端通信url,該值用於etcd代理或etcd成員與etcd節點通信。
--initial-cluster-token etcd-cluster-1
#節點的token值,設置該值後集羣將生成唯一id,併爲每個節點也生成唯一id,當使用相同配置文件再啓動一個集羣時,只要該token值不一樣,etcd集羣就不會相互影響。
--initial-cluster
#集羣中所有的initial-advertise-peer-urls 的合集
--initial-cluster-state new
#新建集羣的標誌

2.2 靜態配置
靜態配置主要預先將集羣的配置信息分配好,然後將集羣分佈啓動,集羣將根據配置信息組成集羣。這裏按如下的配置信息分別啓動三個etcd。
tee /etc/etcd/etcd.conf <<-'EOF'
ETCD_NAME=etcd01
ETCD_DATA_DIR="/var/lib/etcd/etcd01"
ETCD_LISTEN_PEER_URLS="http://192.168.115.136:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.115.136:2379,http://127.0.0.1:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.115.136:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.115.136:2379"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-1"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.115.136:2380,etcd02=http://192.168.115.137:2380,etcd03=http://192.168.115.138:2380"
EOF

tee /etc/etcd/etcd.conf <<-'EOF'
ETCD_NAME=etcd02
ETCD_DATA_DIR="/var/lib/etcd/etcd02"
ETCD_LISTEN_PEER_URLS="http://192.168.115.137:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.115.137:2379,http://127.0.0.1:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.115.137:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.115.137:2379"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-1"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.115.136:2380,etcd02=http://192.168.115.137:2380,etcd03=http://192.168.115.138:2380"
EOF

tee /etc/etcd/etcd.conf <<-'EOF'
ETCD_NAME=etcd03
ETCD_DATA_DIR="/var/lib/etcd/etcd03"
ETCD_LISTEN_PEER_URLS="http://192.168.115.138:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.115.138:2379,http://127.0.0.1:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.115.138:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.115.138:2379"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-1"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.115.136:2380,etcd02=http://192.168.115.137:2380,etcd03=http://192.168.115.138:2380"
EOF
按如上配置分別啓動集羣,啓動集羣后,將會進入集羣選舉狀態,若出現大量超時,則需要檢查主機的防火牆是否關閉,或主機之間是否能通過2380端口通信,集羣建立後通過以下命令檢查集羣狀態。

查看集羣成員
[root@node1]# etcdctl  member list
4c6e3cdbe11da35: name=etcd03 peerURLs=http://192.168.115.138:2380 clientURLs=http://192.168.115.138:2379 isLeader=false
165e1d628eb37488: name=etcd02 peerURLs=http://192.168.115.137:2380 clientURLs=http://192.168.115.137:2379 isLeader=true
904e760d8f0aa918: name=etcd01 peerURLs=http://192.168.115.136:2380 clientURLs=http://192.168.115.136:2379 isLeader=false

檢查集羣健康狀態
[root@node1]# etcdctl cluster-health
member 4c6e3cdbe11da35 is healthy: got healthy result from http://192.168.115.138:2379
member 165e1d628eb37488 is healthy: got healthy result from http://192.168.115.137:2379
member 904e760d8f0aa918 is healthy: got healthy result from http://192.168.115.136:2379
cluster is healthy
如上集羣搭建成功。

————————————————
版權聲明:本文爲CSDN博主「小t飛俠」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zwj52pk/article/details/82682092

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章