Prerequisites

MetalK8s clusters require machines running CentOS/RHEL/Rocky 8 as their operating system. These machines may be virtual or physical, with no difference in setup procedure. The number of machines to set up depends on the architecture you chose in Choosing a Deployment Architecture.

Machines must not be managed by any configuration management system, such as SaltStack or Puppet.

Warning

The distribution must be left intact as much as possible (do not tune, tweak, or configure it, or install any software).

Proxies

For nodes operating behind a proxy, see Configuration.

Provisioning

SSH

Each machine must be accessible through SSH from the host. Bootstrap node deployment generates a new SSH identity for the Bootstrap node and shares it with other nodes in the cluster. You can also do this manually beforehand.

Network

Each machine must be a member of both the control plane and workload plane networks described in Networks. However, these networks can overlap, and nodes do not need distinct IP addresses for each plane.

For the host to reach the cluster-provided UIs, it must be able to connect to the machines’ control plane IP addresses.

Repositories

Each machine must have properly configured repositories with access to basic repository packages (depending on the operating system).

CentOS/Rocky:

  • appstream

  • baseos

  • extras

RHEL 8:

  • rhel-8-for-x86_64-baseos-rpms

  • rhel-8-for-x86_64-appstream-rpms

Note

RHEL instances must be registered.

Note

Repository names and configurations do not need to be the same as the official ones, but all packages must be made available.

To enable an existing repository:

CentOS/Rocky:

dnf config-manager --enable <repo_name>

RHEL:

subscription-manager repos --enable=<repo_name>

To add a new repository:

dnf config-manager --add-repo <repo_url>

Note

repo_url can be set to a remote URL using the prefix http://, https://, ftp://, etc., or to a local path using file://.

For more, review the official Red Hat documentation:

etcd

For production environments, a block device dedicated to etcd is recommended for better performance and stability. With lower write latency and less variance than spinning disks, SSDs are recommended to improve reliability.

The device must be formatted and mounted on /var/lib/etcd, on Nodes intended to bear the etcd role.

For more on etcd’s hardware requirements, see the official documentation.