System Requirements (Minimum)
The topic describes the requirements for installing the application on Virtual Machines, EC2 Instances, Azure VMs or Google Instances.
Single Node
- One (1) virtual machine with 16 vCPUs
- 32GB of RAM on the machine
- 1TB of SSD. See Partition Recommendation
Single Node is recommended only for proof of concept or patching environment. See recommendations for proof of concept server sizing
Multi Node Cluster
We recommend multi node cluster for production environments for reliability, redundancy and performance. For maximum resilience, aim for an odd number of VMs in your cluster.
- Three (3) virtual machines
- 16vCPU per virtual machine
- 64GB of memory per machine
- 1TB of SSD. See Partition Recommendation
All machines should be in same data center and subnet.
Critical Prerequisites
For each virtual machine ensure the following.
- NTP clock should be in sync.
- Use Static IPs (dynamic IPs are not supported).
- Use Static hostname (hostnames cannot change).
- IP Forwarding should be enabled See How to enable.
- Embedded Cluster is based on k0s, so all k0s external runtime dependencies apply
- No previous installations of Kubernetes, Docker, or Containerd should be present on the system
Operating System Prerequisites
Below are the operating systems supported by the platform installer.
- Ubuntu 24.04 (x86-64)
- RHEL 9.x (x86-64)
- Amazon Linux 2023 (x86-64)
Storage Prerequisites
It is recommended to use an SSD for optimal performance. Symbolic links are not supported.
Partition | Minimum Size | Description |
---|---|---|
/var/lib/embedded-cluster | 60 GB | Data directory used by the cluster. Can be changed during installation. |
The installer creates following directories.
/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/embedded-cluster
/var/log/pods
/usr/local/bin/k0s
Network Access Control List (ACL) Exceptions
iceDQ installations on the server with tight NAC will need below exceptions to properly install, license and initiate a deployment with the platform installer.
Internal Port Requirements
For Cluster Operation
The following ports must be open and available for use by local processes running on the same node.
Ports | Protocol | Description |
---|---|---|
2379 | TCP | Kubernetes etcd |
7443 | TCP | Kubernetes API |
9099 | TCP | Kubernetes CNI |
10248 | TCP | Kubernetes components |
10257 | TCP | Kubernetes components |
10259 | TCP | Kubernetes components |
50000 | TCP | LAM Port |
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.
Ports | Protocol |
---|---|
2380 | TCP |
4789 | UDP |
6443 | TCP |
9091 | TCP |
9443 | TCP |
10249 | TCP |
10250 | TCP |
10256 | TCP |
External Port Requirements
The following ports are required for users to access the iceDQ platform over the web.
With Network Load Balancer
Ports | Protocol | Description |
---|---|---|
443 | TCP | Application UI (must mapped to 32222 target port) |
8800 | TCP | Admin Console UI (must mapped to 8800 target port) |
Without Network Load Balancer
Ports | Protocol | Description |
---|---|---|
32222 | TCP | Application UI via Node Port (this port is configurable 30000–32767) |
30000 | TCP | Admin Console UI via Node Port |
Outbound URL Requirements
Exception | Purpose |
---|---|
registry.icedq.com | Container images |
proxy.icedq.com | Container images |
get.icedq.com | Installation script |
resource.icedq.com | Installer license verification |
icedq.azurecr.io | Container dependency images |
auth.docker.io | Docker authentication |
registry-1.docker.io | Docker registry |
production.cloudflare.docker.com | Docker infrastructure |
External Database
The application is bundled with a postgreSQL database. For production deployment we recommend using external postgreSQL 17.X and above database server.
Embedded database is not accessible from outside the cluster.