Node Configuration
January 22, 2025 ยท View on GitHub
Overview
The Node Controller in CCM manages node-specific configurations and lifecycle operations for Kubernetes nodes running on Linode instances.
Node Labels
The CCM automatically adds the following labels to nodes:
Topology Labels
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
Provider Labels
node.kubernetes.io/instance-type: Linode instance type (e.g., "g6-standard-4")
Node Annotations
All node annotations must be prefixed with: node.k8s.linode.com/
Available Annotations
| Annotation | Type | Default | Description |
|---|---|---|---|
private-ip | IPv4 | none | Overrides default detection of Node InternalIP |
Use Cases
Private Network Configuration
apiVersion: v1
kind: Node
metadata:
name: my-node
annotations:
node.k8s.linode.com/private-ip: "192.168.1.100"
VPC Configuration
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"
Node Networking
Private Network Requirements
- 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
VPC Configuration
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.
Node Controller Behavior
Node Initialization
- Configures node with Linode-specific information
- Sets node addresses (public/private IPs)
- Applies region/zone labels
- Configures node hostnames
Node Lifecycle Management
- Monitors node health
- Updates node status
- Handles node termination
- Manages node cleanup
Node Updates
- 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: