k8s二进制部署系列05-部署flannel集群

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
温馨提示:本文最后更新于2022-12-20 20:57:47,已超过493天没有更新。某些文章具有时效性,若文章内容或图片资源有错误或已失效,请联系站长。谢谢!
转载请注明本文链接:https://blog.leonshadow.cn/763482/1192.html
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享