写点什么

k8s 插件管理工具之 krew 使用

用户头像
雪雷
关注
发布于: 2021 年 06 月 02 日
k8s 插件管理工具之krew使用

一 简介

Krew 是 类似于系统的 apt、dnf 或者 brew 的 kubectl 插件包管理工具,利用其可以轻松的完成 kubectl 插件的全上面周期管理,包括搜索、下载、卸载等。


kubectl 其工具已经比较完善,但是对于一些个性化的命令,其宗旨是希望开发者能以独立而紧张形式发布自定义的 kubectl 子命令,插件的开发语言不限,需要将最终的脚步或二进制可执行程序以kubectl- 的前缀命名,然后放到 PATH 中即可,可以使用kubectl plugin list查看目前已经安装的插件。

二 安装配置

  • 确保节点安装有 git 工具


# yum -y install git
复制代码


  • 安装


(  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)
复制代码


  • 添加环境变量


export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"source ~/.bashrc
复制代码


  • 确认插件安装


 # kubectl plugin list/usr/local/bin/kubectl-debug/usr/local/bin/kubectl-v1.10.11/usr/local/bin/kubectl-v1.20.0/Users/xuel/.krew/bin/kubectl-df_pv/Users/xuel/.krew/bin/kubectl-krew// 或者
复制代码

三 使用

kubectl krew update                # 更新kubectl krew search               # 显示所有插件kubectl krew install view-secret  # 安装名为view-secret的插件kubectl view-secret               # 使用该插件kubectl krew upgrade              # 升级安装的插件kubectl krew remove view-secret   # 卸载插件
复制代码


krew 自身也作为一个“kubectl 插件”,因此,可以使用命令kubectl krew upgrade命令来升级 krew。

3.1 安装插件

kubectl 无法直接查看 pv 的大小相关信息,可以安装一个查看 pv 大小的插件


# kubectl krew install df-pvUpdated the local copy of plugin index.Installing plugin: df-pvInstalled plugin: df-pv\ | Use this plugin: |   kubectl df-pv | Documentation: |   https://github.com/yashbhutwala/kubectl-df-pv
# kubectl krew listPLUGIN VERSIONdf-pv v0.2.7krew v0.4.1
复制代码

3.2 使用

# kubectl df-pv
复制代码


3.3 卸载

kubectl krew uninstall df-pv
复制代码

四 其他

K8s 社区为方便其他开发这开发插件,提供了一个https://github.com/kubernetes/cli-runtime项目,便于我们使用 Go 语言编写 kubectl 插件。


官方也给了一个使用 Go 编写 kubectl 插件的例子https://github.com/kubernetes/sample-cli-plugin


krew 仅仅兼容 kubectl v1.12 或更高版本。

参考链接

  • https://krew.sigs.k8s.io/docs/user-guide/quickstart/

  • https://github.com/kubernetes-sigs/krew/blob/master/docs/KREW_ARCHITECTURE.md

  • https://github.com/kubernetes-sigs/krew

  • https://blog.51cto.com/u_3241766/2452592

发布于: 2021 年 06 月 02 日阅读数: 13
用户头像

雪雷

关注

stay hungry stay foolish 2019.08.16 加入

Devops,python,shell,云原生,云架构,kubernetes https://github.com/redhatxl

评论

发布
暂无评论
k8s 插件管理工具之krew使用