status状态问题

在这里插入图片描述
搭建好k8s集群后,集群中的节点status全部都是NotReady,最后一查资料,原来是网络插件没有安装,看到有安装fannel,也有安装calico的
关于k8s网络,刚入门对其并未了解太多,这几篇博客解释的挺通透的。
这里选择了安装fannel网络,借鉴网上的这篇博客,就简单记录一些

Flannel原理

Flannel是由Core OS团队针对k8s设计的一个网络规划服务,其功能是为集群中所有docker容器分配全局唯一的虚拟IP地址,并通过Overlay网络实现这些虚拟IP之间的通信。
在这里插入图片描述
1)每个主机上需要安装并运行etcd和flannel
2)在etcd中规划配置所有主机的docker0子网范围
3)主机上的flannel根据etcd的配置为本机的docker0分配子网,一确保所有主机上的docker0的网络不重复,并将分配的结果保存到etcd中
4)当容器需要与其他主机上的容器进行通信是,先查找tecd数据库以找到目标容器所属子网对应的目标宿主机的IP地址
5)将原始网络数据包封装在VXLAN或UDP包中,IP则以目标宿主机为目的IP进行封装
6)基于宿主机的网络将网络数据包传输到目标宿主机后,对数据包进行解封装,最后送达目的容器

修改/etc/hosts

修改/etc/hosts,使其节点间网络互ping

vim /etc/hosts

192.168.237.125 k8s-master
192.168.237.124 k8s-node1
192.168.237.123 k8s-node2

把修改后的配置文件远程拷贝到其他两台主机

scp /etc/hosts root@k8snode1:/etc/
scp /etc/hosts root@k8snode2:/etc/

通过互ping,检测是否能连接

配置fannel

docker pull quay.io/coreos/flannel:v0.11.0-arm64               #拉取flannel网络,三台主机

docker images                  #查看仓库是否拉去下来

mkdir -p /etc/cni/net.d                    #创建目录给flannel做配置文件

vim /etc/cni/net.d/10-flannel.conf

vim /etc/cni/net.d/10-flannel.conf

{
  "name": "cbr0",
  "cniVersion": "0.3.1",
  "type": "fannel",
  "delegate": {
    "hairpinMode": true,
    "isDefaultGateway": true
  }
}




scp  /etc/cni/net.d/10-flannel.conf root@k8snode1:/etc/cni/net.d/10-flannel.conf

scp  /etc/cni/net.d/10-flannel.conf root@k8snode2:/etc/cni/net.d/10-flannel.conf             #远程拷贝

mkdir /usr/share/oci-umount/oci-umount.d/ -p                   #三台主机

mkdir /run/flannel                                     #三台主机

flannel网段配置文件

vim /etc/cni/net.d/10-flannel.conf

{
  "name": "cbr0",
  "cniVersion": "0.3.1",
  "type": "fannel",
  "delegate": {
    "hairpinMode": true,
    "isDefaultGateway": true
  }
}

把修改后的配置文件远程拷贝到其他两台主机

scp /run/flannel/subnet.env root@k8snode1:/run/flannel/subnet.env
scp /run/flannel/subnet.env root@k8snode2:/run/flannel/subnet.env

systemctl daemon-reload

systemctl restart kubelet.service

systemctl restart docker                                                     #三台

最后kubectl get nodes,查看status,看看fannel是否连通
在这里插入图片描述
个人学习总结,仅供参考

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐