# 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-06-19

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

The official Helm chart deploys NocoDB for production on Kubernetes against your own managed
PostgreSQL and Redis. It ships no databases of its own, and object storage for attachments is
configured from the NocoDB admin panel after install.

## When to use Helm

Use Helm when you run more than one NocoDB replica, need high availability, or already operate
on Kubernetes. For a single machine, the [single-server install](/docs/self-hosting/installation/single-server)
is simpler.

The chart runs on any CNCF-conformant Kubernetes cluster, including managed offerings (Amazon EKS,
Google GKE, Azure AKS) and self-managed or lightweight distributions (k3s, RKE2, OpenShift). It does
not apply to non-Kubernetes container platforms such as AWS ECS/Fargate or Google Cloud Run; for
those, use a Docker-based [installation method](/docs/self-hosting/installation/single-server) instead.

## Architecture

NocoDB runs as two workloads from one image:

* **App** (`Deployment`) serves the HTTP API and WebSocket traffic on port 8080. It scales
  horizontally; WebSocket events fan out across replicas through Redis, so no sticky sessions
  are required.
* **Worker** (`Deployment`, optional but recommended) runs background jobs (imports, thumbnails,
  migrations) with `NC_WORKER_CONTAINER=true`. App pods enqueue; worker pods process.

Both connect to external **PostgreSQL** (metadata) and **Redis** (cache, job queue, WebSocket
fan-out). Attachments live in **S3-compatible object storage**, which you configure from 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, connected in-app after install)
* Nodes that can schedule 1 vCPU and 2 GiB memory per app 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): Production installation of NocoDB 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.
