Pre-provisioned Prerequisite Configuration
In order to fulfill all the prerequisites for a successful implementation on a Pre-provisioned environment, there will be infrastructure requirements as well as machine requirements. Please read all the sections on this page to ensure you have met all prerequisites.
Prerequisites for 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.
A Container engine/runtime installed is required to install DKP:
Version DockerĀ® container engine version 18.09.2 or higher installed for Linux or MacOS - On macOS, Docker runs in a virtual machine which needs configured with at least 8 GB of memory.
Version 4.0 of Podman or higher for Linux. Host requirements found here: Host Requirements
For air-gapped, create a working registry:
local registry on bastion or other machine
Resource requirements
When in an air-gapped environment, you must follow the steps described in the Air-gapped Define Environment and Docker Registry also as a prerequisite.
DKP uses localvolumeprovisioner
as the default storage provider. However, localvolumeprovisioner
is not suitable for production use. You should use a Kubernetes CSI compatible storage that is suitable for production.
You can choose from any of the storage options available for Kubernetes. To disable the default that Konvoy deploys, set the default StorageClasslocalvolumeprovisioner
as non-default. Then set your newly created StorageClass to be the default by following the commands in the Kubernetes documentation called Changing the Default Storage Class.
Machine Specifications
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 commandssystemctl stop firewalld
thensystemctl disable firewalld
, so thatfirewalld
remains disabled after the machine restarts.For a Pre-provisioned environment using Ubuntu 20.04, ensure the machine has the
/run
directory mounted with exec permissions.
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.Ensure your disk meets the resource requirements for Rook Ceph in
Block
mode for ObjectStorageDaemons as specified in the requirements table.Multiple ports open, as described in DKP Ports.
firewalld
systemd service disabled. If it exists and is enabled, use the commandssystemctl stop firewalld
thensystemctl disable firewalld
, so thatfirewalld
remains disabled after the machine restarts.For a Pre-provisioned environment using Ubuntu 20.04, ensure the machine has the
/run
directory mounted with exec permissions.
Swap is disabled. The kubelet
does not have generally-available support for swap. Due to variable commands, refer to your operating system documentation.