这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

内含的工具

在页面 kubectl-installs-*.md 中包含的代码片段

1 - kubectl-convert 概述

一个 kubectl 插件,允许你将清单从一个 Kubernetes API 版本转换到不同的版本。

一个 Kubernetes 命令行工具 kubectl 的插件,允许你将清单在不同 API 版本间转换。 这对于将清单迁移到新的 Kubernetes 发行版上未被废弃的 API 版本时尤其有帮助。 更多信息请访问 迁移到非弃用 API

2 - Linux 系统中的 Bash 自动补全功能

Linux 系统中 Bash 自动补全功能的一些可选配置。

简介

kubectl 的 Bash 补全脚本可以用命令 kubectl completion bash 生成。 在 Shell 中导入(Sourcing)补全脚本,将启用 kubectl 自动补全功能。

然而,补全脚本依赖于工具 bash-completion, 所以要先安装它(可以用命令 type _init_completion 检查 bash-completion 是否已安装)。

安装 bash-completion

很多包管理工具均支持 bash-completion(参见这里)。 可以通过 apt-get install bash-completionyum install bash-completion 等命令来安装它。

上述命令将创建文件 /usr/share/bash-completion/bash_completion,它是 bash-completion 的主脚本。 依据包管理工具的实际情况,你需要在 ~/.bashrc 文件中手工导入此文件。

要查看结果,请重新加载你的 Shell,并运行命令 type _init_completion。 如果命令执行成功,则设置完成,否则将下面内容添加到文件 ~/.bashrc 中:

source /usr/share/bash-completion/bash_completion

重新加载 Shell,再输入命令 type _init_completion 来验证 bash-completion 的安装状态。

启动 kubectl 自动补全功能

Bash

你现在需要确保一点:kubectl 补全脚本已经导入(sourced)到 Shell 会话中。 可以通过以下两种方法进行设置:


echo 'source <(kubectl completion bash)' >>~/.bashrc


kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null

如果 kubectl 有关联的别名,你可以扩展 Shell 补全来适配此别名:

echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc

两种方式的效果相同。重新加载 Shell 后,kubectl 自动补全功能即可生效。 若要在当前 Shell 会话中启用 Bash 补全功能,需要运行 exec bash 命令:

exec bash

3 - PowerShell 自动补全

powershell 自动补全的一些可选配置。

使用命令 kubectl completion powershell 生成 PowerShell 的 kubectl 自动补全脚本。

如果需要自动补全在所有 shell 会话中生效,请将以下命令添加到 $PROFILE 文件中:

kubectl completion powershell | Out-String | Invoke-Expression

此命令将在每次 PowerShell 启动时重新生成自动补全脚本。你还可以将生成的自动补全脚本添加到 $PROFILE 文件中。

如果需要将自动补全脚本直接添加到 $PROFILE 文件中,请在 PowerShell 终端运行以下命令:

kubectl completion powershell >> $PROFILE

完成上述操作后重启 shell,kubectl的自动补全就可以工作了。

4 - zsh 自动补全

zsh 自动补全的一些可选配置

kubectl 通过命令 kubectl completion zsh 生成 Zsh 自动补全脚本。 在 shell 中导入(Sourcing)该自动补全脚本,将启动 kubectl 自动补全功能。

为了在所有的 shell 会话中实现此功能,请将下面内容加入到文件 ~/.zshrc 中。

source <(kubectl completion zsh)

如果你为 kubectl 定义了别名,kubectl 自动补全将自动使用它。

重新加载 shell 后,kubectl 自动补全功能将立即生效。

如果你收到 2: command not found: compdef 这样的错误提示,那请将下面内容添加到 ~/.zshrc 文件的开头:

autoload -Uz compinit
compinit

5 - 后续内容

安装 kubectl 之后,还可以做些什么?