Ceph

    PLEASE NOTE: This document applies to v0.7 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:
      dnsPolicy: ClusterFirstWithHostNet
      containers:
      - name: rook-tools
        image: rook/toolbox:v0.7.1
        imagePullPolicy: IfNotPresent
        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
          - name: mon-endpoint-volume
            mountPath: /etc/rook
      hostNetwork: false
      volumes:
        - name: dev
          hostPath:
            path: /dev
        - name: sysbus
          hostPath:
            path: /sys/bus
        - name: libmodules
          hostPath:
            path: /lib/modules
        - name: mon-endpoint-volume
          configMap:
            name: rook-ceph-mon-endpoints
            items:
            - key: data
              path: mon-endpoints
    

    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