Provide common management and troubleshooting tools for the Rook Ceph storage provider as a Krew plugin.
Note: This requires kubectl krew to be installed.
To install the plugin, run:
kubectl krew install rook-ceph
To check plugin version kubectl krew list
this will list all krew plugin with their current version.
kubectl krew upgrade rook-ceph
kubectl rook-ceph <root-args> <command> <command-args>
These are args currently supported:
-
-h|--help
: this will print brief command help text.kubectl rook-ceph --help
-
-n|--namespace='rook-ceph'
: the Kubernetes namespace in which the CephCluster resides. (optional, default: rook-ceph)kubectl rook-ceph -o test-operator -n test-cluster rook version
-
-o|--operator-namespace
: the Kubernetes namespace in which the rook operator resides, when the arg-n
is passed but-o
is not then-o
will equal to the-n
. (default: rook-ceph)kubectl rook-ceph -o test-operator -n test-cluster rook version
-
--context
: the name of the Kubernetes context to be used (optional).kubectl rook-ceph --context=$(kubectl config current-context) mons
-
ceph <args>
: Run a Ceph CLI command. Supports any arguments theceph
command supports. See Ceph docs for more. -
rados <args>
: Run a Rados CLI command. Supports any arguments therados
command supports. See Rados docs for more. -
rbd <args>
: Call a 'rbd' CLI command with arbitrary args -
mons
: Print mon endpointsrestore-quorum <mon-name>
: Restore the mon quorum based on a single healthy mon since quorum was lost with the other mons
-
health
: check health of the cluster and common configuration issues -
operator
restart
: Restart the Rook-Ceph operatorset <property> <value>
: Set the property in the rook-ceph-operator-config configmap.
-
rook
version
: Print the version of Rookstatus
: Print the phase and/or conditions of every CR in the namespacestatus all
: Print the phase and conditions of all CRsstatus <CR>
: Print the phase and conditions of CRs of a specific type, such ascephobjectstore
,cephfilesystem
, etcpurge-osd <osd-id> [--force]
: Permanently remove an OSD from the cluster. Multiple OSDs can be removed with a comma-separated list of IDs.
-
maintenance
: Perform maintenance operations on mons or OSDs. The mon or OSD deployment will be scaled down and replaced temporarily by a maintenance deployment.start <deployment-name>
[--alternate-image <alternate-image>]
: Start a maintenance deployment with an optional alternative ceph container imagestop <deployment-name>
: Stop the maintenance deployment and restore the mon or OSD deployment
-
dr
:health [ceph status args]
: Print theceph status
of a peer cluster in a mirroring-enabled environment thereby validating connectivity between ceph clusters. Ceph status args can be optionally passed, such as to change the log level:--debug-ms 1
.
-
restore-deleted <CRD> [CRName]
: Restore the ceph resources which are stuck in deleting state due to underlying resources being present in the cluster -
help
: Output help text
Visit docs below for complete details about each command and their flags uses.
- Running ceph commands
- Running rbd commands
- Get mon endpoints
- Get cluster health status
- Update configmap rook-ceph-operator-config
- Restart operator pod
- Get rook version
- Get all CR status
- Get cephCluster CR status
- Get specific CR status
- To purge OSD
- Perform maintenance for OSDs and Mons
- Restore mon quorum
- Disaster Recovery
- Restore deleted CRs
- Destroy cluster
- Running rados commands
Any ceph
command can be run with the plugin. This example gets the ceph status:
kubectl rook-ceph ceph status
cluster: id: a1ac6554-4cc8-4c3b-a8a3-f17f5ec6f529 health: HEALTH_OK services: mon: 3 daemons, quorum a,b,c (age 11m) mgr: a(active, since 10m) mds: 1/1 daemons up, 1 hot standby osd: 3 osds: 3 up (since 10m), 3 in (since 8d) data: volumes: 1/1 healthy pools: 6 pools, 137 pgs objects: 34 objects, 4.1 KiB usage: 58 MiB used, 59 GiB / 59 GiB avail pgs: 137 active+clean io: client: 1.2 KiB/s rd, 2 op/s rd, 0 op/s wr
kubectl rook-ceph operator restart
deployment.apps/rook-ceph-operator restarted
kubectl rook-ceph rook version
rook: v1.8.0-alpha.0.267.g096dabfa6
go: go1.16.13
kubectl rook-ceph ceph versions
{
"mon": {
"ceph version 16.2.7 (dd0603118f56ab514f133c8d2e3adfc983942503) pacific (stable)": 1
},
"mgr": {
"ceph version 16.2.7 (dd0603118f56ab514f133c8d2e3adfc983942503) pacific (stable)": 1
},
"osd": {
"ceph version 16.2.7 (dd0603118f56ab514f133c8d2e3adfc983942503) pacific (stable)": 1
},
"mds": {},
"overall": {
"ceph version 16.2.7 (dd0603118f56ab514f133c8d2e3adfc983942503) pacific (stable)": 3
}
}
We welcome contributions. See the Rook Contributing Guide to get started.
For filing bugs, suggesting improvements, or requesting new features, please open an issue.
Please use the following to reach members of the community:
- Slack: Join our slack channel
- Forums: rook-dev
- Twitter: @rook_io
- Email (general topics): cncf-rook-info@lists.cncf.io
- Email (security topics): cncf-rook-security@lists.cncf.io
Rook is under the Apache 2.0 license.