【问题标题】:How to fix Flannel CNI plugin. Error: [plugin flannel does not support config version ""]如何修复 Flannel CNI 插件。错误:[插件法兰绒不支持​​配置版本“”]
【发布时间】:2020-01-22 01:24:30
【问题描述】:

在安装 Kubernetes 时,我卡在 CNI 插件安装和配置部分。我已经安装了 Flannel,但由于 coredns pod 处于挂起状态,我在 kubelet 日志中看到错误。

操作系统:Centos7 k8s版本:1.16 Kubeadm 正在用于设置集群。

我已经安装了插件使用:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

这是我可以在 Kubelet 日志中看到的错误:

Sep 21 04:47:29 peteelizalde2c kubelet: W0921 04:47:29.897759   17817 cni.go:202] Error validating CNI config &{cbr0  false [0xc000fb3ee0 0xc000fb3f60] [123 10 32 32 34 110 97 109 101 34 58 32 34 99 98 114 48 34 44 10 32 32 34 112 108 117 103 105 110 115 34 58 32 91 10 32 32 32 32 123 10 32 32 32 32 32 32 34 116 121 112 101 34 58 32 34 102 108 97 110 110 101 108 34 44 10 32 32 32 32 32 32 34 100 101 108 101 103 97 116 101 34 58 32 123 10 32 32 32 32 32 32 32 32 34 104 97 105 114 112 105 110 77 111 100 101 34 58 32 116 114 117 101 44 10 32 32 32 32 32 32 32 32 34 105 115 68 101 102 97 117 108 116 71 97 116 101 119 97 121 34 58 32 116 114 117 101 10 32 32 32 32 32 32 125 10 32 32 32 32 125 44 10 32 32 32 32 123 10 32 32 32 32 32 32 34 116 121 112 101 34 58 32 34 112 111 114 116 109 97 112 34 44 10 32 32 32 32 32 32 34 99 97 112 97 98 105 108 105 116 105 101 115 34 58 32 123 10 32 32 32 32 32 32 32 32 34 112 111 114 116 77 97 112 112 105 110 103 115 34 58 32 116 114 117 101 10 32 32 32 32 32 32 125 10 32 32 32 32 125 10 32 32 93 10 125 10]}: [plugin flannel does not support config version ""]
Sep 21 04:47:29 peteelizalde2c kubelet: W0921 04:47:29.897824   17817 cni.go:237] Unable to update cni config: no valid networks found in /etc/cni/net.d
Sep 21 04:47:32 peteelizalde2c kubelet: E0921 04:47:32.007379   17817 kubelet.go:2187] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

这是豆荚:

kubectl get pods --all-namespaces
NAMESPACE     NAME                                                                        READY   STATUS    RESTARTS   AGE
kube-system   coredns-5644d7b6d9-n4h5x                                                    0/1     Pending   0          114m
kube-system   coredns-5644d7b6d9-t2q54                                                    0/1     Pending   0          114m
kube-system   etcd-ip-10-29-89-124                      1/1     Running   0          113m
kube-system   kube-apiserver-ip-10-29-89-124            1/1     Running   0          113m
kube-system   kube-controller-manager-ip-10-29-89-124   1/1     Running   0          113m
kube-system   kube-flannel-ds-amd64-dqpzj                                                 1/1     Running   0          110m
kube-system   kube-proxy-vzlqb                                                            1/1     Running   0          114m
kube-system   kube-scheduler-ip-10-29-89-124            1/1     Running   0          113m

/etc/cni/net.d 中有一个名为 10-flannel.conflist 的文件。 它的内容是:

{
  "name": "cbr0",
  "plugins": [
    {
      "type": "flannel",
      "delegate": {
        "hairpinMode": true,
        "isDefaultGateway": true
      }
    },
    {
      "type": "portmap",
      "capabilities": {
        "portMappings": true
      }
    }
  ]
}

【问题讨论】:

    标签: kubernetes flannel cni


    【解决方案1】:

    公认的解决方案是不完整的,并且会引起头疼。

    使此更改永久生效的正确解决方案是在 Kubernetes 集群中编辑由 flannel 创建的 ConfigMap。否则,该文件将在下一次使用 ConfigMap 填充 flannel pod 卷时重新创建(例如,在节点重新启动时)。

    使用kubectl edit cm -n kube-system kube-flannel-cfg编辑flannel提供的ConfigMap,并添加缺少的行:

      5 apiVersion: v1
      6 data:
      7   cni-conf.json: |
      8     {
      9       "name": "cbr0",
     10       "cniVersion": "0.2.0",
     11       "plugins": [
    

    重新启动节点,或者在 /etc/cni/net.d/10-flannel.conflist 中手动进行更改,然后执行 systemctl restart kubelet 以跳过重新启动。

    【讨论】:

      【解决方案2】:

      文件/etc/cni/net.d/10-flannel.conflist 在其配置中缺少cniVersion 键。

      添加"cniVersion": "0.2.0" 解决了这个问题。

      【讨论】:

      • 确认这解决了我的问题,尽管我不太确定 0.2.0 版是否适合我。你是怎么想出那个版本的?
      • 也确认了。
      • 确认这也解决了我的问题。 Kubernetes 1.16 Ubuntu 18
      • 这解决了错误消息,但 coredns pod 会出错并因错误而崩溃,因为 [FATAL] plugin/loop: Loop (127.0.0.1:44415 -> :53) detected for zone ". "
      • 请看我的解决方案。这将在下次重新启动节点时中断,因为该文件是从 Kubernetes ConfigMap 填充的。
      【解决方案3】:

      感谢这对我有帮助,因为它是一个表演停止者

      https://github.com/Microsoft/SDN/blob/master/Kubernetes/flannel/l2bridge/cni/config/cni.conf 对于“cniVersion”的确切位置:“0.2.0”

      【讨论】:

      • 不确定是不是我一个人。但是在我重新启动主服务器后,指令“cniVersion”:“0.2.0”再次丢失,我不得不再次更新文件
      • 查看接受的答案。 configmap 是应该被编辑的。 medium.com/@yonahdissen/…
      猜你喜欢
      • 2022-10-05
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      • 2019-01-16
      • 2019-05-22
      • 1970-01-01
      • 2023-04-11
      相关资源
      最近更新 更多