Fulfill the prerequisites for using a pre-provisioned infrastructure

Before you begin using DKP, you must have:

  • An x86_64-based Linux or macOS machine.

  • The dkp binary for Linux, or macOS.

  • kubectl for interacting with the running cluster.

  • Pre-provisioned hosts with SSH access enabled.

  • An unencrypted SSH private key, whose public key is configured on the above hosts.

  • Resource requirements

  • Pre-provisioned Override Files

When air-gapped, you must follow the steps described in the Air-gapped Prerequisites page, otherwise you may begin creating the bootstrap cluster.

Control plane machines

You should have at least three control plane machines.

Each control plane machine must have:

  • 4 cores

  • 16 GiB memory

  • Approximately 80 GiB of free space for the volume used for /var/lib/kubelet and /var/lib/containerd.

  • 15% free space on the root file system.

  • Multiple ports open, as described in DKP Ports.

  • firewalld systemd service disabled. If it exists and is enabled, use the commands systemctl stop firewalld then systemctl disable firewalld, so that firewalld remains disabled after the machine restarts.

Swap is disabled. The kubelet does not have generally-available support for swap. Due to variable commands, refer to your operating system documentation.

Worker machines

You should have at least four worker machines. The specific number of worker machines required for your environment can vary depending on the cluster workload and size of the machines.

Each worker machine must have:

  • 8 cores

  • 32 GiB memory

  • Around 80 GiB of free space for the volume used for /var/lib/kubelet and /var/lib/containerd.

  • 15% free space on the root file system

  • If you plan to use local volume provisioning to provide persistent volumes for your workloads, you must mount at least four volumes to the /mnt/disks/ mount point on each machine. Each volume must have at least 55 GiB of capacity.

  • Multiple ports open, as described in DKP Ports.

  • firewalld systemd service disabled. If it exists and is enabled, use the commands systemctl stop firewalld then systemctl disable firewalld, so that firewalld remains disabled after the machine restarts.

Swap is disabled. The kubelet does not have generally-available support for swap. Due to variable commands, refer to your operating system documentation.