debian基於docker部署etcd集羣

本文前提條件是你在每臺使用機器中已經裝好了docker環境

機器環境變量設置

每臺機器設置以下環境變量

export ETCD_VERSION=v3.1.0-alpha.1
export TOKEN=my-etcd-token
export CLUSTER_STATE=new
export NAME_1=etcd-node-0
export NAME_2=etcd-node-1
export NAME_3=etcd-node-2
export HOST_1=192.168.56.101
export HOST_2=192.168.56.104
export HOST_3=192.168.56.105
export CLUSTER=${NAME_1}=http://${HOST_1}:2380,${NAME_2}=http://${HOST_2}:2380,${NAME_3}=http://${HOST_3}:2380

每個機器安裝etcd容器

進入HOST_1機器,設置環境變量和起容器。

export THIS_NAME=${NAME_1}
export THIS_IP=${HOST_1}

sudo docker run -d --net=host --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
    /usr/local/bin/etcd \
    --data-dir=data.etcd --name ${THIS_NAME} \
    --initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 \
    --advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 \
    --initial-cluster ${CLUSTER} \
    --initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}

進入HOST_2機器,設置環境變量和起容器

export THIS_NAME=${NAME_2}
export THIS_IP=${HOST_2}
sudo docker run --net=host -d --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
    /usr/local/bin/etcd \
    --data-dir=data.etcd --name ${THIS_NAME} \
    --initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 \
    --advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 \
    --initial-cluster ${CLUSTER} \
    --initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}

進入HOST_3機器,設置環境變量和起容器

export THIS_NAME=${NAME_3}
export THIS_IP=${HOST_3}
sudo docker run --net=host -d --name etcd quay.io/coreos/etcd:${ETCD_VERSION} \
    /usr/local/bin/etcd \
    --data-dir=data.etcd --name ${THIS_NAME} \
    --initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 \
    --advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 \
    --initial-cluster ${CLUSTER} \
    --initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}

測試集羣運行情況:

docker exec etcd /bin/sh -c "export ETCDCTL_API=3 && /usr/local/bin/etcdctl put foo bar"

本文來自:http://blog.yiyun.pro

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