Skip to content

Getting Started ​

Verified against the master example manifests at commit 63eed4e. Commands assume a running Kubernetes cluster and kubectl configured against it.

Prerequisites ​

  • A Kubernetes cluster with nodes that have raw block devices or unformatted partitions available for Ceph OSDs.
  • kubectl with cluster-admin access.
  • Optionally helm if you prefer the chart-based install.

Install ​

Apply the three operator manifests from deploy/examples in order:

bash
git clone https://github.com/rook/rook.git
kubectl apply -f rook/deploy/examples/crds.yaml
kubectl apply -f rook/deploy/examples/common.yaml
kubectl apply -f rook/deploy/examples/operator.yaml

The Helm path is equivalent: install the rook-ceph chart for the operator, then the rook-ceph-cluster chart for the cluster (Getting Started).

A first working setup ​

  1. Confirm the operator pod is running.

    bash
    kubectl -n rook-ceph get pod -l app=rook-ceph-operator
  2. Create the cluster. Use cluster.yaml for a real multi-node cluster, or cluster-test.yaml for a single-node test setup.

    bash
    kubectl apply -f rook/deploy/examples/cluster.yaml
  3. Deploy the toolbox pod so you can run Ceph commands.

    bash
    kubectl apply -f rook/deploy/examples/toolbox.yaml

Verify it works ​

Watch the CephCluster resource until its health reports HEALTH_OK:

bash
kubectl -n rook-ceph get cephcluster

Then exec into the toolbox and ask Ceph directly:

bash
kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- ceph status

Rook drives the cluster through status.conditions, moving the resource to Progressing while it configures mons, mgr, and OSDs (pkg/operator/ceph/cluster/cluster.go:116), so the CephCluster status is the authoritative signal that orchestration finished.

Where to go next ​

For production concerns such as high availability, storage class configuration, object and file storage, monitoring, and upgrades, see the official Rook Ceph documentation.