> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cockroachlabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CockroachDB Operator Overview

The CockroachDB operator is a fully-featured [Kubernetes operator](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) that allows you to deploy and manage CockroachDB self-hosted clusters.

## CockroachDB operator

This section describes how to:

* [Deploy a CockroachDB cluster using the CockroachDB operator](https://docs.cockroachlabs.com/docs/stable/deploy-cockroachdb-with-cockroachdb-operator.md).
* Migrate from an existing CockroachDB Kubernetes deployment using [Helm](https://docs.cockroachlabs.com/docs/stable/migrate-cockroachdb-kubernetes-helm.md) or the [Public operator](https://docs.cockroachlabs.com/docs/stable/migrate-cockroachdb-kubernetes-operator.md).
* Operate a CockroachDB cluster:

  * [Manage pod scheduling](https://docs.cockroachlabs.com/docs/stable/schedule-cockroachdb-operator.md).
  * [Manage cluster resources](https://docs.cockroachlabs.com/docs/stable/configure-cockroachdb-operator.md).
  * [Manage certificates](https://docs.cockroachlabs.com/docs/stable/secure-cockroachdb-operator.md).
  * [Scale a cluster](https://docs.cockroachlabs.com/docs/stable/scale-cockroachdb-operator.md).
  * [Monitor a cluster](https://docs.cockroachlabs.com/docs/stable/monitor-cockroachdb-operator.md).
  * [Upgrade a cluster](https://docs.cockroachlabs.com/docs/stable/upgrade-cockroachdb-operator.md).
  * [Override deployment templates](https://docs.cockroachlabs.com/docs/stable/override-templates-cockroachdb-operator.md).
  * [Improve cluster performance](https://docs.cockroachlabs.com/docs/stable/cockroachdb-operator-performance.md).

## Kubernetes terminology

Before starting, review some basic Kubernetes terminology. Note that CockroachDB [nodes](https://docs.cockroachlabs.com/docs/stable/architecture/glossary.md#cockroachdb-architecture-terms) are distinct from Kubernetes "nodes" or "worker nodes".

| Feature | Description |
| - | - |
| [node](https://kubernetes.io/docs/concepts/architecture/nodes/) | A physical or virtual machine. In the [deployment guide](https://docs.cockroachlabs.com/docs/stable/deploy-cockroachdb-with-cockroachdb-operator.md), you'll create instances and join them as worker nodes into a single Kubernetes cluster. |
| [pod](http://kubernetes.io/docs/user-guide/pods/) | A pod is a group of one of more Docker containers. In the [deployment guide](https://docs.cockroachlabs.com/docs/stable/deploy-cockroachdb-with-cockroachdb-operator.md), each pod will run on a separate Kubernetes worker node and include one Docker container running a single CockroachDB node, reflecting our [topology recommendations](https://docs.cockroachlabs.com/docs/stable/recommended-production-settings.md#topology). |
| [operator](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) | An operator is an extension to Kubernetes that uses custom resources to efficiently manage specific applications. The CockroachDB operator includes two custom resource definitions to manage CockroachDB, `CrdbCluster` and `CrdbNode`. Unlike the older [](https://github.com/cockroachdb/cockroach-operator), the CockroachDB operator does not use StatefulSets and is designed to simplify multi-region deployments. |
| [persistent volume](http://kubernetes.io/docs/user-guide/persistent-volumes/) | A persistent volume is a piece of networked storage (Persistent Disk on GCE, Elastic Block Store on AWS) mounted into a pod. The lifetime of a persistent volume is decoupled from the lifetime of the pod that's using it, ensuring that each CockroachDB node binds back to the same storage on restart. The [deployment guide](https://docs.cockroachlabs.com/docs/stable/deploy-cockroachdb-with-cockroachdb-operator.md) assumes that dynamic volume provisioning is available. When that is not the case, [persistent volume claims](http://kubernetes.io/docs/user-guide/persistent-volumes/#persistentvolumeclaims) need to be created manually. |
| [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) | RBAC, or Role-Based Access Control, is the system Kubernetes uses to manage permissions within the cluster. In order to take an action (e.g., `get` or `create`) on an API resource (e.g., a `pod`), the client must have a `Role` that allows it to do so. The [deployment guide](https://docs.cockroachlabs.com/docs/stable/deploy-cockroachdb-with-cockroachdb-operator.md) creates the RBAC resources necessary for CockroachDB to create and access certificates. |
