久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      從零開始搭建etcd分布式存儲(chǔ)系統(tǒng)+Web管理界面

      什么是ETCD

      隨著CoreOS和Kubernetes等項(xiàng)目在開源社區(qū)日益火熱,它們項(xiàng)目中都用到的etcd組件作為一個(gè)高可用、強(qiáng)一致性的服務(wù)發(fā)現(xiàn)存儲(chǔ)倉庫,漸漸為開發(fā)人員所關(guān)注。

      在云計(jì)算時(shí)代,如何讓服務(wù)快速透明地接入到計(jì)算集群中,如何讓共享配置信息快速被集群中的所有機(jī)器發(fā)現(xiàn),更為重要的是,如何構(gòu)建這樣一套高可用、安全、易于部署以及響應(yīng)快速的服務(wù)集群,已經(jīng)成為了迫切需要解決的問題。

      etcd為解決這類問題帶來了福音,它是一個(gè)高可用的 Key/Value 存儲(chǔ)系統(tǒng),內(nèi)部采用raft協(xié)議作為一致性算法。
      準(zhǔn)備好了嗎,干貨要來了,are you ok ?

      本飛豬教程內(nèi)容簡介

      • 1.etcd的安裝
      • 2.搭建單機(jī)版
      • 3.搭建集群版
      • 4.使用監(jiān)聽功能watch(服務(wù)發(fā)現(xiàn))
      • 5.使用rest api
      • 6.搭建WEB界面并使用

      一.安裝

      下載地址:https://github.com/coreos/etcd/releases/

      mkdir -p /home/chenqionghe/test/etcd/  cd !$  # 下載  wget https://github.com/etcd-io/etcd/releases/download/v3.3.12/etcd-v3.3.12-linux-amd64.tar.gz  # 解壓安裝  tar zxvf etcd-v3.3.12-linux-amd64.tar.gz  cd etcd-v3.3.12-linux-amd64  ## 將啟動(dòng)文件和命令管理文件拷貝到 PATH找到的路徑中  cp etcd /usr/local/bin  cp etcdctl /usr/local/bin  cp -r etcd-v3.2.5-linux-amd64 /usr/local/etcd  #將軟件放置到常用目錄下

      啟動(dòng)參數(shù)解釋

      --name  etcd集群中的節(jié)點(diǎn)名,這里可以隨意,可區(qū)分且不重復(fù)就行    --listen-peer-urls  監(jiān)聽的用于節(jié)點(diǎn)之間通信的url,可監(jiān)聽多個(gè),集群內(nèi)部將通過這些url進(jìn)行數(shù)據(jù)交互(如選舉,數(shù)據(jù)同步等)  --initial-advertise-peer-urls   建議用于節(jié)點(diǎn)之間通信的url,節(jié)點(diǎn)間將以該值進(jìn)行通信。  --listen-client-urls  監(jiān)聽的用于客戶端通信的url,同樣可以監(jiān)聽多個(gè)。  --advertise-client-urls  建議使用的客戶端通信url,該值用于etcd代理或etcd成員與etcd節(jié)點(diǎn)通信。  --initial-cluster-token etcd-cluster-1  節(jié)點(diǎn)的token值,設(shè)置該值后集群將生成唯一id,并為每個(gè)節(jié)點(diǎn)也生成唯一id,當(dāng)使用相同配置文件再啟動(dòng)一個(gè)集群時(shí),只要該token值不一樣,etcd集群就不會(huì)相互影響。  --initial-cluster  也就是集群中所有的initial-advertise-peer-urls 的合集  --initial-cluster-state new  新建集群的標(biāo)志

      二.搭建單機(jī)版

      直接啟動(dòng)

      etcd

      etcd默認(rèn)監(jiān)聽的是localhost的2379端口,既只監(jiān)聽了lo設(shè)備,這樣會(huì)導(dǎo)致啟動(dòng)后集群中的其他機(jī)器無法訪問
      因此我們可以在啟動(dòng)的時(shí)候?qū)⒛J(rèn)的localhost改成0.0.0.0,確保etcd監(jiān)聽了所有網(wǎng)卡。

      etcd -listen-client-urls="http://0.0.0.0:2379" --advertise-client-urls="http://0.0.0.0:2379"

      注意:etcd有要求,如果–listen-client-urls被設(shè)置了,那么就必須同時(shí)設(shè)置–advertise-client-urls,所以即使設(shè)置和默認(rèn)相同,也必須顯式設(shè)置
      我們來使用curl來測試一下,是否可以遠(yuǎn)程訪問,這里我的機(jī)器IP是10.211.55.25

      ?  ~ curl -L  http://10.211.55.25:2379/version  {"etcdserver":"3.3.12","etcdcluster":"3.3.0"}

      當(dāng)然,我們也可以通過docker運(yùn)行,這里給出啟動(dòng)腳本

      #!/usr/bin/env bash  ETCD_NAME="etcd"  ETCD_VERSION="v3.3.1"  ETCD_PORT_CLIENT=2379  ETCD_PORT_NODE=2380  docker run -d     -p ${ETCD_PORT_CLIENT}:2379     -p ${ETCD_PORT_NODE}:2380     --name ${ETCD_NAME} quay.io/coreos/etcd:${ETCD_VERSION}     /usr/local/bin/etcd     --data-dir=/etcd-data --name node1     --initial-advertise-peer-urls http://0.0.0.0:2380 --listen-peer-urls http://0.0.0.0:2380     --advertise-client-urls http://0.0.0.0:2379 --listen-client-urls http://0.0.0.0:2379     --initial-cluster node1=http://0.0.0.0:2380

      三.搭建集群版

      Etcd構(gòu)建自身高可用集群主要有三種形式:

      • 靜態(tài)發(fā)現(xiàn): 預(yù)先已知 Etcd 集群中有哪些節(jié)點(diǎn),在啟動(dòng)時(shí)直接指定好Etcd的各個(gè)node節(jié)點(diǎn)地址
      • Etcd動(dòng)態(tài)發(fā)現(xiàn): 通過已有的Etcd集群作為數(shù)據(jù)交互點(diǎn),然后在擴(kuò)展新的集群時(shí)實(shí)現(xiàn)通過已有集群進(jìn)行服務(wù)發(fā)現(xiàn)的機(jī)制
      • DNS動(dòng)態(tài)發(fā)現(xiàn): 通過DNS查詢方式獲取其他節(jié)點(diǎn)地址信息

      這里我們采用Static方式,準(zhǔn)備三臺(tái)機(jī)器,ip如下(都已經(jīng)安裝etcd)

      node1 10.211.55.2  node2 10.211.55.25  node3 10.211.55.26

      進(jìn)入node1,創(chuàng)建并運(yùn)行run.sh,腳本內(nèi)容如下

      #!/usr/bin/env bash  #節(jié)點(diǎn)名稱  ETCD_NAME=node-1  #本機(jī)IP地址  LOCAL_IP=10.211.55.2  #ETCD存儲(chǔ)目錄  ETCD_DATA_DIR=/usr/local/etcd/data  #初始化名稱  INITIAL_CLUSTER_TOKEN=cqh-test-cluster  #初始化群集列表  INITIAL_CLUSTER="node-1=http://10.211.55.2:2380,node-2=http://10.211.55.25:2380,node-3=http://10.211.55.26:2380"  #初始化狀態(tài)  INITIAL_CLUSTER_STATE=new    #開始運(yùn)行  etcd --name ${ETCD_NAME} --data-dir ${ETCD_DATA_DIR}       --initial-advertise-peer-urls http://${LOCAL_IP}:2380       --listen-peer-urls http://${LOCAL_IP}:2380       --listen-client-urls http://${LOCAL_IP}:2379,http://127.0.0.1:2379       --advertise-client-urls http://${LOCAL_IP}:2379       --initial-cluster-token ${INITIAL_CLUSTER_TOKEN}       --initial-cluster ${INITIAL_CLUSTER}       --initial-cluster-state ${INITIAL_CLUSTER_STATE}

      進(jìn)入node2,創(chuàng)建并運(yùn)行run.sh,腳本內(nèi)容和node1差不多(只修改了ETCD_NAME和LOCAL_IP)

      #!/usr/bin/env bash  #節(jié)點(diǎn)名稱  ETCD_NAME=node-2  #本機(jī)IP地址  LOCAL_IP=10.211.55.25  #ETCD存儲(chǔ)目錄  ETCD_DATA_DIR=/usr/local/etcd/data  #初始化名稱  INITIAL_CLUSTER_TOKEN=cqh-test-cluster  #初始化群集列表  INITIAL_CLUSTER="node-1=http://10.211.55.2:2380,node-2=http://10.211.55.25:2380,node-3=http://10.211.55.26:2380"  #初始化狀態(tài)  INITIAL_CLUSTER_STATE=new    #開始運(yùn)行  etcd --name ${ETCD_NAME} --data-dir ${ETCD_DATA_DIR}       --initial-advertise-peer-urls http://${LOCAL_IP}:2380       --listen-peer-urls http://${LOCAL_IP}:2380       --listen-client-urls http://${LOCAL_IP}:2379,http://127.0.0.1:2379       --advertise-client-urls http://${LOCAL_IP}:2379       --initial-cluster-token ${INITIAL_CLUSTER_TOKEN}       --initial-cluster ${INITIAL_CLUSTER}       --initial-cluster-state ${INITIAL_CLUSTER_STATE}

      進(jìn)入node3,創(chuàng)建并運(yùn)行run.sh

      #!/usr/bin/env bash  #節(jié)點(diǎn)名稱  ETCD_NAME=node-3  #本機(jī)IP地址  LOCAL_IP=10.211.55.26  #ETCD存儲(chǔ)目錄  ETCD_DATA_DIR=/usr/local/etcd/data  #初始化名稱  INITIAL_CLUSTER_TOKEN=cqh-test-cluster  #初始化群集列表  INITIAL_CLUSTER="node-1=http://10.211.55.2:2380,node-2=http://10.211.55.25:2380,node-3=http://10.211.55.26:2380"  #初始化狀態(tài)  INITIAL_CLUSTER_STATE=new    #開始運(yùn)行  etcd --name ${ETCD_NAME} --data-dir ${ETCD_DATA_DIR}       --initial-advertise-peer-urls http://${LOCAL_IP}:2380       --listen-peer-urls http://${LOCAL_IP}:2380       --listen-client-urls http://${LOCAL_IP}:2379,http://127.0.0.1:2379       --advertise-client-urls http://${LOCAL_IP}:2379       --initial-cluster-token ${INITIAL_CLUSTER_TOKEN}       --initial-cluster ${INITIAL_CLUSTER}       --initial-cluster-state ${INITIAL_CLUSTER_STATE}

      我們看到3臺(tái)都啟動(dòng)成功了
      從零開始搭建etcd分布式存儲(chǔ)系統(tǒng)+Web管理界面

      然后我們在node2上面執(zhí)行操作

      root@Ubuntu:~# etcdctl member list  2033c1336b929ca7: name=node-3 peerURLs=http://10.211.55.26:2380 clientURLs=http://10.211.55.26:2379 isLeader=true  edc51d36208cfbcf: name=node-2 peerURLs=http://10.211.55.25:2380 clientURLs=http://10.211.55.25:2379 isLeader=false  f09a9dba19a725e2: name=node-1 peerURLs=http://10.211.55.2:2380 clientURLs=http://10.211.55.2:2379 isLeader=false

      可以看到集群已經(jīng)生效了,我們再來測試一下,在ndoe2上執(zhí)行操作

      etcdctl set /cqh muscle

      看看node1和node3是否能保持?jǐn)?shù)據(jù)一致

      從零開始搭建etcd分布式存儲(chǔ)系統(tǒng)+Web管理界面

      可以看到在node1和node3中都能能夠正確的獲取/cqh的值

      四.監(jiān)聽功能watch演示

      • etcdctl watch key
        觀察一個(gè)值的變化,觀察到變化后,打印值并watch退出
        從零開始搭建etcd分布式存儲(chǔ)系統(tǒng)+Web管理界面

      • etcdctl watch key -f
        永久觀察值的變化,觀察到變化后,打印直到Ctrl+C退出
        從零開始搭建etcd分布式存儲(chǔ)系統(tǒng)+Web管理界面
      • etcdctl exec-watch key — sh -c ‘pwd’
        監(jiān)聽到值有變化,就執(zhí)行指定的命令(且不退出執(zhí)行的可以是shell命令)
        從零開始搭建etcd分布式存儲(chǔ)系統(tǒng)+Web管理界面

      五.使用rest api

      • 創(chuàng)建鍵值
      ?  ~ curl http://10.211.55.25:2379/v2/keys/cqh -XPUT -d value="陳瓊和1"  {"action":"set","node":{"key":"/cqh","value":"陳瓊和","modifiedIndex":14,"createdIndex":14},"prevNode":{"key":"/cqh","value":"陳瓊和","modifiedIndex":13,"createdIndex":13}}
      • 創(chuàng)建目錄
      ?  ~ curl http://10.211.55.25:2379/v2/keys/gym -XPUT -d dir=true  {"action":"set","node":{"key":"/gym","dir":true,"modifiedIndex":12,"createdIndex":12}}
      • 獲取鍵值
      ?  ~ curl http://10.211.55.25:2379/v2/keys/cqh  {"action":"get","node":{"key":"/cqh","value":"陳瓊和","modifiedIndex":14,"createdIndex":14}}
      • 創(chuàng)建鍵值帶ttl
      ?  ~ curl http://10.211.55.25:2379/v2/keys/hero -XPUT -d value="超人" -d ttl=5
      • 創(chuàng)建有序鍵值
      curl http://10.211.55.25:2379/v2/keys/fitness -XPOST -d value="bench_press"  curl http://10.211.55.25:2379/v2/keys/fitness -XPOST -d value="dead_lift"  curl http://10.211.55.25:2379/v2/keys/fitness -XPOST -d value="deep_squat"

      獲取剛創(chuàng)建的fitness

      curl http://10.211.55.25:2379/v2/keys/fitness  {"action":"create","node":{"key":"/fitness/00000000000000000020","value":"bench_press","modifiedIndex":20,"createdIndex":20}}  {"action":"create","node":{"key":"/fitness/00000000000000000021","value":"dead_lift","modifiedIndex":21,"createdIndex":21}}  {"action":"create","node":{"key":"/fitness/00000000000000000022","value":"deep_squat","modifiedIndex":22,"createdIndex":22}}  {"action":"get","node":{"key":"/fitness","dir":true,"nodes":[{"key":"/fitness/00000000000000000022","value":"deep_squat","modifiedIndex":22,"createdIndex":22},{"key":"/fitness/00000000000000000020","value":"bench_press","modifiedIndex":20,"createdIndex":20},{"key":"/fitness/00000000000000000021","value":"dead_lift","modifiedIndex":21,"createdIndex":21}],"modifiedIndex":20,"createdIndex":20}}
      • 刪除鍵
      curl http://10.211.55.25:2379/v2/keys/cqh -XDELETE
      • 列出所有集群成員
      curl http://10.211.55.25:2379/v2/members
      • 統(tǒng)計(jì)信息-查看leader
      curl http://10.211.55.25:2379/v2/stats/leader
      • 節(jié)點(diǎn)自身信息
      curl http://10.211.55.26:2379/v2/stats/self
      • 查看集群運(yùn)行狀態(tài)
      curl http://10.211.55.26:2379/v2/stats/store

      六.搭建WEB界面并使用

      這里分別演示搭建etcd-browser和etcdkeeper,兩者功能大同小異,不同的是etcdkeeper支持v3的api

      1.搭建etcd-browser

      docker run --rm  -d --name etcd-browser   -p 8000:8000   --env ETCD_HOST=10.211.55.25   --env ETCD_PORT=2379   buddho/etcd-browser

      運(yùn)行后訪問http://10.211.55.25:8000/
      看到如下界面,可以看到上面添加的所有數(shù)據(jù),這里我使用界面添加了漫威和DC的英雄
      從零開始搭建etcd分布式存儲(chǔ)系統(tǒng)+Web管理界面

      2.搭建etcdkeeper

      docker run -it -d --name etcdkeeper   -p 8080:8080   deltaprojects/etcdkeeper

      訪問http://10.211.55.25:8080/etcdkeeper/,輸入etcd的地址,看到如下界面
      從零開始搭建etcd分布式存儲(chǔ)系統(tǒng)+Web管理界面

      到這里,etcd的單機(jī)版搭建、集群版、客戶端使用、rest api web管理界面等功能都介紹了,你還在等什么,趕緊high起來

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)