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

2018年7月16日13:10:50 发表评论 925 views

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

weinxin
我的微信
如果有技术上的问题可以扫一扫我的微信
版权声明
1. 本网站名称:Leon的博客
2. 本站永久网址:https://blog.leonshadow.cn
3. 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ632113590进行删除处理。
4. 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6. 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
liyang