## Flanneld Flannel通过给每台宿主机分配一个子网的方式为容器提供虚拟网络,它基于Linux TUN/TAP,使用UDP/VXLAN封装IP包来创建overlay网络 并借助etcd(也支持kubernetes)维护网络的分配情况。 ![image.jpg](images/flanneld.png) ## 安装 由于Flannel需要使用etcd存储自身的一个子网信息,所以要保证能成功连接Etcd,写入预定义子网段。 写入的Pod网段${CLUSTER_CIDR}必须是/16段地址,必须与kube-controller-manager的–-cluster-cidr参数值一致。一般情况下,在每一个Node节点都需要进行配置 #下载 https://github.com/coreos/flannel/releases #Flanneld 版本 v0.11.0 #初始化环境 cat>/etc/sysctl.d/kubernetes.conf<&/dev/null #安装命令 cd ~ tar zxvf flannel-v0.11.0-linux-amd64.tar.gz cp {flanneld,mk-docker-opts.sh} /usr/bin/ #查看etcd集群状态并写入网络段 etcdctl --endpoints="http://172.31.32.25:2379,http://172.31.32.26:2379,http://172.31.32.27:2379" cluster-health etcdctl --endpoints="http://172.31.32.25:2379,http://172.31.32.26:2379,http://172.31.32.27:2379" \ set /coreos.com/network/config '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}' #k8s 配置文件存放目录,不存在则如下创建 mkdir -p /etc/kubernetes/ #flanneld 服务配置文件 cat>/etc/kubernetes/flannel.conf</usr/lib/systemd/system/flanneld.service<