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的网卡信息