kubernetescalico

calico-kube-controller stays in pending state


I have a new install of kubernetes on Ubuntu-18 using version 1.24.3 with Calico. The calico-controller will not start:

$ sudo  kubectl get pods --all-namespaces
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-555bc4b957-z4q2p   0/1     Pending   0          5m14s
kube-system   calico-node-jz2j7                          1/1     Running   0          5m15s
kube-system   coredns-6d4b75cb6d-hwfx9                   1/1     Running   0          5m14s
kube-system   coredns-6d4b75cb6d-wdh55                   1/1     Running   0          5m14s
kube-system   etcd-ubuntu-18-extssd                      1/1     Running   1          5m27s
kube-system   kube-apiserver-ubuntu-18-extssd            1/1     Running   1          5m28s
kube-system   kube-controller-manager-ubuntu-18-extssd   1/1     Running   1          5m26s
kube-system   kube-proxy-t5z2r                           1/1     Running   0          5m15s
kube-system   kube-scheduler-ubuntu-18-extssd            1/1     Running   1          5m27s

Someone suggested setting a couple of Calico timeouts to 60 seconds, but that didn't work either.

What could be causing the calico-controller to fail to start, especially since the calico-node is running?

Also, is there a more trouble-free CNI implementation to use? Calico seems very error-prone.


Solution

  • I solved this by installing Weave:

    kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
    

    with this cidr:

    sudo kubeadm init --pod-network-cidr=192.168.0.0/16