1. 程式人生 > >004.etcd集群部署-發現

004.etcd集群部署-發現

cover 其他 127.0.0.1 -name amd64 idt ntp side roo

一 etcd發現簡介

1.1 需求背景

在實際環境中,集群成員的ip可能不會提前知道。如使用dhcp自動獲取的情況,在這些情況下,使用自動發現來引導etcdetcd集群,而不是指定靜態配置,這個過程被稱為“發現”。
  • etcd Discovery
使用已有的 etcd cluster 來註冊和啟動
  • DNS發現
使用 DNS 啟動。

1.2 實現機制

Discovery service protocol幫助新的etcd成員使用共享URL在集群引導階段發現所有其他成員。 該協議使用新的發現令牌來引導一個唯一的etcd集群。一個發現令牌只能代表一個etcd集群。只要此令牌上的發現協議啟動,即使它中途失敗,也不能用於引導另一個etcd集群。
提示:Discovery service protocol僅用於集群引導階段,不能用於運行時重新配置或集群監視。

1.3 協議工作流程

Discovery protocol是使用內部etcd集群來協調新集群的引導程序。首先,所有新成員都與發現服務交互,並幫助生成預期的成員列表。然後,每個新成員使用此列表引導其服務器,該列表執行與--initial-cluster標誌相同的功能,即設置所有集群的成員信息。

二 集群部署-etcd自帶發現

2.1 環境準備

ntp配置:略 #建議配置ntp服務,保證時間一致性 etcd版本:v3.3.9 防火墻及SELinux:關閉防火墻和SELinux
名稱
地址 主機名 備註
etcd1 172.24.8.71 etcd1.example.com
etcd2 172.24.8.72 etcd2.example.com
etcd3 172.24.8.73 etcd3.example.com
  1 # hostnamectl set-hostname etcd1.example.com
  2 # hostnamectl set-hostname etcd2.example.com
  3 # hostnamectl set-hostname etcd3.example.com
  4
# vi /etc/hosts 5 #…… 6 172.24.8.71 etcd1.example.com 7 172.24.8.72 etcd2.example.com 8 172.24.8.73 etcd3.example.com
提示:CentOS6.x則修改/etc/sysconfig/network,以上為建議配置項。

2.2 安裝etcd

  1 # ETCD_VER=v3.3.9
  2 # GITHUB_URL=https://github.com/coreos/etcd/releases/download
  3 # DOWNLOAD_URL=${GITHUB_URL}
  4 # rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
  5 # rm -rf /tmp/etcd-download-test
  6 # mkdir -p /tmp/etcd-download-test		#創建下載保存目錄
  7 # curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
  8 # tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1
  9 # cp /tmp/etcd-download-test/etcd /usr/local/bin/
 10 # cp /tmp/etcd-download-test/etcdctl /usr/local/bin/
 11 # rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
 12 
 13 # rm -rf /tmp/etcd-download-test/
 14 # ETCDCTL_API=3
 15 # etcd --version
 16 # etcdctl --version				#查看已安裝版本
提示:所有節點均需要安裝etcd。

2.3 啟動前準備

  1 # mkdir -p /var/log/etcd/			#建議創建etcd日誌保存目錄
  2 # mkdir -p /data/etcd			#建議創建單獨的etcd數據目錄

2.4 創建集群發現

  1 [root@etcd1 ~]# curl https://discovery.etcd.io/new?size=3	#使用公共etcd發現服務
  2 https://discovery.etcd.io/c41a8c03922c32eaa4be1e7bcf6332a8
提示:size為集群節點數量,若未指定數量,則默認位3。

2.5 啟動集群

  1 [root@etcd1 ~]# etcd --name etcd1 --data-dir /data/etcd   2 --initial-advertise-peer-urls http://172.24.8.71:2380 \
  3 --listen-peer-urls http://172.24.8.71:2380 \
  4 --listen-client-urls http://172.24.8.71:2379,http://127.0.0.1:2379 \
  5 --advertise-client-urls http://172.24.8.71:2379 \
  6 --discovery https://discovery.etcd.io/c41a8c03922c32eaa4be1e7bcf6332a8
  7 
  8 [root@etcd2 ~]# etcd --name etcd2 --data-dir /data/etcd   9 --initial-advertise-peer-urls http://172.24.8.72:2380 \
 10 --listen-peer-urls http://172.24.8.72:2380 \
 11 --listen-client-urls http://172.24.8.72:2379,http://127.0.0.1:2379 \
 12 --advertise-client-urls http://172.24.8.72:2379 \
 13 --discovery https://discovery.etcd.io/c41a8c03922c32eaa4be1e7bcf6332a8
 14 
 15 [root@etcd3 ~]# etcd --name etcd3 --data-dir /data/etcd  16 --initial-advertise-peer-urls http://172.24.8.73:2380 \
 17 --listen-peer-urls http://172.24.8.73:2380 \
 18 --listen-client-urls http://172.24.8.73:2379,http://127.0.0.1:2379 \
 19 --advertise-client-urls http://172.24.8.73:2379 \
 20 --discovery https://discovery.etcd.io/c41a8c03922c32eaa4be1e7bcf6332a8
提示:每個成員必須指定不同的名稱標誌,否則發現將因重復的名稱而失敗。

2.6 集群檢測

  1 [root@etcd1 ~]# etcdctl member list
  2 [root@etcd1 ~]# etcdctl cluster-health
技術分享圖片

三 集群部署-DNS發現

004.etcd集群部署-發現