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