1. krew简介
Krew itself is a kubectl plugin that is installed and updated via Krew (yes, Krew self-hosts).
Krew 本身是一个 kubectl 的插件,同时也是一个 kubectl 的插件包管理器。
Krew 帮助我们发现插件,在我们的机器上安装和管理它们。它类似于 apt、dnf 或 brew 等工具。
当前,Krew 上提供了 200 多个 kubectl 插件。
参考文档:
2. 安装配置krew
2.1. 安装krew
2.1.1. MacOS/Linux中通用安装方法
1 2 3 4 5 6 7 8 9
| ( 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/')" && KREW="krew-${OS}_${ARCH}" && curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" && tar zxvf "${KREW}.tar.gz" && ./"${KREW}" install krew )
|
2.1.2. MacOS中安装方法
1 2 3 4 5
| uname | tr '[:upper:]' '[:lower:]' wget https://github.com/kubernetes-sigs/krew/releases/download/v0.4.3/krew.yaml wget https://github.com/kubernetes-sigs/krew/releases/download/v0.4.3/krew-darwin_amd64.tar.gz tar -xzvf krew-darwin_amd64.tar.gz ./krew-darwin_amd64 install --manifest=krew.yaml --archive=krew-darwin_amd64.tar.gz
|
2.1.3. Linux中安装方法
1 2 3 4 5
| uname | tr '[:upper:]' '[:lower:]' wget https://github.com/kubernetes-sigs/krew/releases/download/v0.4.3/krew.yaml wget https://github.com/kubernetes-sigs/krew/releases/download/v0.4.3/krew-linux_amd64.tar.gz tar -xzvf krew-linux_amd64.tar.gz ./krew-linux_amd64 install --manifest=krew.yaml --archive=krew-linux_amd64.tar.gz
|
2.2. 添加krew到环境变量
1、~/.bashrc
或者~/.bash_profile
中添加PATH
1
| export PATH="${PATH}:${HOME}/.krew/bin"
|
2、使环境变量生效
2.3. 验证安装
3. 使用krew
3.1. 更新本地插件索引
3.2. 查找插件
查找特定插件,比如 neat
1
| kubectl krew search neat
|
查看所有可获得的插件
3.3. 安装插件
以安装neat为例
1 2
| kubectl krew install neat kubectl neat -h
|
3.4. 查看已安装的插件
4. 后记
除了使用krew安装kubectl插件之外,还有另外一个更加直接的办法安装kubectl插件:下载插件的二进制文件,和kubectl文件放到一起。
以安装neat为例:
1、下载并解压neat插件
1 2
| wget https://github.com/itaysk/kubectl-neat/releases/download/v2.0.3/kubectl-neat_linux_amd64.tar.gz tar -xzvf kubectl-neat_linux_amd64.tar.gz
|
2、和kubectl放到同一个目录
1 2
| which kubectl mv kubectl-neat /usr/bin
|
3、使用neat插件
1 2
| kubectl neat -h kubectl get pod test -oyaml | kubectl neat
|