System requirements

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

Hardware requirements

MKE uses k0s as the underlying Kubernetes distribution. To learn the k0s hardware requirements, refer to the k0s documentation.

Software requirements

  • Operating systems:
    • Ubuntu 22.04 Linux
    • RHEL 8.10
    • Rocky Linux 9.4
  • Architecture: amd64 arm64
  • CNI: Calico

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.

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

Listen portTarget portPurposeConfigurable
64436443Kubernetes API
81328132Konnectivity
94439443Controller join API
44333001Ingress Controller

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"

The target port must match the HTTPS node port of the Ingress Controller, which is 33001 by default, but can be adjusted as needed. See the configuration details for nodePorts in the Ingress Controller configuration.