A Calico node status resource (CalicoNodeStatus) represents a collection of status information for a node that Calico reports back to the user for use during troubleshooting.
As of today, status of BGP agents, BGP sessions and routes exposed to BGP agents are collected from Linux nodes only. Windows nodes are not supported at this time.
Calico node status resource is only valid when Calico BGP networking is in use.
Notes
The updating of CalicoNodeStatus will have a small performance impact on CPU/Memory usage of the node as well as adding load to kubernetes apiserver.
In our testing on a ten node, full mesh cluster, a CalicoNodeStatus resource was created for each node where the update interval was set to ten seconds. On each node, this resulted in an increase in CPU use of 5% of a vCPU and an increase of 4MB of memory. The control plane node recorded an increase in CPU usage of 5% of a vCPU for these 10 nodes.
Warning: The implementation of CalicoNodeStatus is designed to handle a small number of nodes (less than 10 is recommended) reporting back status in the same time. If CalicoNodeStatus are created for a large number of nodes, and with short update interval,
the kubernetes apiserver may become slower and less responsive.
You should create CalicoNodeStatus for the node you are interested in and for debugging purpose only. CalicoNodeStatus resource should be deleted upon the completion of the debugging process.
Sample YAML
To use this function, the user creates a CalicoNodeStatus object for the node, specifying the information to collect and the interval it should be collected at. This example collects information for node “my-kadm-node-0” with an update interval of 10 seconds.
The user then reads back the same resource using the command kubectl get caliconodestatus my-caliconodestatus-1 -o yaml, and the information collected can be found in the status field. For example:
The name of this CalicoNodeStatus resource. Required.
Alphanumeric string with optional ., _, or -.
string
Spec
Field
Description
Accepted Values
Schema
classes
List of classes that declare the types of information to monitor for this node and allows for selective status reporting about certain subsets of information. Required.
The node name identifies the Calico node instance to collect node status for. Required.
valid Kubernetes node name
string
updatePeriodSeconds
Period in seconds at which CalicoNodeStatus should be updated. Set to 0 to disable CalicoNodeStatus refresh. Maximum update period is one day. Required.
0 - 86400
int
Status
Field
Description
Values
lastUpdated
Timestamp representing the server time when the CalicoNodeStatus object last updated. It is represented in RFC3339 form and is in UTC.