A collection of plugins for kubectl integration (for Kubectl versions >= 1.12.0)
A portion of these plugins are available on krew as well.
- These plugins are for kubectl versions at or above 1.12.0 only. Check your version via
kubectl version - For versions below 1.12.0, use the 1.11.0 branch.
- To upgrade your kubectl version via homebrew:
brew upgrade kubectl, or via gcloud:gcloud components update - The kubectl-ip plugin requires jq ( brew/apt/yum install jq )
- All coding was written to maintain compatibility across both BSD and GNU.
- Requires Bash.
git clone https://github.com/jordanwilson230/kubectl-plugins.git cd kubectl-plugins ./install-plugins.sh source ~/.bash_profile
rm -rf ~/.kube/plugins/jordanwilson230
ex '+g/jordanwilson230/d' -cwq ~/.bash_profile
Remove the image plugin:
ex '+g/IMG_REGISTRY=/d' -cwq ~/.bash_profile
Remove the prompt plugin:
ex '+g/function kubectl()/d' -cwq ~/.bash_profile
ex '+g/KUBECTL_\(.*\)_PROMPT/d' -cwq ~/.bash_profile
- Like kubectl exec, but offers a --user flag to exec as root (or any other user)
- 'ssh' is a misnomer (it works by mounting a docker socket as a volume), but it's easier to work with as a command.
- You must be in the same namespace as the target pod or you can use
-n namespaceoption to specify the namespace - Kudos to mikelorant for thinking of the docker socket! :)
Usage:
kubectl ssh [OPTIONAL: -n <namespace>] [OPTIONAL: -u <user>] [OPTIONAL: -c <Container Name>] [REQUIRED: <PodName> ] -- [command]
Example:
kubectl ssh -n default -u root -c prometheus prometheus-282sd0s2 -- bash
| Option | Required | Description | Example |
|---|---|---|---|
| -h | N | Show usage | kubectl ssh -h |
| -d | N | Enable debug mode. Print a trace of each commands | kubectl ssh -d kafka-0 |
| -n | N | The namespace scope for this CLI request | kubectl ssh -n infra kafka-0 |
| -u | N | User to exec as. Defaults to root | kubectl ssh -u kafka kafka-0 |
| -c | N | Specify container within pod | kubectl ssh -c burrow-metrics kafka-0 |
| -- | N | Pass an optional command. Defaults to /bin/sh | kubectl ssh kafka -- ls /etc/burrow |
- View current namespace:
kubectl switch - Switch namespace:
kubectl switch preprod - Switch cluster:
kubectl switch cluster staging(accepts fuzzy on the cluster name) - List and select from all available clusters:
kubeclt switch cluster -l
| Option | Required | Description | Example |
|---|---|---|---|
| -l | N | List available clusters and prompts for selection. Can only be used when cluster is passed. |
kubNctl switch cluster -l |
| -h | N | Show usage | kubectl switch -h |
- Displays a warning prompt when issuing commands in a flagged cluster or namespace
- Commands that trigger the prompt include
create, scale, delete, apply, etc., - Flag a namespace:
kubectl prompt add -n production - Flag a cluster:
kubectl prompt add -c my-cluster - List flagged environments:
kubectl prompt list - Clear flagged environments:
kubectl prompt remove - View description:
kubectl prompt
- Search for Docker images
- If you have a Google Container Registry, run
kubectl image -cto set it as the default for future searches. - If not configured with
-c, searches will use Docker Hub by default. - Adding
-pwill search Docker Hub, regardless of any default. - Sorts Docker Hub images by number of stars.
- Sorts GCR images by upload date.
Example:
kubectl image kafka
- Outputs the node name, node IP, and Pod IP for a given resource. Search is performed against common labels (defaults to app, name, component)
Example: kubectl ip cassandra
- Displays total uptime for pods/statefulsets in the current namespace.
Example: kubectl uptime