Redpanda in Kubernetes
Kubernetes is a container orchestration tool that helps you to manage Redpanda cluster deployments using declarative configuration files called manifests. Kubernetes provides a standardized way of achieving the following:
- High availability
- Disaster recovery
Redpanda Helm chart vs Redpanda Operator
Redpanda offers two tools for deploying Redpanda clusters in Kubernetes:
- Redpanda Helm chart (recommended)
- Redpanda Operator (not recommended for new deployments)
Redpanda recommends the Helm chart for all new deployments. As a result, the Kubernetes documentation in this section is for Helm chart deployments.
- Redpanda Helm chart
- Redpanda Operator
The Redpanda Helm chart generates and applies all the manifest files you need for deploying Redpanda on Kubernetes. For example:
- Headless ClusterIP Service
- NodePort Service
You can deploy the Helm chart with the default settings, or customize the configuration by overriding the default values
in your own YAML file with the
--values option or in the command line with the
The Redpanda Operator extends Kubernetes by defining a custom resource definition (CRD) to represent Redpanda clusters as Kubernetes resources. The Redpanda Operator monitors Kubernetes for Redpanda resources, and it creates or updates Redpanda clusters to match the declarative specification in the CRD.
Redpanda does not recommend the Redpanda Operator for new deployments. The Redpanda Operator was built for Redpanda Cloud and has unique features and workflows for that specific use case. If you're not already using the Redpanda Operator, use the Helm chart.
The documentation for Redpanda Operator is provided only for existing users in the Reference section.
Managed vs bare-metal
You can run Redpanda on managed Kubernetes platforms as well as in bare-metal environments.
Managed Kubernetes platforms manage one or more components of a Kubernetes cluster for you. Several cloud computing providers offer products that provision Kubernetes clusters on their platform. For example, Google offers GKE and Amazon offers EKS.
Managed Kubernetes platforms do the following:
- Maintain and update the control plane software
- Monitor the health of master nodes and perform repairs, as needed.
You are responsible for deploying and maintaining your applications on the worker nodes. Managed Kubernetes platforms allow you to provision cloud instances to serve as worker nodes. These instances are pre-configured with the Kubernetes agent software and automatically join your Kubernetes cluster.
Bare-metal Kubernetes environments
Bare-metal Kubernetes environments include any deployments where you are responsible for the control plane and the master nodes.
To get started, follow one of these guides:
- Azure Kubernetes Service (AKS)
- Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
- Local (kind and Minikube)
Or, see the production deployment workflow.
The Kubernetes documentation follows these conventions:
Resource names: Kubernetes resources names, such as Service or PersistentVolume, are distinguished by the use of Pascal case. These are the names of resources when specified as a kind in manifest files.
Helm values: Helm values, such as
storage.persistentVolume.enabled, are rendered in monospace font and written according to the JSON path specification.