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