Kubermatic machine-controller

What is machine-controller?

The Kubermatic machine-controller is a Kubernetes-native tool responsible for managing the lifecycle of worker nodes across various cloud providers. It uses the Cluster API to define machines as Kubernetes resources, enabling declarative management of worker nodes in Kubernetes clusters.

The machine-controller works in conjunction with the Operating System Manager to handle the provisioning and configuration of worker nodes across multi-cloud and on-premise environments.

Motivation and Background

Kubernetes provides powerful abstractions for managing containerized workloads, but managing the underlying infrastructure (worker nodes) can be challenging, especially in multi-cloud environments. The machine-controller solves this problem by:

  • Declarative Node Management: Define machines as Kubernetes custom resources, allowing you to manage infrastructure using familiar Kubernetes tools and patterns.
  • Multi-Cloud Support: Provision and manage worker nodes across different cloud providers (AWS, Azure, GCP, OpenStack, etc.) using a consistent API.
  • Integration with Cluster API: Leverages the industry-standard Cluster API for machine lifecycle management.
  • Automated Operations: Handle node provisioning, upgrades, and decommissioning automatically based on declared state.

Features

What Works

  • Creation of worker nodes on the following cloud providers:

    • Alibaba Cloud
    • Anexia
    • AWS
    • Azure
    • DigitalOcean
    • Google Cloud Platform
    • Hetzner Cloud
    • KubeVirt
    • Linode
    • Nutanix
    • OpenNebula
    • OpenStack
    • VMware Cloud Director
    • VMware vSphere
    • Vultr
  • Operating System Support: Multiple Linux distributions are supported:

    • Flatcar Linux
    • RedHat Enterprise Linux (RHEL)
    • Rocky Linux
    • Ubuntu

Not all operating systems work on all cloud providers. Please refer to the Operating Systems documentation for compatibility details.

Supported Kubernetes Versions

machine-controller follows the Kubernetes version support policy as closely as possible.

Currently supported Kubernetes versions:

  • 1.35
  • 1.34
  • 1.33
  • 1.32

Community Providers

Some cloud providers implemented in machine-controller have been graciously contributed by community members. These providers are not part of the automated end-to-end tests and their status cannot be fully guaranteed. The machine-controller developers assume they are functional but can only offer limited support for new features or bugfixes.

Community-supported providers:

  • Anexia
  • Linode
  • Vultr
  • OpenNebula

What Doesn’t Work

Table of Content

Further Information

Visit kubermatic.com for further information.

For latest updates follow us on Twitter @Kubermatic