Ceph

PLEASE NOTE: This document applies to v0.5 version and not to the latest stable release v1.9

Rook Toolbox

The Rook toolbox is a container with common tools used for rook debugging and testing. The toolbox is based on Ubuntu, so more tools of your choosing can be easily installed with apt-get.

Running the Toolbox in Kubernetes

The rook toolbox can run as a pod in a Kubernetes cluster. After you ensure you have a running Kubernetes cluster with rook deployed (see the Kubernetes instructions), launch the rook-tools pod.

Save the tools spec as rook-tools.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: rook-tools
  namespace: rook
spec:
  containers:
  - name: rook-tools
    image: rook/toolbox:v0.5.1
    imagePullPolicy: IfNotPresent
    args: ["sleep", "36500d"]
    env:
      - name: ROOK_ADMIN_SECRET
        valueFrom:
          secretKeyRef:
            name: rook-ceph-mon
            key: admin-secret
    securityContext:
      privileged: true
    volumeMounts:
      - mountPath: /dev
        name: dev
      - mountPath: /sys/bus
        name: sysbus
      - mountPath: /lib/modules
        name: libmodules
  volumes:
    - name: dev
      hostPath:
        path: /dev
    - name: sysbus
      hostPath:
        path: /sys/bus
    - name: libmodules
      hostPath:
        path: /lib/modules

Launch the rook-tools pod:

kubectl create -f rook-tools.yaml

Wait for the toolbox pod to download its container and get to the running state:

kubectl -n rook get pod rook-tools

Once the rook-tools pod is running, you can connect to it with:

kubectl -n rook exec -it rook-tools bash

All available tools in the toolbox are ready for your troubleshooting needs. Example:

rookctl status
ceph df
rados df

When you are done with the toolbox, remove the pod:

kubectl -n rook delete pod rook-tools

Running the Toolbox for Standalone

Container Linux by CoreOS

To use the rook toolbox on CoreOS, first add the following values to the toolbox config file:

cat >~/.toolboxrc <<EOL
TOOLBOX_DOCKER_IMAGE=rook/toolbox
TOOLBOX_DOCKER_TAG=latest
EOL

Then launch the toolbox as usual:

toolbox

Ceph Tools

To use the ceph tools from a rook host, launch the toolbox with the following options:

toolbox --bind=/var/lib/rook:/var/lib/rook /toolbox/entrypoint.sh

Then you can run ceph and rados commands like usual:

ceph df
rados df

Other Linux Distros

The rook toolbox container can simply be run directly with docker on other Linux distros:

docker run -it rook/toolbox

Ceph Tools

To run ceph tools such as ceph and rados, run the container with the following options:

docker run -it --network=host -v /var/lib/rook:/var/lib/rook rook/toolbox