使用Flannel配置Docker网络

一、启动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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值