暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

docker部署etcd集群

一盎司科技 2021-07-02
3822

采用docker部署之前,需要先检查系统是否安装了docker,没安装可自行安装后再做下面的操作。


环境

系统版本:CentOS 7.6 64bit

docker版本:1.13.1

etcd容器版本:3.5.0

服务器信息:172.16.0.17(etcd1),172.16.0.2(etcd2),172.16.0.3(etcd3)


镜像

此处选取的镜像是quay.io/coreos/etcd:v3.5.0,可先使用下面的命令拉取到本地:

docker pull quay.io/coreos/etcd:v3.5.0

当然,也可以直接在创建etcd的docker容器的时候拉取。


命令

1.创建目录:在三台机器分别执行mkdir -p var/etcd创建目录

2.创建容器:在三台机器分别执行如下命令创建容器(主要是IP不一样)

a.172.16.0.17机器

docker run --restart=always --net host -it --name etcd1 -d \

-p 2379:2379 \

-p 2380:2380 \

-v var/etcd:/var/etcd \

-v etc/localtime:/etc/localtime \

quay.io/coreos/etcd:v3.5.0 \

etcd --name etcd-s1 \

--auto-compaction-retention=1 --max-request-bytes=33554432 --quota-backend-bytes=8589934592 \

--data-dir=/var/etcd/etcd-data \

--listen-client-urls http://0.0.0.0:2379 \

--listen-peer-urls http://0.0.0.0:2380 \

--initial-advertise-peer-urls http://172.16.0.17:2380 \

--advertise-client-urls http://172.16.0.17:2379,http://172.16.0.17:2380 \

--initial-cluster-state new \

--initial-cluster-token etcd-cluster \

--initial-cluster "etcd-s1=http://172.16.0.17:2380,etcd-s2=http://172.16.0.2:2380,etcd-s3=http://172.16.0.3:2380"


b.172.16.0.2机器

docker run --restart=always --net host -it --name etcd2 -d \

-p 2379:2379 \

-p 2380:2380 \

-v var/etcd:/var/etcd \

-v etc/localtime:/etc/localtime \

quay.io/coreos/etcd:v3.5.0 \

etcd --name etcd-s2  \

--auto-compaction-retention=1 --max-request-bytes=33554432 --quota-backend-bytes=8589934592 \

--data-dir=/var/etcd/etcd-data \

--listen-client-urls http://0.0.0.0:2379 \

--listen-peer-urls http://0.0.0.0:2380 \

--initial-advertise-peer-urls http://172.16.0.2:2380 \

--advertise-client-urls http://172.16.0.2:2379,http://172.16.0.2:2380 \

--initial-cluster-state new \

--initial-cluster-token etcd-cluster \

--initial-cluster "etcd-s1=http://172.16.0.17:2380,etcd-s2=http://172.16.0.2:2380,etcd-s3=http://172.16.0.3:2380"


c.172.16.0.3机器

docker run --restart=always --net host -it --name etcd3 -d \

-p 2379:2379 \

-p 2380:2380 \

-v var/etcd:/var/etcd \

-v etc/localtime:/etc/localtime \

quay.io/coreos/etcd:v3.5.0 \

etcd --name etcd-s3 \

--auto-compaction-retention=1 --max-request-bytes=33554432 --quota-backend-bytes=8589934592 \

--data-dir=/var/etcd/etcd-data \

--listen-client-urls http://0.0.0.0:2379 \

--listen-peer-urls http://0.0.0.0:2380 \

--initial-advertise-peer-urls http://172.16.0.3:2380 \

--advertise-client-urls http://172.16.0.3:2379,http://172.16.0.3:2380 \

--initial-cluster-state new \

--initial-cluster-token etcd-cluster \

--initial-cluster "etcd-s1=http://172.16.0.17:2380,etcd-s2=http://172.16.0.2:2380,etcd-s3=http://172.16.0.3:2380"


检查

1.查看容器:执行创建容器的命令后,执行docker ps可查看容器运行状况

2.查看集群:可进入任意一台机器,执行etcdctl  member list查看集群信息


效果


测试

在一台机器执行etcdctl put abc 123:

在另一台机器执行etcdctl get abc,即可发现能获取到数据:


文章转载自一盎司科技,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论