Skip to main content
Deploy Plane on Kubernetes for production environments that require high availability, scalability, and advanced orchestration capabilities.

Overview

The Kubernetes deployment of Plane provides:
  • High Availability: Multiple replicas of critical services
  • Auto-scaling: Horizontal pod autoscaling based on load
  • Rolling Updates: Zero-downtime deployments
  • Resource Management: CPU and memory limits/requests
  • Health Checks: Liveness and readiness probes
  • Persistent Storage: StatefulSets for databases

Prerequisites

1

Kubernetes Cluster

You need a running Kubernetes cluster (v1.21+). Options include:
  • Cloud Providers: AWS EKS, Google GKE, Azure AKS, DigitalOcean DOKS
  • Self-Managed: kubeadm, kops, Rancher
  • Local Development: minikube, kind, k3s
Verify cluster access:
2

Helm 3

Install Helm, the Kubernetes package manager:
Verify installation:
3

kubectl

Ensure kubectl is installed and configured:
4

Persistent Storage

Your cluster needs a StorageClass for persistent volumes:
Most cloud providers offer default storage classes (gp2, standard, etc.).

Installation via Helm

Plane provides an official Helm chart for Kubernetes deployments.

Add Helm Repository

Verify the chart is available:

Install Plane

1

Create Namespace

2

Create Configuration File

Create a values.yaml file with your custom configuration:
values.yaml
3

Install Chart

Monitor the installation:
Wait for all pods to reach Running status.
4

Verify Installation

Check all resources:
View logs if needed:

Access Plane

Depending on your ingress configuration:

Architecture on Kubernetes

Configuration

Using External PostgreSQL

For production, use a managed database service:
values.yaml

Using External Redis

values.yaml

Using AWS S3 for Storage

values.yaml

Ingress Configuration

NGINX Ingress

values.yaml

Traefik Ingress

values.yaml

SSL/TLS with cert-manager

1

Install cert-manager

2

Create ClusterIssuer

letsencrypt-prod.yaml
Apply:
3

Update Ingress

Update your values.yaml:
Upgrade release:

Scaling

Manual Scaling

Scale deployments directly:
Or update values.yaml and upgrade:
values.yaml

Horizontal Pod Autoscaling (HPA)

Create HPA for API pods:
api-hpa.yaml
Apply:

Upgrading

Always backup your data before upgrading.
1

Backup Data

Backup PVCs:
2

Update Helm Repository

3

Check New Version

4

Upgrade Release

Monitor rollout:

Monitoring

Resource Usage

Logs

Events

Troubleshooting

Pods Not Starting

Common issues:
  • ImagePullBackOff: Check image name and registry access
  • CrashLoopBackOff: Check logs for application errors
  • Pending: Check resource availability and PVC binding

Database Connection Issues

PVC Not Binding

Ingress Not Working

Backup and Disaster Recovery

Using Velero

Install Velero for cluster backups:

Manual PVC Backup

Next Steps

Configuration

Configure environment variables and integrations

Instance Admin

Set up instance administration

Additional Resources