kubectl-plugins
A collection of plugins for kubectl integration (for Kubectl versions >= 1.12.0)
A portion of these plugins are available on krew as well.
Note
- 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.
Install on Linux/Mac
git clone https://github.com/jordanwilson230/kubectl-plugins.git
cd kubectl-plugins
./install-plugins.sh
source ~/.bash_profile
To Uninstall
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
kubectl ssh
- 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 namespace
option 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 |
kubectl switch
- 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 |
kubectl prompt
- 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
kubectl image
- Search for Docker images
- If you have a Google Container Registry, run
kubectl image -c
to set it as the default for future searches. - If not configured with
-c
, searches will use Docker Hub by default. - Adding
-p
will 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
kubectl ip
- 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
kubectl uptime
- Displays total uptime for pods/statefulsets in the current namespace.
Example: kubectl uptime