|
1 | 1 | +++ |
2 | | -title = "machine-controller" |
| 2 | +title = "Kubermatic machine-controller" |
3 | 3 | date = 2024-05-31T07:00:00+02:00 |
| 4 | +weight = 7 |
| 5 | +description = "Learn how to use Kubermatic machine-controller to manage worker nodes across multiple cloud providers in a declarative way using Kubernetes native APIs." |
4 | 6 | +++ |
5 | 7 |
|
6 | | -# machine-controller |
| 8 | +## What is machine-controller? |
| 9 | + |
| 10 | +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][1] to define machines as Kubernetes resources, enabling declarative management of worker nodes in Kubernetes clusters. |
| 11 | + |
| 12 | +The machine-controller works in conjunction with the [Operating System Manager][2] to handle the provisioning and configuration of worker nodes across multi-cloud and on-premise environments. |
| 13 | + |
| 14 | +[1]: https://cluster-api.sigs.k8s.io/ |
| 15 | +[2]: https://docs.kubermatic.com/operatingsystemmanager |
| 16 | + |
| 17 | +## Motivation and Background |
| 18 | + |
| 19 | +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: |
| 20 | + |
| 21 | +- **Declarative Node Management**: Define machines as Kubernetes custom resources, allowing you to manage infrastructure using familiar Kubernetes tools and patterns. |
| 22 | +- **Multi-Cloud Support**: Provision and manage worker nodes across different cloud providers (AWS, Azure, GCP, OpenStack, etc.) using a consistent API. |
| 23 | +- **Integration with Cluster API**: Leverages the industry-standard Cluster API for machine lifecycle management. |
| 24 | +- **Automated Operations**: Handle node provisioning, upgrades, and decommissioning automatically based on declared state. |
7 | 25 |
|
8 | 26 | ## Features |
9 | 27 |
|
10 | 28 | ### What Works |
11 | 29 |
|
12 | | -- Creation of worker nodes on… |
| 30 | +- **Creation of worker nodes** on the following cloud providers: |
13 | 31 | - Alibaba Cloud |
14 | 32 | - AWS |
15 | 33 | - Azure |
16 | 34 | - DigitalOcean |
17 | 35 | - Google Cloud Platform |
18 | 36 | - Hetzner Cloud |
19 | 37 | - KubeVirt |
| 38 | + - Linode |
20 | 39 | - Nutanix |
| 40 | + - OpenNebula |
21 | 41 | - OpenStack |
22 | 42 | - VMware Cloud Director |
23 | 43 | - VMware vSphere |
24 | | -- Using any of these supported distributions ([not all distributions work on all providers](/docs/operating-system.md): |
| 44 | + - Vultr |
| 45 | + |
| 46 | +- **Operating System Support**: Multiple Linux distributions are supported: |
25 | 47 | - Amazon Linux 2 |
26 | 48 | - Flatcar Linux |
27 | 49 | - RedHat Enterprise Linux (RHEL) |
28 | 50 | - Rocky Linux |
29 | 51 | - Ubuntu |
30 | 52 |
|
31 | | -### What Doesn't Work |
32 | | - |
33 | | -- Creation of control plane nodes (not planned at the moment, consider using 3rd party tools like |
34 | | - [KKP](https://github.com/kubermatic/kubermatic) or [KubeOne](https://github.com/kubermatic/kubeone)) |
| 53 | +{{% notice note %}} |
| 54 | +Not all operating systems work on all cloud providers. Please refer to the [Operating Systems]({{< ref "./references/operating-systems/" >}}) documentation for compatibility details. |
| 55 | +{{% /notice %}} |
35 | 56 |
|
36 | | -## Supported Kubernetes Versions |
| 57 | +### Supported Kubernetes Versions |
37 | 58 |
|
38 | | -machine-controller tries to follow the Kubernetes version |
39 | | -[support policy](https://kubernetes.io/docs/setup/release/version-skew-policy/) as close as possible. |
| 59 | +machine-controller follows the Kubernetes [version support policy][3] as closely as possible. |
40 | 60 |
|
41 | | -Currently supported Kubernetes versions are: |
| 61 | +Currently supported Kubernetes versions: |
42 | 62 |
|
43 | 63 | - 1.34 |
44 | 64 | - 1.33 |
45 | 65 | - 1.32 |
46 | 66 | - 1.31 |
47 | 67 |
|
48 | | -## Community Providers |
| 68 | +[3]: https://kubernetes.io/docs/setup/release/version-skew-policy/ |
49 | 69 |
|
50 | | -Some cloud providers implemented in machine-controller have been graciously contributed by community |
51 | | -members. Those cloud providers are not part of the automated end-to-end tests run by the |
52 | | -machine-controller developers and thus, their status cannot be guaranteed. The machine-controller |
53 | | -developers assume that they are functional, but can only offer limited support for new features or |
54 | | -bugfixes in those providers. |
| 70 | +### Community Providers |
55 | 71 |
|
56 | | -The current list of community providers is: |
| 72 | +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. |
| 73 | + |
| 74 | +**Community-supported providers:** |
57 | 75 |
|
58 | 76 | - Linode |
59 | 77 | - Vultr |
60 | 78 | - OpenNebula |
| 79 | + |
| 80 | +### What Doesn't Work |
| 81 | + |
| 82 | +- **Control plane node creation**: This is not planned at the moment. For full cluster lifecycle management including control plane, consider using [Kubermatic Kubernetes Platform (KKP)][4] or [KubeOne][5]. |
| 83 | + |
| 84 | +[4]: https://github.com/kubermatic/kubermatic |
| 85 | +[5]: https://github.com/kubermatic/kubeone |
| 86 | + |
| 87 | +## Table of Content |
| 88 | + |
| 89 | +{{% children depth=5 %}} |
| 90 | +{{% /children %}} |
| 91 | + |
| 92 | +## Further Information |
| 93 | + |
| 94 | +- [machine-controller - GitHub Repository](https://github.com/kubermatic/machine-controller) |
| 95 | +- [Operating System Manager](https://docs.kubermatic.com/operatingsystemmanager) |
| 96 | +- [Cluster API Documentation](https://cluster-api.sigs.k8s.io/) |
| 97 | + |
| 98 | +Visit [kubermatic.com](https://www.kubermatic.com/) for further information. |
| 99 | + |
| 100 | +{{% notice tip %}} |
| 101 | +For latest updates follow us on Twitter [@Kubermatic](https://twitter.com/Kubermatic) |
| 102 | +{{% /notice %}} |
| 103 | + |
0 commit comments