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

# CockroachDB Operator Overview

export const InternalLink = ({version, path = "", children, ...props}) => {
  let detectedVersion = version || "stable";
  if (typeof window !== 'undefined' && !version) {
    const match = window.location.pathname.match(/\/docs\/([^/]+)/);
    if (match) {
      detectedVersion = match[1];
    }
  }
  const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
  return <a href={`/docs/${detectedVersion}/${normalizedPath}`} {...props}>
      {children}
    </a>;
};

export const version = "v26.1";

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.

<Note>
  The CockroachDB operator is in <InternalLink path="cockroachdb-feature-availability">Preview</InternalLink>.
</Note>

For information on the generally-available Public operator, read the <InternalLink path="kubernetes-overview">Public operator documentation</InternalLink> and see the [GitHub repository](https://github.com/cockroachdb/cockroach-operator).
With the CockroachDB operator, you can deploy CockroachDB clusters across multiple regions with separate operator instances per region. Using [Helm](https://helm.sh/), set configurations that manage the operator and CockroachDB nodes across regions.

## CockroachDB operator

This section describes how to:

* <InternalLink path="deploy-cockroachdb-with-cockroachdb-operator">Deploy a CockroachDB cluster using the CockroachDB operator</InternalLink>.
* Migrate from an existing CockroachDB Kubernetes deployment using <InternalLink path="migrate-cockroachdb-kubernetes-helm">Helm</InternalLink> or the <InternalLink path="migrate-cockroachdb-kubernetes-operator">Public operator</InternalLink>.
* Operate a CockroachDB cluster:
  * <InternalLink path="schedule-cockroachdb-operator">Manage pod scheduling</InternalLink>.
  * <InternalLink path="configure-cockroachdb-operator">Manage cluster resources</InternalLink>.
  * <InternalLink path="secure-cockroachdb-operator">Manage certificates</InternalLink>.
  * <InternalLink path="scale-cockroachdb-operator">Scale a cluster</InternalLink>.
  * <InternalLink path="monitor-cockroachdb-operator">Monitor a cluster</InternalLink>.
  * <InternalLink path="upgrade-cockroachdb-operator">Upgrade a cluster</InternalLink>.
  * <InternalLink path="override-templates-cockroachdb-operator">Override deployment templates</InternalLink>.
  * <InternalLink path="cockroachdb-operator-performance">Improve cluster performance</InternalLink>.

## Kubernetes terminology

Before starting, review some basic Kubernetes terminology. Note that CockroachDB <InternalLink path="architecture/glossary#cockroachdb-architecture-terms">nodes</InternalLink> 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 <InternalLink path="deploy-cockroachdb-with-cockroachdb-operator">deployment guide</InternalLink>, 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 <InternalLink path="deploy-cockroachdb-with-cockroachdb-operator">deployment guide</InternalLink>, each pod will run on a separate Kubernetes worker node and include one Docker container running a single CockroachDB node, reflecting our <InternalLink path="recommended-production-settings#topology">topology recommendations</InternalLink>.                                                                                                                                                                                                                               |
| [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 [Public operator](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 <InternalLink path="deploy-cockroachdb-with-cockroachdb-operator">deployment guide</InternalLink> 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 <InternalLink path="deploy-cockroachdb-with-cockroachdb-operator">deployment guide</InternalLink> creates the RBAC resources necessary for CockroachDB to create and access certificates.                                                                                                                                                                                   |
