> For the complete documentation index, see [llms.txt](https://documentation.alluxio.io/k8s-operator-en/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.alluxio.io/k8s-operator-en/what-is-k8s-operator.md).

# What is the Alluxio Kubernetes Operator?

The Alluxio Kubernetes Operator is the Kubernetes-native way to deploy and operate Alluxio clusters. It extends the Kubernetes API with Alluxio custom resources, so you describe the Alluxio environment you want and the operator continuously works to create and maintain it.

For example, instead of manually creating the Kubernetes resources for an Alluxio cluster, you define an `AlluxioCluster` resource with the desired Alluxio version, worker count, storage configuration, and client settings. The operator creates and reconciles the underlying Kubernetes resources for you.

## Why use the operator?

Running Alluxio on Kubernetes involves more than starting a set of pods. A production deployment needs its coordinators, workers, services, FUSE clients, storage connections, and supporting configuration to remain consistent as the cluster changes. The operator brings that lifecycle under Kubernetes control.

With the operator, you can:

* Deploy, update, scale, and remove Alluxio clusters declaratively.
* Keep the running cluster aligned with the configuration you declare.
* Connect or disconnect supported under storage systems without rebuilding the cluster.
* Make Alluxio available to Kubernetes workloads through standard persistent-volume workflows.
* Collect diagnostic information from a running cluster when investigating an issue.

## How it works

The operator follows the standard Kubernetes control-loop model:

1. You create or update an Alluxio custom resource.
2. The appropriate controller observes the desired state in that resource.
3. The controller creates or updates the Kubernetes resources needed to realize it, such as StatefulSets, DaemonSets, Services, jobs, and storage-related resources.
4. The controller continues to reconcile the actual state with the desired state and records status on the custom resource.

This approach makes an Alluxio deployment part of the same Kubernetes workflow you use for application configuration, review, automation, and observability.

## Core resources

The following custom resources are the primary user-facing API of the operator.

| Resource          | Purpose                                                                                                                                                                                                                    |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AlluxioCluster`  | Defines an Alluxio deployment, including the Alluxio version and images, coordinator and worker configuration, storage tiers, and FUSE client settings. This is the core resource for running Alluxio.                     |
| `UnderFileSystem` | Describes an external storage system, such as Amazon S3, HDFS, or Google Cloud Storage. It separates storage connectivity and credentials from the cluster lifecycle, enabling storage mounts to be managed independently. |
| `CollectInfo`     | Requests collection of a diagnostic support bundle from a running Alluxio cluster, including relevant logs, metrics, and environment information.                                                                          |
| `License`         | Manages an Alluxio Enterprise license and distributes it securely to the components that require it.                                                                                                                       |
| `ClusterGroup`    | An advanced resource for managing a group or federation of Alluxio clusters, commonly used in multi-cluster or multi-tenant environments.                                                                                  |

## What the operator runs for you

Behind these resources, the operator includes several controllers and services that manage different aspects of the platform:

* The **Alluxio controller** manages the lifecycle of Alluxio clusters and their core Kubernetes workloads.
* The **UFS controller** manages dynamic under-storage mounting and unmounting.
* The **CSI driver** lets applications consume Alluxio through Kubernetes PersistentVolumes and PersistentVolumeClaims. Its controller handles volume lifecycle, while its node component performs mounts on Kubernetes nodes.
* The **CollectInfo controller** creates and coordinates diagnostic collection jobs.

You work with the custom resources; the operator manages these underlying components on your behalf.

## Typical workflows

**Deploy an Alluxio cluster**

Create an `AlluxioCluster` resource that describes the topology and configuration you need. The operator deploys the required coordinator, worker, client, and service resources, then reports cluster status through Kubernetes.

**Manage storage connections independently**

Create or update an `UnderFileSystem` resource to connect storage such as S3, HDFS, or GCS. This allows storage configuration to evolve independently of the rest of the cluster and avoids unnecessary cluster restarts.

**Provide Alluxio to an application through Kubernetes storage APIs**

Use the CSI driver to integrate Alluxio with the familiar PVC workflow. Application teams can consume Alluxio storage through Kubernetes volume mounts rather than implementing a custom mount process in every workload.

**Investigate a running cluster**

Create a `CollectInfo` resource when support data is needed. The operator collects relevant diagnostics into a support bundle that can be sent to your chosen destination.
