Welcome to the Linux Foundation Forum!

Issue with calico-node on minion node

After kubeadm join ing the minion node with the master node, I am seeing the below logs on calico-node in the minion node

2019-12-18 21:23:03.634 [INFO][10] startup.go 255: Early log level set to info
2019-12-18 21:23:03.634 [INFO][10] startup.go 271: Using NODENAME environment for node name
2019-12-18 21:23:03.634 [INFO][10] startup.go 283: Determined node name: minion-instance-1
2019-12-18 21:23:03.637 [INFO][10] k8s.go 228: Using Calico IPAM
2019-12-18 21:23:03.637 [INFO][10] startup.go 315: Checking datastore connection
2019-12-18 21:23:03.651 [INFO][10] startup.go 339: Datastore connection verified
2019-12-18 21:23:03.651 [INFO][10] startup.go 94: Datastore is ready
2019-12-18 21:23:03.660 [INFO][10] startup.go 381: Initialize BGP data
2019-12-18 21:23:03.661 [INFO][10] startup.go 583: Using autodetected IPv4 address on interface ens4: 10.128.0.4/32
2019-12-18 21:23:03.661 [INFO][10] startup.go 451: Node IPv4 changed, will check for conflicts
2019-12-18 21:23:03.665 [INFO][10] startup.go 646: No AS number configured on node resource, using global value
2019-12-18 21:23:03.665 [INFO][10] startup.go 148: Setting NetworkUnavailable to False
2019-12-18 21:23:03.669 [ERROR][10] startup.go 151: Unable to set NetworkUnavailable to False error=nodes "minion-instance-1" is forbidden: User "system:serviceaccount:kube-system:calico-node" cannot patch resource "nodes/status" in API group "" at the cluster scope
2019-12-18 21:23:03.674 [INFO][10] node.go 86: Error updating Node resource error=nodes "minion-instance-1" is forbidden: User "system:serviceaccount:kube-system:calico-node" cannot update resource "nodes/status" in API group "" at the cluster scope
2019-12-18 21:23:03.674 [ERROR][10] startup.go 163: Unable to set node resource configuration error=connection is unauthorized: nodes "minion-instance-1" is forbidden: User "system:serviceaccount:kube-system:calico-node" cannot update resource "nodes/status" in API group "" at the cluster scope
2019-12-18 21:23:03.675 [WARNING][10] startup.go 1058: Terminating
Calico node failed to start

Seems like minion node is forbidden from to update node resource. Am i missing any other steps here?

Comments

  • Oh and even though the calico node on the master is in Running status, seeing these logs in master node's calico node.

    2019-12-18 21:41:44.427 [INFO][41] watchercache.go 204: Failed to perform list of current data during resync ListRoot="/calico/ipam/v2/assignment/" error=connection is unauthorized: ipamblocks.crd.projectcalico.org is forbidden: User "system:serviceaccount:kube-system:calico-node" cannot list resource "ipamblocks" in API group "crd.projectcalico.org" at the cluster scope
    
  • I enabled http and https traffic in both my VMs with GCP console.
    Also executed this command

    gcloud compute firewall-rules create calico-ipip --allow 4 --network "default" --source-ranges "10.128.0.0/9"
    

    as suggested in calico installation guide to make sure the calico traffic is allowed between containers in different nodes.

    After that the status of my calico node in minion never really changed. But the master was restarted and its readiness probe is failing

    Type     Reason     Age                       From                        Message
      ----     ------     ----                      ----                        -------
      Warning  Unhealthy  4m21s (x1836 over 5h10m)  kubelet, master-instance-1  Readiness probe failed: calico/node is not ready: felix is not ready: readiness probe reporting 503
    
  • I tried deleting the calico-kube-controllers deploy as well the calico pods and re applied the calico yaml and rbac yaml.

    Now the logs are flipped between master and minion nodes!

    In master i see this.

    8 22:26:32.449 [INFO][10] startup.go 148: Setting NetworkUnavailable to False
    2019-12-18 22:26:32.454 [ERROR][10] startup.go 151: Unable to set NetworkUnavailable to False error=nodes "master-instance-1" is forbidden: User "system:serviceaccount:kube-system:calico-node" cannot patch resource "nodes/status" in API group "" at the cluster scope
    2019-12-18 22:26:32.467 [INFO][10] node.go 86: Error updating Node resource error=nodes "master-instance-1" is forbidden: User "system:serviceaccount:kube-system:calico-node" cannot update resource "nodes/status" in API group "" at the cluster scope
    2019-12-18 22:26:32.467 [ERROR][10] startup.go 163: Unable to set node resource configuration error=connection is unauthorized: nodes "master-instance-1" is forbidden: User "system:serviceaccount:kube-system:calico-node" cannot update resource "nodes/status" in API group "" at the cluster scope
    2019-12-18 22:26:32.467 [WARNING][10] startup.go 1058: Terminating
    

    In minion , not seeing any errors but the pods are not in ready state.

    calico-kube-controllers-6bbf58546b-4rtqm    1/1     Running            0          2m56s
    calico-node-vrc5p                           0/1     CrashLoopBackOff   5          3m20s
    calico-node-zzcff                           0/1     Running            3          3m33s
    
  • The calico yaml file from the course https://tinyurl.com/yb4xturm and the rbac file https://tinyurl.com/y2vqsobb are not going to work! Lot of permissions are not defined and I spent so much time trying to patch the file as I was keep getting one or other forbidden issues.

    This yaml from their official documentation is complete. Use this instead - https://docs.projectcalico.org/v3.9/manifests/calico.yaml

    https://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/ - Documentation on AWS and GCE installations are really helpful!

  • Hi @seetha33tmr, I am wondering what is so different in the way you configured your infrastructure that causes all these reported issues.

    -Chris

  • With nodes sized accordingly, the infrastructure networking configured to fully allow traffic between your cluster nodes, and no firewalls active at the node OS level, the cluster installation scripts should be sufficient to install and run all the components including docker and calico.

    Regards,
    -Chris

  • @chrispokorni I think it might be due to the rbac-kdd.yaml file downloaded in lab 2.2. The calico yaml file itself have necessary rbac roles and resources defined in it after the comment # Source: calico/templates/rbac.yaml . I am seeing significant differences in the resources and roles defined in calico file vs the rbac-kdd file.

Categories

Upcoming Training