Provided Kubernetes Installer Requirements

Overview

This document provides a comprehensive overview of the Provided Kubernetes Installer Requirements. Ensure all requirements are met before installation for a stable and efficient deployment of the Kinetic Platform.

Node Requirements


Number of NodesUse In
1Individual developer environments
Development environments that do not need to mimic a production environment
Other environments that don't require high availability
3+Production environments
Non-production environments that need to mimic production

Operating System Requirements

The following operating systems are currently supported by their creators and are compatible with our installation framework for deploying the Kinetic Platform.


Linux DistributionSupported Versions
Red Hat Enterprise Linux (RHEL)8.8, 8.9, 9.0, 9.2, 9.3
Ubuntu20.04, 22.04

Hardware Requirements

Minimum requirements per node:

  • 32GB RAM Memory
  • 8-Core CPU

Port Requirements

This section lists the ports used by the Embedded Cluster. These ports must be open and available for both single- and multi-node installations.


Ports Used by Local Processes

The following ports must be open and available for use by local processes running on the same node. It is not necessary to create firewall openings for these ports.

  • 2379/TCP
  • 9099/TCP
  • 10248/TCP
  • 10257/TCP
  • 10259/TCP

Ports Required for Bidirectional Communication Between Nodes

The following ports are used for bidirectional communication between nodes.

For multi-node installations, create firewall openings between nodes for these ports.

For single-node installations, ensure that there are no other processes using these ports. Although there is no communication between nodes in single-node installations, these ports are still required.

  • 2380/TCP
  • 4789/UDP
  • 6443/TCP
  • 7443/TCP
  • 9091/TCP
  • 9443/TCP
  • 10249/TCP
  • 10250/TCP
  • 10256/TCP
  • 30000/TCP

Ports Exposed to Load Balancer

The following ports are required for the load balancer to properly distribute traffic to the cluster and should be exposed to the Load Balancer:

  • 30443/TCP - HTTPS traffic
  • 30080/TCP - HTTP traffic

The load balancer should distribute traffic to all nodes in the cluster, where ingress controllers listen on ports 30080 (HTTP) and 30443 (HTTPS). Additionally, the load balancer should perform health checks on 10248/TCP via HTTP at /healthz.

For cloud providers such as AWS, this can be achieved by configuring a target group with Elastic IPs or a dedicated load balancer pointing to the target group.


Admin Console Port

  • The KOTS Admin Console requires port 30000/TCP to be open and available. Create a firewall opening for this port so that the Admin Console can be accessed by the end user.
  • Additionally, port 30000 must be accessible by nodes joining the cluster.
  • If port 30000 is occupied, an alternative port can be selected during installation.

Storage Requirements

Disk Performance Requirements

  • The disk on the host must have a maximum P99 write latency of 10 ms to support etcd performance and stability.
  • For more information about disk write latency requirements for etcd, refer to the etcd documentation.

Volume Requirements

PathMinimum SpaceDescription
/var/lib/embedded-cluster40 GiMust be less than 80% full to ensure stability. The directory used for data storage can be changed using the --data-dir flag.
/var/openebs100GBUsed for OpenEBS PersistentVolume (PV) storage, including PV storage for rqlite used by the installer dashboard.

Additional Storage Directories

In addition to the primary /var/lib/embedded-cluster directory, Embedded Cluster creates directories and files in the following locations:

  • /etc/cni
  • /etc/k0s
  • /opt/cni
  • /opt/containerd
  • /run/calico
  • /run/containerd
  • /run/k0s
  • /sys/fs/cgroup/kubepods
  • /sys/fs/cgroup/system.slice/containerd.service
  • /sys/fs/cgroup/system.slice/k0scontroller.service
  • /usr/libexec/k0s
  • /var/lib/calico
  • /var/lib/cni
  • /var/lib/containers
  • /var/lib/kubelet
  • /var/log/calico
  • /var/log/containers
  • /var/log/pods
  • /usr/local/bin/k0s

OpenEBS Storage

  • Embedded Cluster uses OpenEBS to provide local PersistentVolume (PV) storage, including PV storage for rqlite used by the installer dashboard.
  • For more information, refer to the OpenEBS documentation.

Network File System (NFS) Client Requirements

Your application servers must have the required packages installed to support NFS mounts. This ensures proper connectivity to shared storage and prevents potential deployment issues. Please verify that the necessary NFS client utilities are installed on all nodes before proceeding.

Common NFS Client Packages:

  • RHEL / CentOS: nfs-utils
  • Ubuntu / Debian: nfs-common