CrashLoopBackoff中的法兰绒吊舱kubernetes错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CrashLoopBackoff中的法兰绒吊舱kubernetes错误相关的知识,希望对你有一定的参考价值。

使用法兰绒作为kubernetes中的CNI我正在尝试实现一个网络,用于在不同的流浪者vms上传播的pod到pod通信。我正在使用这个https://raw.githubusercontent.com/coreos/flannel/v0.9.0/Documentation/kube-flannel.yml来制作法兰绒吊舱。但是kube-flannel pod会出现CrashLoopBackOff错误并且无法启动。

[root@flnode-04 ~]# kubectl get pods -o wide --all-namespaces
NAMESPACE         NAME                      READY     STATUS             RESTARTS   AGE       IP              NODE
diamanti-system   collectd-v0.5-flnode-04   1/1       Running            0          3h        192.168.30.14   flnode-04
diamanti-system   collectd-v0.5-flnode-05   1/1       Running            0          3h        192.168.30.15   flnode-05
diamanti-system   collectd-v0.5-flnode-06   1/1       Running            0          3h        192.168.30.16   flnode-06
diamanti-system   provisioner-d4kvf         1/1       Running            0          3h        192.168.30.16   flnode-06
kube-system       kube-flannel-ds-2kqpv     0/1       CrashLoopBackOff   1          18m       192.168.30.14   flnode-04
kube-system       kube-flannel-ds-xgqdm     0/1       CrashLoopBackOff   1          18m       192.168.30.16   flnode-06
kube-system       kube-flannel-ds-z59jz     0/1       CrashLoopBackOff   1          18m       192.168.30.15   flnode-05

这是一个pod的日志

[root@flnode-04 ~]# kubectl logs kube-flannel-ds-2kqpv --namespace=kube-system 
I0327 10:28:44.103425       1 main.go:483] Using interface with name mgmt0 and address 192.168.30.14
I0327 10:28:44.105609       1 main.go:500] Defaulting external address to interface address (192.168.30.14)
I0327 10:28:44.138132       1 kube.go:130] Waiting 10m0s for node controller to sync
I0327 10:28:44.138213       1 kube.go:283] Starting kube subnet manager
I0327 10:28:45.138509       1 kube.go:137] Node controller sync successful
I0327 10:28:45.138588       1 main.go:235] Created subnet manager: Kubernetes Subnet Manager - flnode-04
I0327 10:28:45.138596       1 main.go:238] Installing signal handlers
I0327 10:28:45.138690       1 main.go:348] Found network config - Backend type: vxlan
I0327 10:28:45.138767       1 vxlan.go:119] VXLAN config: VNI=1 Port=0 GBP=false DirectRouting=false
panic: assignment to entry in nil map
goroutine 1 [running]:
github.com/coreos/flannel/subnet/kube.(*kubeSubnetManager).AcquireLease(0xc420010cd0, 0x7f5314399bd0, 0xc420347880, 0xc4202213e0, 0x6, 0xf54, 0xc4202213e0)
    /go/src/github.com/coreos/flannel/subnet/kube/kube.go:239 +0x1f7
github.com/coreos/flannel/backend/vxlan.(*VXLANBackend).RegisterNetwork(0xc4200b3480, 0x7f5314399bd0, 0xc420347880, 0xc420010c30, 0xc4200b3480, 0x0, 0x0, 0x4d0181)
    /go/src/github.com/coreos/flannel/backend/vxlan/vxlan.go:141 +0x44e
main.main()
    /go/src/github.com/coreos/flannel/main.go:278 +0x8ae

法兰绒吊舱进入CrashLoopBackoff的原因究竟是什么?解决方案是什么?

答案

我能够通过运行命令来解决问题

kubectl annotate node appserv9 flannel.alpha.coreos.com/public-ip=10.10.10.10 --overwrite=true

错误原因:代码中的nil映射(没有密钥可用)

你提供的ip无关紧要,但是这个命令必须在所有节点上单独运行,以便上面的错误不必分配给nil映射。

另一答案

如果使用kubeadm init --pod-network-cidr network/mask部署集群,则此network/mask应与kube-flannel.yaml中的ConfigMap匹配

我的ConfigMap看起来像:

kind: ConfigMap
apiVersion: v1
metadata:
  name: kube-flannel-cfg
  namespace: kube-system
  data:
  ...
    net-conf.json: |
      
        "Network": "10.244.0.0/16",
        "Backend": 
          "Type": "vxlan"
        
      

所以network/mask应该等于10.244.0.0/16

以上是关于CrashLoopBackoff中的法兰绒吊舱kubernetes错误的主要内容,如果未能解决你的问题,请参考以下文章

7 张图解 CrashLoopBackOff,如何发现问题并解决它?

iOS 6中的法兰/回声/混响效果[关闭]

部署的pod处于CrashLoopBackOff状态

在 kubernetes 集群中部署映像获取 CrashLoopBackOff

kubernetes使用flannel网络插件服务状态显示CrashLoopBackOff

带有 istio 的 GKE 上的 websockets 给出了“没有健康的上游”和“CrashLoopBackOff”