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 Nodes | Use In |
---|---|
1 | Individual 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 Distribution | Supported Versions |
---|---|
Red Hat Enterprise Linux (RHEL) | 8.8, 8.9, 9.0, 9.2, 9.3 |
Ubuntu | 20.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
Path | Minimum Space | Description |
---|---|---|
/var/lib/embedded-cluster | 40 Gi | Must be less than 80% full to ensure stability. The directory used for data storage can be changed using the --data-dir flag. |
/var/openebs | 100GB | Used 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
Updated about 15 hours ago