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中通用安装方法
| 12
 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中安装方法
| 12
 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中安装方法
| 12
 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为例
| 12
 
 | kubectl krew install neatkubectl neat -h
 
 | 
3.4. 查看已安装的插件
4. 后记
除了使用krew安装kubectl插件之外,还有另外一个更加直接的办法安装kubectl插件:下载插件的二进制文件,和kubectl文件放到一起。
以安装neat为例:
1、下载并解压neat插件
| 12
 
 | wget https://github.com/itaysk/kubectl-neat/releases/download/v2.0.3/kubectl-neat_linux_amd64.tar.gztar -xzvf kubectl-neat_linux_amd64.tar.gz
 
 | 
2、和kubectl放到同一个目录
| 12
 
 | which kubectl mv kubectl-neat /usr/bin
 
 | 
3、使用neat插件
| 12
 
 | kubectl neat -hkubectl get pod test -oyaml | kubectl neat
 
 |