2025,每天10分钟,跟我学K8S(七)- 网络组件Flannel

        上一篇了解了K8S中有许多的网络组件,Flannel是其中之一,本章节将来学习如何部署。

安装Flannel

       

        从官方的github上可以得知,从k8s1.17之后的版本,可以通过下面命令来直接部署,但是有个前提。默认的pod网段没有被修改。需要是10.244.0.0/16 。如果在master初始化的时候单独指定过pod的网段。则需要修改配置文件里面的规划。

        如果不确定之前的网段,可以通过master节点中 /etc/kubernetes/manifests/kube-controller-manager.yaml 的配置文件中的--cluster-cidr 来确认。

       1.将kube-flannel.yaml文件下载下来。

wget  https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

       2. 编辑文件,确认pod网段,在net-conf.json这里面包含了pod的网段

vim kube-flannel.yml
...
  net-conf.json: |
    {
      "Network": "10.244.0.0/16",
      "EnableNFTables": false,
      "Backend": {
        "Type": "vxlan"
      }
...

        3. 修改flannel镜像地址 ,由于外网原因,这里将镜像地址修改为daocloud的镜像地址

image: ghcr.io/flannel-io/flannel:v0.26.5
image: ghcr.io/flannel-io/flannel-cni-plugin:v1.6.2-flannel1
image: ghcr.io/flannel-io/flannel:v0.26.5
修改为
image: m.daocloud.io/docker.io/flannel/flannel:v0.26.5
image: m.daocloud.io/docker.io/flannel/flannel-cni-plugin:v1.6.2-flannel1
image: m.daocloud.io/docker.io/flannel/flannel:v0.26.5

一键修改命令为
sed -i 's#ghcr.io/flannel-io#m.daocloud.io/docker.io/flannel#g' kube-flannel.yml

        4.安装flannel组件

kubectl apply -f kube-flannel.yml 

①创建kube-flannel的命名空间,这个后面会单独讲到

② 创建kube-flannel的sa,这个后面会单独讲到

③ 创建kube-flannel的权限和绑定,这个后面会单独讲到

④创建kube-flannel的的configmap,这个后面会单独讲到

⑤创建kube-flannel的控制器。模式为daemonset,这个后面会单独讲到

    5.查看flannet的pod是否启动,并解决报错

NAME                    READY   STATUS             RESTARTS        AGE     IP             NODE         NOMINATED NODE   READINESS GATES
kube-flannel-ds-9w9q7   0/1     CrashLoopBackOff   6 (3m25s ago)   9m29s   172.21.176.4   k8s-node01   <none>           <none>
kube-flannel-ds-cfxgc   0/1     CrashLoopBackOff   6 (3m25s ago)   9m29s   172.21.176.3   k8s-master   <none>           <none>

        通过上面命令可以看到,在kube-flannel这个namespace中,创建了2个pod,但是状态都为CrashLoopBackOff ,可以下面命令来查看 

kubectl describe pod -n pod的命名空间 pod的名称,

在本文中就是kubectl describe pod -n kube-flannel kube-flannel-ds-9w9q7来查看描述的报错内容。

在报错的最后几句中可以看到有这么一段报错

E0310 06:26:21.489184       1 main.go:268] Failed to check br_netfilter: stat /proc/sys/net/bridge/bridge-nf-call-iptables: no such file or directory

说明没有启用这个内核参数,那么就去解决它。在节点服务器中运行下面的2行命令

modprobe br_netfilter
sysctl -p /etc/sysctl.conf

        6. 重新运行kube-flannel.yml

先delete

kubectl delete -f kube-flannel.yml 

再apply

kubectl apply  -f kube-flannel.yml

再次查看node节点,会发现status状态已经发生改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值