您的位置:首页 > 运维架构 > Docker

使用Flannel配置Docker网络

2020-03-01 00:40 567 查看

一、启动flannel程序

通过Unit文件,启动Flannel服务,Unit文件如下:

[Unit]

Description=flannel

After=docker.service

 

[Service]

TimeoutSec=0

ExecStart=
/var/flannel/flanneld
 
\

-etcd-endpoints=http:
//192
.168.10.161:2379

 

[Install]

WantedBy=multi-user.target

启动flannel

systemctl daemon-reload

systemctl 
enable
 
flannel2016.service

systemctl start flannel2016.service


Flannel服务启动时主要做了以下几步的工作:

  • 从etcd中获取network的配置信息
  • 划分subnet,并在etcd中进行注册
  • 将子网信息记录到/run/flannel/subnet.env中

生成的subnet.env内容如下:

 

cat
 
/run/flannel/subnet
.
env

FLANNEL_NETWORK=172.17.0.0
/16

FLANNEL_SUBNET=172.17.50.1
/24

FLANNEL_MTU=1472

FLANNEL_IPMASQ=
false

二、修改flannel配置文件

 在CoreOS中Docker启动会读取配置文件,配置文件中可包含网络和镜像地址的设置,查看Docker启动服务,会读取/run/flannel/flannel_docker_opts.env文件

systemctl 
cat
 
docker

EnvironmentFile配置如下所示

[Unit]

Description=Docker Application Container Engine

Documentation=http:
//docs
.docker.com

After=containerd.service docker.socket early-docker.target network.target

Requires=containerd.service docker.socket early-docker.target

 

[Service]

Type=notify

EnvironmentFile=-
/run/flannel/flannel_docker_opts
.
env

 

# the default is not to use systemd for cgroups because the delegate issues still

# exists and systemd currently does not support the cgroup feature set required

# for containers run by docker

ExecStart=
/usr/lib/coreos/dockerd
 
--host=fd:
//
 
--containerd=
/var/run/docker/libcontainerd/docker-containerd
.sock $DOCKER_OPTS $DOCKER_CGROUPS

ExecReload=
/bin/kill
 
-s HUP $MAINPID

LimitNOFILE=1048576

 

修改flannel配置文件mk-docker-opts.sh,将docker_env修改为“/run/flannel/flannel_docker_opts.env”

docker_env=
"/run/flannel/flannel_docker_opts.env"

三、生成相关配置文件

Docker使用Flannel的网络传递数据,可以通过命令生成启动参数。

sudo
 
/var/flannel/mk-docker-opts
.sh -i

 

生成的Docker启动配置文件内容如下:

 

cat
 
/run/flannel/flannel_docker_opts
.
env

DOCKER_OPT_BIP=
"--bip=172.17.50.1/24"

DOCKER_OPT_IPMASQ=
"--ip-masq=true"

DOCKER_OPT_MTU=
"--mtu=1472"

DOCKER_NETWORK_OPTIONS=
" --bip=172.17.50.1/24 --ip-masq=true --mtu=1472 "

四、修改docker0网段

source
 
/run/flannel/subnet
.
env

sudo
 
ifconfig
 
docker0 ${FLANNEL_SUBNET}

五、重启Docker

配置完毕后,便可以启动docker了

sudo
 
systemctl restart docker

转载于:https://my.oschina.net/elandyang/blog/892091

  • 点赞
  • 收藏
  • 分享
  • 文章举报
chuangsongtan9738 发布了0 篇原创文章 · 获赞 0 · 访问量 85 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: