1.1 在etcd集群中注册flannel网络
提示:仅在etcd集群中注册一次即可。
etcdctl \ --endpoints=https://192.168.10.154:2379,https://192.168.10.155:2379,https://192.168.10.156:2379 \ --ca-file=/etc/ssl/ca.pem \ --cert-file=/etc/ssl/flanneld.pem \ --key-file=/etc/ssl/flanneld-key.pem \ set /kubernetes/network/config '{"Network":"'172.30.0.0/16'", "SubnetLen": 24, "Backend": {"Type": "vxlan"}}'
- 说明:
- flanneld 当前版本 (v0.10.0) 不支持 etcd v3,故使用 etcd v2 API 写入配置 key 和网段数据
- 写入的 Pod 网段30.0.0/16 必须是 /16 段地址,必须与 kube-controller-manager 的--cluster-cidr 参数值一致
1.2 部署并分发flannel程序文件
cd /server/tools/ tar xf flannel-v0.10.0-linux-amd64.tar.gz scp flanneld mk-docker-opts.sh 192.168.10.161:/opt/kubernetes/bin/ scp flanneld mk-docker-opts.sh 192.168.10.162:/opt/kubernetes/bin/ scp flanneld mk-docker-opts.sh 192.168.10.163:/opt/kubernetes/bin/ scp flanneld mk-docker-opts.sh 192.168.10.164:/opt/kubernetes/bin/
1.3 配置flanneld启动文件
提示:所有节点使用相同的启动文件即可。
cat > /usr/lib/systemd/system/flanneld.service << EOF [Unit] Description=Flanneld overlay address etcd agent After=network.target After=network-online.target Wants=network-online.target After=etcd.service Before=docker.service [Service] Type=notify ExecStart=/opt/kubernetes/bin/flanneld \\ -etcd-cafile=/opt/kubernetes/ssl/ca.pem \\ -etcd-certfile=/opt/kubernetes/ssl/flanneld.pem \\ -etcd-keyfile=/opt/kubernetes/ssl/flanneld-key.pem \\ -etcd-endpoints=https://192.168.10.154:2379,https://192.168.10.155:2379,https://192.168.10.156:2379 \\ -etcd-prefix=/kubernetes/network \\ -iface=eth0 ExecStartPost=/opt/kubernetes/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker Restart=on-failure [Install] WantedBy=multi-user.target RequiredBy=docker.service EOF
- 说明:
- mk-docker-opts.sh 脚本将分配给 flanneld 的 Pod 子网网段信息写入/run/flannel/docker 文件,后续 docker 启动时使用这个文件中的环境变量配置 docker0 网桥
- flanneld 使用系统缺省路由所在的接口与其它节点通信,对于有多个网络接口(如内网和公网)的节点,可以用-iface 参数指定通信接口,如上面的 eth0 接口
- flanneld 运行时需要 root 权限
1.4 启动flannel集群
systemctl daemon-reload systemctl enable flanneld systemctl restart flanneld systemctl status flanneld

我的微信
如果有技术上的问题可以扫一扫我的微信