5.1、flannel介绍

flannel 是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络 (overlay network) 工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。Kubernetes 会为每一个 POD 分配一个独立的 IP 地址,这样便于同一个 POD 中的 Containers 彼此连接,flannel通过在集群中创建一个覆盖网格网络 (overlay mesh network) 为主机设定一个子网。

5.2、etcd设置

5.2.1、设置fannel网络段

# etcdctl set /coreos.com/network/config '{"Network":"10.2.0.0/16"}'

5.2.2、修改配置文件

把/etc/etcd/etcd.conf里的ETCD_LISTEN_CLIENT_URLS=”http://localhost:2379″中的locahost改为0.0.0.0

5.3、flannel安装配置(所有node节点都需要安装)

5.3.1、wget https://github.com/coreos/flannel/releases/download/v0.5.5/flannel-0.5.5-linux-amd64.tar.gz

5.3.2、tar -xzvf flannel-0.5.5-linux-amd64.tar.gz

5.3.3、安装

直接复制解压出来的两个文件到可执行目录就可以

#cp flannel-0.5.5/flanneld /usr/bin

#cp flannel-0.5.5/mk-docker-opts.sh /usr/bin

5.3.4、配置

vi /etc/sysconfig/flanneld

添加:

# Flanneld configuration options

# etcd url location

FLANNEL_ETCD="http://centos-master:2379"

# etcs config key

FLANNEL_ETCD_KEY="/coreos.com/network" 

# Any additonal options

#FLANNEL_OPTIONS=

5.3.5、编辑服务文件/usr/lib/systemd/system/flanneld.service

添加:

[Unit]

Description=Flanneld overlay address etcd agent

After=network.target

Before=docker.service

 

[Service]

Type=notify

EnvironmentFile=-/etc/sysconfig/flanneld

EnvironmentFile=-/etc/sysconfig/docker-network

ExecStart=/usr/bin/flanneld \

            -etcd-endpoints=${FLANNEL_ETCD} \

            $FLANNEL_OPTIONS

 

[Install]

RequiredBy=docker.service

WantedBy=multi-user.target

或者直接启动:

flanneld -iface=eno16777736 -etcd-endpoints=http://centos-master:2379 & (绑定一个正常工作的网卡)

5.4、暂停docker服务

#systemctl stop docker

5.6、执行脚本(修改一下docker)

#systemctl start flanneld

#mk-docker-opts.sh -i

#source /run/flannel/subnet.env

#ifconfig docker0 ${FLANNEL_SUBNET}

#systemctl start docker

5.7、测试

在centos-minion上ip a查看可以看到flannel0的网卡信息

wKioL1f7UkWB4IOGAAAaxdvvzpI498.png