Docker 跨主机互联(etcd + flannel)

环境

主机 IP
docker1 192.168.31.178
docker2 192.168.31.188
docker3 192.168.31.150

前提:

  1. 安装好 docker
  2. 关闭防火墙和 selinux
  3. 搭建好 etcd 集群,可参考:https://www.cnblogs.com/klvchen/articles/15172346.html
  4. 开启内核转发参数:net.ipv4.ip_forward = 1

安装 flannel (3个节点)

yum install flannel -y

配置 Docker (3个节点)

etcdctl mk /atomic.io/network/config '{"Network": "10.10.0.0/16", "SubnetMin": "10.10.10.0", "SubnetMax": "10.10.50.0", "Backend": {"Type": "vxlan"}}'

etcdctl get /atomic.io/network/config

systemctl start flanneld

/usr/libexec/flannel/mk-docker-opts.sh -c

添加 EnvironmentFile,修改 ExecStart (3个节点)

vi /lib/systemd/system/docker.service

EnvironmentFile=/run/docker_opts.env
ExecStart=/usr/bin/dockerd $DOCKER_OPTS -H fd:// --containerd=/run/containerd/containerd.sock

重启 Docker (3个节点)

systemctl daemon-reload
systemctl restart docker

启动容器

# docker1
docker run -it -d --name test1 centos:centos8

# docker2
docker run -it -d --name test2 centos:centos8

# docker3
docker run -it -d --name test3 centos:centos8

测试

docker1

docker2

docker3

posted @ 2021-08-22 19:07  klvchen  阅读(147)  评论(0)    收藏  举报