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

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