目錄
【1、下載二進(jìn)制程序】
【2、安裝etcd集群】
【3、查詢集群狀態(tài)】
【4、存入讀取數(shù)據(jù)】
【5、注意事項(xiàng)】
【6、參考鏈接】
簡(jiǎn)介:
???? Etcd的官網(wǎng)文檔及其在GitHub上的文檔,已經(jīng)非常全了,而且簡(jiǎn)潔明了,無論是二進(jìn)制安裝、還是Docker下運(yùn)行、命令操作,都有詳細(xì)的說明。但直接復(fù)制安裝還是會(huì)出錯(cuò)的,只有親手做一遍,才能發(fā)現(xiàn)有哪些問題。
【1、下載二進(jìn)制程序】
#分別在三臺(tái)主機(jī)上下載并安裝etcd和etcdctl程序
#設(shè)定ETCD的版本
ETCD_VER=v3.3.8
# 設(shè)置下載地址URL
GITHUB_URL=https://github.com/coreos/etcd/releases/download
DOWNLOAD_URL=${GITHUB_URL}
#清除之前的臨時(shí)文件和目錄,創(chuàng)建新的目錄
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test
#使用curl下載etcd二進(jìn)制文件
#地址為https://github.com/coreos/etcd/releases/download/v3.3.8/etcd-v3.3.8-linux-amd64.tar.gz
#解包后刪除壓縮包
curl -L ${DOWNLOAD_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 /tmp/etcd-download-test --strip-components=1
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
#將etcd 和 etcdctl可執(zhí)行程序移動(dòng)到系統(tǒng)路徑中,方便直接運(yùn)行程序
sudo mv /tmp/etcd-download-test/etcd* /usr/local/bin
#查詢etcd和etcdctl版本,
#檢查是否能正常運(yùn)行程序。
etcd --version
ETCDCTL_API=3 etcdctl version
【2、安裝etcd集群】
#在節(jié)點(diǎn)node1上執(zhí)行
TOKEN=token-01
CLUSTER_STATE=new
NAME_1=node1
NAME_2=node2
NAME_3=node3
HOST_1=192.168.3.161
HOST_2=192.168.3.162
HOST_3=192.168.3.163
CLUSTER=${NAME_1}=http://${HOST_1}:2380,${NAME_2}=http://${HOST_2}:2380,${NAME_3}=http://${HOST_3}:2380
THIS_NAME=${NAME_1}
THIS_IP=${HOST_1}
etcd --data-dir=data.etcd --name ${THIS_NAME} \
--initial-advertise-peer-urlshttp://${THIS_IP}:2380 --listen-peer-urlshttp://${THIS_IP}:2380 \
--advertise-client-urlshttp://${THIS_IP}:2379 --listen-client-urlshttp://${THIS_IP}:2379 \
--initial-cluster ${CLUSTER} \
--initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}
#此處注意,直接復(fù)制github網(wǎng)站上的代碼,執(zhí)行時(shí)會(huì)報(bào)錯(cuò)
#2018-06-29 16:57:54.048863 E | etcdmain: error verifying flags, '.--initial-advertise-peer-urls' is not a valid flag. See 'etcd --help'.
#https://github.com/coreos/etcd/blob/master/Documentation/demo.md
#需要清除掉--短橫線之前的空格字符
#在節(jié)點(diǎn)node2上執(zhí)行
TOKEN=token-01
CLUSTER_STATE=new
NAME_1=node1
NAME_2=node2
NAME_3=node3
HOST_1=192.168.3.161
HOST_2=192.168.3.162
HOST_3=192.168.3.163
CLUSTER=${NAME_1}=http://${HOST_1}:2380,${NAME_2}=http://${HOST_2}:2380,${NAME_3}=http://${HOST_3}:2380
THIS_NAME=${NAME_2}
THIS_IP=${HOST_2}
etcd --data-dir=data.etcd --name ${THIS_NAME} \
--initial-advertise-peer-urlshttp://${THIS_IP}:2380 --listen-peer-urlshttp://${THIS_IP}:2380 \
--advertise-client-urlshttp://${THIS_IP}:2379 --listen-client-urlshttp://${THIS_IP}:2379 \
--initial-cluster ${CLUSTER} \
--initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}
#在節(jié)點(diǎn)node3上執(zhí)行
TOKEN=token-01
CLUSTER_STATE=new
NAME_1=node1
NAME_2=node2
NAME_3=node3
HOST_1=192.168.3.161
HOST_2=192.168.3.162
HOST_3=192.168.3.163
CLUSTER=${NAME_1}=http://${HOST_1}:2380,${NAME_2}=http://${HOST_2}:2380,${NAME_3}=http://${HOST_3}:2380
THIS_NAME=${NAME_3}
THIS_IP=${HOST_3}
etcd --data-dir=data.etcd --name ${THIS_NAME} \
--initial-advertise-peer-urlshttp://${THIS_IP}:2380 --listen-peer-urlshttp://${THIS_IP}:2380 \
--advertise-client-urlshttp://${THIS_IP}:2379 --listen-client-urlshttp://${THIS_IP}:2379 \
--initial-cluster ${CLUSTER} \
--initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}
【3、查詢集群狀態(tài)】
export ETCDCTL_API=3
HOST_1=192.168.3.161
HOST_2=192.168.3.162
HOST_3=192.168.3.163
ENDPOINTS=$HOST_1:2379,$HOST_2:2379,$HOST_3:2379
etcdctl --endpoints=$ENDPOINTS --write-out=table member list
etcdctl --endpoints=$ENDPOINTS --write-out=table endpoint status
etcdctl --endpoints=$ENDPOINTS --write-out=table endpoint health
圖1查詢集群的狀態(tài)
【4、存入讀取數(shù)據(jù)】
#在同一網(wǎng)段的其他機(jī)器上,下載并解包etcdctl,
#使用etcdctl命令訪問etcd的集群
export ETCDCTL_API=3
HOST_1=192.168.3.161
HOST_2=192.168.3.162
HOST_3=192.168.3.163
ENDPOINTS=$HOST_1:2379,$HOST_2:2379,$HOST_3:2379
etcdctl --endpoints=$ENDPOINTS put myurl www.sina.com.cn
etcdctl --endpoints=$ENDPOINTS get myurl
圖2使用etcdctl 存入和讀取數(shù)據(jù)
#或者使用curl 訪問etcd集群,
#通過集群中的任何一個(gè)節(jié)點(diǎn),都可以訪問到數(shù)據(jù)
HOST_1=192.168.3.161
HOST_2=192.168.3.162
HOST_3=192.168.3.163
curl -X PUThttp://${HOST_1}:2379/v2/keys/myurl -d value=www.china.com
curl -X GEThttp://${HOST_1}:2379/v2/keys/myurl
curl -X GEThttp://${HOST_2}:2379/v2/keys/myurl
curl -X GEThttp://${HOST_3}:2379/v2/keys/myurl
curlhttp://192.168.3.161:2379/v2/keys
圖3使用curl 存入和讀取數(shù)據(jù)
【5、注意事項(xiàng)】
1、直接復(fù)制粘貼github上的代碼會(huì)出錯(cuò),需要清除etcd命令中--短橫線之前的空格
2018-06-29 16:57:54.048863 E | etcdmain: error verifying flags, '.--initial-advertise-peer-urls' is not a valid flag. See 'etcd --help'.
2、主機(jī)的時(shí)間應(yīng)該同步,可以安裝NTP服務(wù),否則會(huì)告警:
2018-06-29 18:04:29.328082 W | rafthttp: the clock difference against peer 5d5a6e579c03726b is too high [3.777632896s > 1s]
【6、參考鏈接】
etcd官方網(wǎng)址
https://coreos.com/etcd/docs/latest/demo.html
https://github.com/coreos/etcd/releases/
https://github.com/coreos/etcd/blob/master/Documentation/demo.md
etcd rest API基本操作
https://segmentfault.com/a/1190000005649865
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站名稱:ETCD集群安裝實(shí)驗(yàn)-創(chuàng)新互聯(lián)
文章分享:http://www.rwnh.cn/article48/dgsghp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站制作、云服務(wù)器、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容