Prerequisites¶
MetalK8s clusters require machines running CentOS / RHEL 7.6 or higher as their operating system. These machines may be virtual or physical, with no difference in setup procedure. The number of machines to setup depends on the chosen architecture (see Choosing a Deployment Architecture).
Machines must not be managed by any configuration management system (e.g. SaltStack, Puppet).
Warning
Distribution must be, as much as possible, left intact (no tuning, tweaking, configuration nor software installation).
Proxies¶
For nodes operating behind a proxy, see Configuration
Linux Kernel Version¶
Linux Kernel shipped with latest (7.7) and previous versions of CentOS / RHEL 7 is affected by a cgroups memory leak bug.
Kernel must be at least in version 3.10.0-1062.4.1 for this bug to be fixed.
The version can be retrieved using:
uname -r
If the installed version is lower than the one above, it must be upgraded:
yum upgrade -y kernel-3.10.0-1062.4.1.el7 reboot
Provisioning¶
SSH¶
Each machine must be accessible through SSH from the host. As part of the Deployment of the Bootstrap node, a new SSH identity for the Bootstrap node will be generated and shared to other nodes in the cluster. It is also possible to do it beforehand.
Network¶
Each machine must be a member of both the control plane and workload plane networks, as described in Networks. However, these networks can overlap, and nodes need not have distinct IPs for each plane.
For the host to reach the cluster-provided UIs, it must be able to connect to control plane IPs of the machines.
Repositories¶
Each machine needs to have repositories properly configured and having access to basic repository packages (depending on the operating systems).
base
extras
updates
RHEL:
rhel-7-server-rpms
rhel-7-server-extras-rpms
rhel-7-server-optional-rpms
Note
For RHEL you should have a system properly registered.
Note
The repository names and configurations do not necessarily need to be the same as the official ones but all packages must be made available.
Enable an existing repository:
Add a new repository:
yum-config-manager --add-repo <repo_url>Note
repo_url can be remote url using prefix http://, https://, ftp://, … or a local path using file://.
For more detail(s), refer to the official Red Hat documentation:
etcd¶
For production environments, a dedicated block device for etcd
is
recommended for better performance and stability.
If possible, use a SSD which provides lower write latencies, with less
variance than a spinning disk, thus improving the reliability of etcd
.
The device must be formatted and mounted on /var/lib/etcd
, on Nodes
intended to bear the etcd role.
For further information on etcd
hardware requirements, see the
official documentation.