证书需要ca,ca key,flannel key与证书 安装之前需要配置subnet.env文件,配置flannel管理集群的网络 举例说明: FLANNEL_NETWORK=172.18.0.0/16 # flannel地址池 FLANNEL_SUBNET=172.18.16.0/24 # 分配给每个宿主机docker0的网段 FLANNEL_MTU=1500 # 数据分片大小 FLANNEL_IPMASQ=false flannel host-gw: 宿主机要在一个二层网络下,使用同一个网关,维护路由表(etcd) 使用的是路由转发,效率比较高 flannel vxlan: 宿主机可以在不同网络中,使用flannel0封包解包 flannel udp flannel依赖etcd,安装完成以后,需要在etcd中添加数据 # etcdctl member list # 查看etd master # etcdctl --endpoint http://10.1.0.0:2379 set /coreos.com/network/config '{"Network": "172.18.0.0/16", "SubnetLen":24, "Backend":{"Type": "VxLan", "Directrouting": True}}' "Directrouting": True,同一个node中,直接转发 优化flannel 安装iptables-service # 删除默认生成规则 iptables -t nat -D POSTROUTING -s 本地docker弯管 ! -o docker0 -j MASQUERADE # 若本地docker网段访问的网段不是flannel的地址池,且发送的网桥不是docker0的,才进行snat转换(即容器之间不做转换) iptables -t nat -I POSTROUTING -s 本地docker网段 ! -d 172.18.0.0/16 ! -o docker0 -j MASQUERADE