k8s kubectl plugins - krew 安装部署
install
Linux/Mac
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/krew.tar.gz" &&
tar zxvf krew.tar.gz &&
KREW=./krew-"${OS}_${ARCH}" &&
"$KREW" install krew
)
在.bashrc or .zshrc
中添加
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
# kubectl krew
krew is the kubectl plugin manager.
You can invoke krew through kubectl: "kubectl krew [command]..."
Usage:
kubectl krew [command]
Available Commands:
help Help about any command
index Manage custom plugin indexes
info Show information about an available plugin
install Install kubectl plugins
list List installed kubectl plugins
search Discover kubectl plugins
uninstall Uninstall plugins
update Update the local copy of the plugin index
upgrade Upgrade installed plugins to newer versions
version Show krew version and diagnostics
Flags:
-h, --help help for krew
-v, --v Level number for the log level verbosity
Use "kubectl krew [command] --help" for more information about a command.
Mac
brew install kubectx
use
kubectl krew update
kubectl krew search
kubectl krew install whoami
kubectl whoami
kubectl krew uninstall whoami
开发一个 plugin 示例
#!/bin/bash
# optional argument handling
if [[ "$1" == "version" ]]
then
echo "1.0.0"
exit 0
fi
# optional argument handling
if [[ "$1" == "config" ]]
then
echo "$KUBECONFIG"
exit 0
fi
echo "I am a plugin named kubectl-foo"
- Using a plugin
To use a plugin, make the plugin executable:
sudo chmod +x ./kubectl-foo
and place it anywhere in your PATH:
sudo mv ./kubectl-foo /usr/local/bin
You may now invoke your plugin as a kubectl command:
$ kubectl foo
I am a plugin named kubectl-foo
All args and flags are passed as-is to the executable:
$ kubectl foo version
浏览 kubernetes 对象层次结构作为树插件
kubectl krew install tree
kubectl tree --help
wget https://github.com/ahmetb/kubectl-tree/releases/download/v0.4.3/kubectl-tree_v0.4.3_linux_amd64.tar.gz
mv xxx /usr/local/bin/kubectl-tree
$ kubectl krew install lineage
$ kubectl lineage --version
# Install from Source
$ git clone git@github.com:tohjustin/kube-lineage.git && cd kube-lineage
$ make install
$ kube-lineage --version
F&Q
error unable to find any kubectl plugins in your path
mv xxx /usr/local/bin/kubectl-xxx
chmod +x /usr/local/bin/kubectl-xxx