Skip to content

System requirements#

Before you start cluster deployment, verify that your system meets the following minimum hardware and software requirements.

Hardware requirements#

Although MKE 4 uses k0s as the underlying Kubernetes distribution, the hardware requirements for MKE 4 differ from k0s due to the higher resource requirements of various enterprise-grade components the software uses.

To ensure stability, optimal performance, and reliable upgrades, Mirantis performed extensive internal testing to determine the optimum hardware configuration for MKE k:

Upgrade from MKE 3

Note

Starting with MKE 4.2.0, only MKE 3.9.x clusters can be upgraded to MKE 4.2.0 and later. For more information, refer to Upgrade from MKE 3.7, 3.8, or 3.9.

  • Manager nodes: 16 GB RAM, 4 vCPUs
  • Worker nodes: 8 GB RAM 2 vCPUs

Note

In comparison, testing showed consistently degraded network performance on MKE 3 clusters configured with fewer vCPUs. Specifically:

  • Manager nodes: 16 GB RAM, 2 vCPUs
  • Worker nodes: 8 GB RAM, 2 vCPUs

Fresh installation

  • Manager nodes: 16 GB RAM, 4 vCPUs
  • Worker nodes: 8 GB RAM 2 vCPUs

Software requirements#

  • Operating systems:

    Important

    Starting with MKE 4.2.0, all cluster nodes must run cgroups v2.

    • Ubuntu Linux: 24.04, 22.04
    • Red Hat Enterprise Linux (RHEL): 9.6, 8.10
    • Rocky Linux 9.4
    • Windows Server 2022 (worker nodes only)

      Note

      MKE 4 supports Windows for worker nodes only; manager/control-plane nodes must run a supported Linux distribution.

  • Architecture: x86_64

Load balancer requirements#

The load balancer can be implemented in many different ways. For example, you can use HAProxy, NGINX, or the load balancer of your cloud provider.

Built-in load balancer

MKE 4 offers a built-in L2 load balancer, which you can use if you are not using a public cloud and have not already deployed a different load balancer. For more information, refer to Control Plane Load Balancer.

To ensure the MKE 4 Dashboard functions properly, MKE 4 requires a TCP load balancer. This load balancer acts as a single point of contact to access the controllers. With the default MKE 4 configuration, the load balancer must allow and route traffic to each controller through the following ports:

Listen port Target port Purpose Configurable
6443 6443 Kubernetes API
9443 9443 Controller join API
443 33001 Gateway API

You can configure the listen port of the Ingress Controller to be different from the default port 443. However, if you change the listen port, you must append the new port number to the external address in the configuration file. For example, if you set the listen port to be the same as the target port, 33001, the configuration should look as follows:

apiServer:
  externalAddress: "mke.example.com:33001"

Important

The specified external address is automatically added to the SANs of the cluster certificate. If the external address is not set, the first controller node of the cluster is used, and anyone who visits their cluster through the address when the field is not set will be denied access.

The target port must match the HTTPS port of the Gateway API controller, which is 33001 by default for freshly installed clusters, though you can adjust it as necessary and may need to specify it explicitly for upgrades. Refer to the configuration details for nodePorts in the Gateway API controller configuration.