kubectl-rook-ceph
Provide common management and troubleshooting tools for the Rook Ceph storage provider as a Krew plugin.
Install
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.
Update
kubectl krew upgrade rook-ceph
Usage
kubectl rook-ceph <root-args> <command> <command-args>
Root 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
Commands
-
ceph <args>
: Run a Ceph CLI command. Supports any arguments theceph
command supports. See Ceph 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.
-
debug
: Debug a deployment by scaling it down and creating a debug copy. This is supported for mons and OSDs onlystart <deployment-name>
[--alternate-image <alternate-image>]
: Start debugging a deployment with an optional alternative ceph container imagestop <deployment-name>
: Stop debugging a 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
Documentation
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
- Debug OSDs and Mons
- Restore mon quorum
- Disaster Recovery
- Restore deleted CRs
- Destroy cluster
Examples
Run a Ceph Command
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
Restart the Operator
kubectl rook-ceph operator restart
deployment.apps/rook-ceph-operator restarted
Rook Version
kubectl rook-ceph rook version
rook: v1.8.0-alpha.0.267.g096dabfa6
go: go1.16.13
Ceph Versions
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
}
}
Contributing
We welcome contributions. See the Rook Contributing Guide to get started.
Report a Bug
For filing bugs, suggesting improvements, or requesting new features, please open an issue.
Contact
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
Licensing
Rook is under the Apache 2.0 license.