# Installation on Kubernetes
# Infrastructure Requirements
Below are the minimum infrastructure requirements to install Entando directly on a Kubernetes (K8s) cluster:
- A working DNS server configured to resolve internal and external names. To configure K8s with a global wildcard domain name for the entire cluster, be sure it points to the public IP address of the external load balancer for the worker nodes.
- A default storage class (opens new window) is needed for the Entando Operator to create the correct persistent volume claims (PVCs) for each pod.
- NGINX ingress controller (opens new window) is needed to expose the Entando Application.
- To install bundles, the cluster containing the Entando Application must have access to the bundle repository (either public or private, often on GitHub) as well as the Docker image repository (e.g. Docker Hub) for any microservices.
- Kubernetes Secrets are required to install bundles from a private image repository, such as Docker Hub.
The baseline resource requirements for Entando are specified below. Actual requirements depend on utilization and increase with features, bundles and capabilities. In addition, Kubernetes has its own resource requirements, which vary depending on the distribution. At a minimum, configure a single worker node with the resources listed below. Alternatively, begin with 3 worker nodes, each with at least 2 vCPUs and 4 GB of RAM.
# Minimum Hardware Requirements
# Entando Application Only
- 4 vCPUs (4000 millicores)
- 8 GB of RAM
- 5 GB of allocated storage distributed over many PVCs
# Entando + Microservices
- 500 millicores per microservice, or
- 1000 millicores per microservice containing a database
The microservices tested with the CPU specs above were generated using the JHipster Entando Blueprint.
# Entando + CMS
Complexity, content and number of pages determine the hardware requirements of an Entando install that includes the CMS. The minimum requirements are:
- 6 vCPUs for a single CMS instance. To scale up, allocate 4 vCPUs per replica.
- 10 GB of RAM for a single CMS instance. To scale up, allocate 4 GB of RAM per replica.
- A minimum of 50 GB of storage for the static resources generated by the use of the Entando CMS.
# Backup Strategies
It is recommended to secure content via database services that automate backups and restore on a Kubernetes cluster such as Azure, Red Hat OpenShift, Google K8s Service or Amazon Elastic. If this is not an option, content can be managed with tools like Velero (opens new window) or Cloudcase (opens new window).
Note: Some DevOps teams recommend against running production databases inside pods since it makes database management more challenging.
If you are using the Entando CMS, be sure to protect related schemas (port
and serv
) with a valid disaster recovery plan. Protect all volumes containing your static resources with daily snapshots.
# References
See the Entando compatibility guide (opens new window) for viable Kubernetes versions.