> ## 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>;
};

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>.

  For information on the generally-available , read the <InternalLink path="kubernetes-overview"> documentation</InternalLink> and see the [GitHub repository](https://github.com/cockroachdb/cockroach-operator).
</Note>

## CockroachDB operator

This section describes how to:

* <InternalLink path="deploy-cockroachdb-with-cockroachdb-operator">Deploy a CockroachDB cluster using the </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" />.
* 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  includes two custom resource definitions to manage CockroachDB, `CrdbCluster` and `CrdbNode`. Unlike the older [](https://github.com/cockroachdb/cockroach-operator), the  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.<br /><br />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.                                                                                                                                                                                              |
