The Node Controller in CCM manages node-specific configurations and lifecycle operations for Kubernetes nodes running on Linode instances.
The CCM automatically adds the following labels to nodes:
Current:
topology.kubernetes.io/region
: Linode region (e.g., "us-east")topology.kubernetes.io/zone
: Linode availability zone
Legacy (deprecated):
failure-domain.beta.kubernetes.io/region
: Linode regionfailure-domain.beta.kubernetes.io/zone
: Linode availability zone
node.kubernetes.io/instance-type
: Linode instance type (e.g., "g6-standard-4")
All node annotations must be prefixed with: node.k8s.linode.com/
Annotation | Type | Default | Description |
---|---|---|---|
private-ip |
IPv4 | none | Overrides default detection of Node InternalIP |
apiVersion: v1
kind: Node
metadata:
name: my-node
annotations:
node.k8s.linode.com/private-ip: "192.168.1.100"
When using CCM with Linode VPC, internal ip will be set to VPC ip. To use a different ip-address as internal ip, you may need to manually configure the node's InternalIP:
apiVersion: v1
kind: Node
metadata:
name: vpc-node
annotations:
node.k8s.linode.com/private-ip: "10.0.0.5"
- NodeBalancers require nodes to have linode specific private IP addresses
- Private IPs must be configured in the Linode Cloud Manager or via the API
- The CCM will use private IPs for inter-node communication
When using VPC:
- Configure network interfaces in Linode Cloud Manager
- Add appropriate node annotations for private IPs
- Ensure proper routing configuration
- Configure security groups if needed
For VPC routing setup, see Route Configuration.
- Configures node with Linode-specific information
- Sets node addresses (public/private IPs)
- Applies region/zone labels
- Configures node hostnames
- Monitors node health
- Updates node status
- Handles node termination
- Manages node cleanup
- Updates node labels when region/zone changes
- Updates node addresses when IP configuration changes
- Maintains node conditions based on Linode instance status
For more information: