网站首页 文章专栏 01flannel.md
01flannel.md
创建于:2021-07-04 07:48:14 更新于:2024-05-03 17:36:29 羽瀚尘 427

创建master节点后,集群并没有部署成功,因为pod, service之间无法访问。这需要我们安装网络插件。

拉取docker image并打tag

docker pull jmgao1983/flannel:v0.10.0-amd64docker tag jmgao1983/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64

获取cni插件

创建cni插件目录

sudo mkdir -p /opt/cni/bincd /opt/cni/bin

下载二进制文件

sudo wget https://github.com/containernetworking/plugins/releases/download/v0.7.1/cni-plugins-amd64-v0.7.1.tgz

解压

sudo tar -zxvf cni-plugins-amd64-v0.7.1.tgz

/opt/cni/bin目录应该存在以下文件: d120cd6c83d7d59a611be84bfd070a1a

获取插件启动配置文件

wget https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml

定制启动配置文件

  • 修改其中net-conf.json中的Network参数使其与kubeadm init时指定的--pod-network-cidr保持一致。
  • 这里v0.10.0版有一个bug,需要为启动flannel的daemonset添加toleration,以允许在尚未Ready的节点上部署flannel pod:
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
#添加下面这个toleration
- key: node.kubernetes.io/not-ready
operator: Exists
effect: NoSchedule

可以参考这个issue

启动flannel

kubectl apply -f kube-flannel.yml

运行命令kubectl get pods --all-namespaces, 如果coredns为ready状态,则启动成功。

60fb26b42ee64b668173cba17b4fe80c

运行命令kubectl get nodes, 如果master为ready状态,则master节点部署完毕。

650a2d46eaac3dae75a7989535eedb13

参考: