Kubernetes Cloud Controller Manager for Linode
Overview
The Linode Cloud Controller Manager (CCM) is a crucial component that integrates Kubernetes with Linode's infrastructure services. It implements the cloud-controller-manager binary, running cloud-specific control loops that are essential for cluster operation.
A Cloud Controller Manager (CCM) is a Kubernetes control plane component that embeds cloud-specific control logic. It lets you link your cluster to your cloud provider's API, separating out the components that interact with that cloud platform from components that only interact with your cluster.
Core Components
Node Controller
- Initializes node configuration with Linode-specific information
- Sets node addresses (public/private IPs)
- Labels nodes with region/zone information
- Configures node hostnames
- Monitors node health and lifecycle
- Detects node termination
- Updates node status
- Manages node cleanup
Service Controller
- Manages LoadBalancer service implementations using Linode NodeBalancers
- Creates and configures NodeBalancers
- Updates backend pools
- Manages SSL/TLS certificates
- Handles automatic provisioning and configuration
- Health checks
- Session affinity
- Protocol configuration
- Supports multiple load balancing approaches
- Traditional NodeBalancer deployment
- BGP-based IP sharing for cost optimization
- Custom firewall rules and security configurations
Route Controller
- Manages VPC and private network integration
- Configures routes for pod CIDR ranges
- Handles cross-node pod communication
- Ensures proper network connectivity
- Sets up pod-to-pod networking
- Manages network policies
- Configures network routes for optimal communication
Requirements
- Kubernetes 1.22+
- Kubelets, controller-manager, and apiserver with
--cloud-provider=external
- Linode APIv4 Token
- Supported Linode region
Documentation
Quick Start
Configuration
Examples and Development
Getting Help
For general help or discussion, join us in #linode on the Kubernetes Slack.
To sign up for Kubernetes Slack, use the Kubernetes Slack inviter.
Issue Tracking
If you've found a bug or want to request a feature:
Additional Resources
Contributing
Want to improve the Linode Cloud Controller Manager? Please see our contributing guidelines.