# Kubernetes

> Part of the NocoDB documentation (Self-hosting > Installation > Kubernetes). Index of all pages: https://nocodb.com/llms.txt. Any docs page is available as Markdown by adding `.md` to its URL.

URL: https://nocodb.com/docs/self-hosting/installation/kubernetes
Last updated: 2026-10-03

Deploy NocoDB on Kubernetes with the official Helm chart for production and high-availability setups.

The official Helm chart deploys NocoDB for production on Kubernetes. It uses your own managed
PostgreSQL and Redis. The chart includes no databases. After install, you configure object storage
for attachments in the NocoDB admin panel.

## When to use Helm

Use Helm if one of these is true:

* You run more than one NocoDB replica.
* You need high availability.
* You already operate on Kubernetes.

For a single machine, the [single-server install](/docs/self-hosting/installation/single-server)
is simpler.

The chart runs on all CNCF-conformant Kubernetes clusters. These include managed services (Amazon EKS,
Google GKE, Azure AKS) and self-managed or lightweight distributions (k3s, RKE2, OpenShift). The chart
does not apply to container platforms without Kubernetes, such as AWS ECS/Fargate or Google Cloud Run.
For those platforms, use a Docker-based [installation method](/docs/self-hosting/installation/single-server).

## Architecture

NocoDB runs as two workloads from one image:

* **App** (`Deployment`) serves the HTTP API and WebSocket traffic on port 8080. It scales
  horizontally. Redis sends WebSocket events to all replicas, so you do not need sticky sessions.
* **Worker** (`Deployment`, optional but recommended) runs background jobs (imports, thumbnails,
  migrations) with `NC_WORKER_CONTAINER=true`. App pods add jobs to the queue. Worker pods process them.

Both workloads connect to external **PostgreSQL** (metadata) and **Redis** (cache, job queue, WebSocket
fan-out). Attachments are in **S3-compatible object storage**. You configure it in the
NocoDB admin panel after install, not through the chart.

<Callout type="info">
  In a multi-replica deployment, external Redis keeps state shared across pods and S3-compatible
  storage holds attachments, so every replica serves the same data.
</Callout>

## High availability at a glance

| Component  | Scales            | Notes                                      |
| ---------- | ----------------- | ------------------------------------------ |
| App        | Min 2 recommended | Autoscaling recommended                    |
| Worker     | Min 2 recommended | Fixed replicas; runs background jobs       |
| PostgreSQL | External          | Your managed database; holds all your data |
| Redis      | External          | Shared key-value store and pub/sub         |
| S3         | External          | Object storage for file attachments        |

## Prerequisites

* Kubernetes 1.23+ and Helm 3.8+
* Managed PostgreSQL and Redis, and an S3-compatible bucket for attachments (you connect the bucket in the app after install)
* Nodes that can schedule 1 vCPU and 2 GiB memory for each app pod and worker pod (1 GiB memory minimum)
* An ingress controller (and optionally [cert-manager](https://cert-manager.io) for TLS)

Continue to [Install](/docs/self-hosting/installation/kubernetes/install).

---

## Related pages

- [Install](https://nocodb.com/docs/self-hosting/installation/kubernetes/install.md): Install NocoDB for production on Kubernetes with the official Helm chart.
- [Upgrade & Backup](https://nocodb.com/docs/self-hosting/installation/kubernetes/upgrade.md): Upgrade, roll back and back up a NocoDB Helm deployment on Kubernetes.
