kubectl 的插件管理工具krew
阅读原文时间:2021年09月29日阅读:1

k8s的命令行工具kubectl 对于玩k8s 的人来说是必备工具。kubectl插件机制在Kubernetes 1.14宣布稳定,进入GA状态。kubectl的插件机制就是希望允许开发者以独立的二进制形式发布自定义的kubectl子命令。kubectl插件可以使用任意语言开发,如可以是一个bash、python的脚本,也可以是其他语言开发编译的二进制可执行文件,只要最终将脚本或二进制可执行文件以kubectl-的前缀放到PATH中即可。使用kubectl plugin list可以在PATH中查看有哪些插件。

krew是kubectl插件的管理器,使用krew可以轻松的查找、安装和管理kubectl插件。krew自己也作为一个kubectl插件存在。官网的安装文档非常的清晰,也很友善。大家可以移步:https://krew.sigs.k8s.io/docs/user-guide/setup/install/  。我是直接下载的文件安装的,安装前确认目标机器上已经安装了git,krew在更新本地插件索引时会用到git。

查看所有插件

插件安装

kubectl krew install xxxx

常用插件

1. ns 插件

ns是一个可以在kubernetes集群里面切换命名空间的插件。你是否厌烦了每次敲kubectl命令时都要加上-n 的参数,又不想在config里面维护大量context。那么ns插件就是来解救你的,它会在切换命名空间时修改当前config里面的context到当前命名空间,这样你就不用再加-n参数了。

安装:

kubectl krew install ns

2. images 插件

images插件允许你查看当前命名空间(甚至整个集群)Workload中使用的镜像信息。当前支持几个功能如下:

列出所有命名空间workload的镜像信息

指定字段展示镜像的关联k8s信息

指定单独的命名空间展示镜像

安装:kubectl krew install images

3. view-secret 插件

大部分情况下,我们secret里面的信息会事先经过base64编码后存储。当我们需要从secret里面读取内容在做decode

kubectl get secret -o=jsonpath='{.data.password}' |base64 -d

但是我们的目标能少打命令绝不多敲一个字母。那么这个时候view-secret就可以帮助到我们。

安装:

kubectl krew install view-secret

4. view-allocations 插件

对于想快速知道当前你的kubernetes集群资源分布情况,view-allocations这个插件它一定能够帮助。view-allocations当前能够根据resource,node和pod三个维度展示集群当前的资源分配状况。值得一提的是如果你的kubernetes集群有GPU节点,采用view-allocations也可以快速查到你的GPU显卡分配状态