kubectl-rook-ceph
kubectl-rook-ceph copied to clipboard
Krew plugin to run kubectl commands with rook-ceph
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. -
ceph daemon <daemon.id> <args>
: Run a Ceph daemon command by connecting to its admin socket. -
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 endpoints-
restore-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 operator -
set <property> <value>
: Set the property in the rook-ceph-operator-config configmap.
-
-
rook
-
version
: Print the version of Rook -
status
: Print the phase and/or conditions of every CR in the namespace -
status all
: Print the phase and conditions of all CRs -
status <CR>
: Print the phase and conditions of CRs of a specific type, such ascephobjectstore
,cephfilesystem
, etc -
purge-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 image -
stop <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
Documentation
Visit docs below for complete details about each command and their flags uses.
- Running ceph commands
- Running ceph daemon 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
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): [email protected]
- Email (security topics): [email protected]
Licensing
Rook is under the Apache 2.0 license.