Kubectl-fzf:kubectl自动补全插件
第一步 激活kubectl自带指令补全插件
kubectl 通过命令 kubectl completion zsh 生成 Zsh 自动补全脚本。 在 Shell 中导入(Sourcing)该自动补全脚本,将启动 kubectl 自动补全功能。
在zsh 中,只需将下面内容添加到启动文件~/.zshrc中
1 | |
激活后,在输入kubectl指令时,按tab键即可提供简单的自动补全功能。

如果使用其他终端,可以查看文档:在 Linux 系统中安装并设置 kubectl | Kubernetes
第二步 安装模糊搜索 fzf
1 | |
检查~./zshrc是否被添加了以下语句:
1 | |
更新之后,即可使用ctrl+T 或输入**后按tab唤起模糊搜索。

对于特定指令,fzf有针对性支持,比如ssh,会自动查找本机路由表:

操作手册:fzf: Shell Integration | junegunn.choi.
第三步 安装Kubectl-fzf
使用Go安装:
1 | |
确保 $GOPATH/bin 包含在你的 $PATH 环境变量中:
1 | |
编辑~/.zshrc,添加如下语句并更新终端:
1 | |
此时尝试使用自动补全,不会有任何结果,需要启动kubectl-fzf-server来监控k8s信息。
kubectl-fzf-server分为本地版本和pod版本。本地版本自己运行在自己的机器上,pod版本运行在集群中。本地版本使用如下指令运行:
1 | |
该服务会将集群信息缓存在本地 /tmp/kubectl_fzf_cache 目录中。
添加如下参数可以修改kubectl-fzf-server所监听的端口:
1 | |
使用如下环境变量使kubectl-fzf监听对应端口:
1 | |
新开一个终端,键入以下内容后,结果如图
1 | |

选择目标pod后,会自动将pod和namespace信息添加到终端的输入:

也可以将kubectl-fzf-server设为守护进程或k8s pod,具体见:bonnefoa/kubectl-fzf: A fast kubectl autocompletion with fzf