K8S集群安装cni插件flannel

在k8s集群安装之后,master及各个node之间的pod还是不能相互通信,还需要建立他们之间的网络路由。当然,有各种不同的解决方案,flannel便是其中之一。flannel在对kubernets进行支持时,flanneld启动参数中会增加--kube-subnet-mgr参数,flanneld会初始化一个kubernetes client,获取本地node的pod-cidr,这个pod-cidr将会作为flannel为node上的容器规划的ip网段,其配置会记录到/run/flannel/subnet.env。

例如:

more /run/flannel/subnet.env 
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true

其中,FLANNEL_NETWORK便是配置k8s控制平面时指定的网络

即kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

安装配置好控制平面后,根据提示信息创建.kube目录,复制admin.conf文件,并将各个node 加入到k8s集群。

接着可以执行以下命令来配置flannel网络。

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

在执行的时候可能会报错如下:

flannel error converting YAML to JSON: yaml: line 115: mapping values are not allowed..........

从报错信息可以看到可能是YAML文件格式有问题,也许是某个缩进问题导致的。咱们不管具体细节了,因为几百行的文件看起来很费时费劲,具体解决方法比较简单,我将该文件内容复制,然后本地建个文件kube-flannel.yml将内容拷贝进去,然后执行:

kubectl apply -f ./kube-flannel.yml

出现类似下面的执行结果,基本可以确定配置flannel成功

odsecuritypolicy.policy/psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds-amd64 created
daemonset.apps/kube-flannel-ds-arm64 created
daemonset.apps/kube-flannel-ds-arm created
daemonset.apps/kube-flannel-ds-ppc64le created
daemonset.apps/kube-flannel-ds-s390x created

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值