diff --git a/content/zh/docs/tasks/tools/install-kubectl.md b/content/zh/docs/tasks/tools/install-kubectl.md index 577e48d40fc..0684759e596 100644 --- a/content/zh/docs/tasks/tools/install-kubectl.md +++ b/content/zh/docs/tasks/tools/install-kubectl.md @@ -23,64 +23,95 @@ card: - 在 Kubernetes 上使用 Kubernetes 命令行工具 [kubectl](/docs/user-guide/kubectl/) 部署和管理应用程序。使用 kubectl,您可以检查集群资源;创建、删除和更新组件;查看您的新集群;并启动实例应用程序。 - +在 Kubernetes 上使用 Kubernetes 命令行工具 [kubectl](/zh/docs/reference/kubectl/kubectl/) +部署和管理应用程序。 +使用 kubectl,你可以检查集群资源;创建、删除和更新组件;查看你的新集群;并启动实例应用程序。 ## {{% heading "prerequisites" %}} -您必须使用与集群小版本号差别为一的 kubectl 版本。例如,1.2版本的客户端应该与1.1版本、1.2版本和1.3版本的主节点一起使用。使用最新版本的 kubectl 有助于避免无法预料的问题。 - - +你必须使用与集群小版本号差别为一的 kubectl 版本。 +例如,1.2 版本的客户端应该与 1.1 版本、1.2 版本和 1.3 版本的主节点一起使用。 +使用最新版本的 kubectl 有助于避免无法预料的问题。 -## 安装 kubectl +## 在 Linux 上安装 kubectl {#install-kubectl-on-linux} -以下是一些安装 kubectl 的方法。 +### 在 Linux 上使用 curl 安装 kubectl 可执行文件 -## 使用本地软件包管理软件安装 kubectl 二进制文件 +1. 使用下面命令下载最新的发行版本: + + ``` + curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" + ``` + + + 要下载特定版本, `$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` + 部分替换为指定版本。 + + 例如,要下载 Linux 上的版本 {{< param "fullversion" >}},输入: + + ``` + curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/linux/amd64/kubectl + ``` + + +2. 标记 kubectl 文件为可执行: + + ``` + chmod +x ./kubectl + ``` + + +3. 将文件放到 PATH 路径下: + + ``` + sudo mv ./kubectl /usr/local/bin/kubectl + ``` + + +4. 测试你所安装的版本是最新的: + + ``` + kubectl version --client + ``` + + +### 使用原生包管理器安装 {#install-using-native-package-management} {{< tabs name="kubectl_install" >}} -{{< tab name="Ubuntu, Debian or HypriotOS" codelang="bash" >}} +{{< tab name="Ubuntu、Debian 或 HypriotOS" codelang="bash" >}} sudo apt-get update && sudo apt-get install -y apt-transport-https curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubectl {{< /tab >}} -{{< tab name="CentOS, RHEL or Fedora" codelang="bash" >}}cat < /etc/yum.repos.d/kubernetes.repo +{{< tab name="CentOS、RHEL 或 Fedora" codelang="bash" >}} +cat < /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 @@ -93,616 +124,765 @@ yum install -y kubectl {{< /tab >}} {{< /tabs >}} - -## 在 Ubuntu 上使用 snap 安装 kubectl +### 使用其他包管理器安装 {#install-using-other-package-management} -如果您使用的是 Ubuntu 或其他支持 [snap](https://snapcraft.io/docs/core/install) 软件包管理器的Linux发行版,kubectl 可以作为一个 [snap](https://snapcraft.io/) 应用程序使用。 +{{< tabs name="other_kubectl_install" >}} +{{% tab name="Snap" %}} + +如果你使用 Ubuntu 或者其他支持 [snap](https://snapcraft.io/docs/core/install) +包管理器的 Linux 发行版,kubeclt 可以作为 [Snap](https://snapcraft.io) +应用来安装: -1. 切换到 snap 用户并运行安装命令: +```shell +snap install kubectl --classic - ``` - sudo snap install kubectl --classic - ``` +kubectl version --client +``` -2. 测试以确保您安装的版本是最新的: +{{% /tab %}} - ``` - kubectl version --client - ``` +{{% tab name="Homebrew" %}} + +如果你在使用 Linux 且使用 [Homebrew](https://docs.brew.sh/Homebrew-on-Linux) 包管理器, +kubectl 也可以用这种方式[安装](https://docs.brew.sh/Homebrew-on-Linux#install)。 + +```shell +brew install kubectl + +kubectl version --client +``` + +{{% /tab %}} + +{{< /tabs >}} +## 在 macOS 上安装 kubectl + +### 在 macOS 上使用 curl 安装 kubectl 可执行文件 + + +1. 下载最新发行版本: + + ```bash + curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl" + ``` + + + 要下载特定版本,可将上面命令中的`$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` + 部分替换成你想要的版本。 + + 例如,要在 macOS 上安装版本 {{< param "fullversion" >}},输入: + + ```bash + curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/darwin/amd64/kubectl + ``` + + + 将二进制文件标记为可执行: + + ```bash + chmod +x ./kubectl + ``` + +3. 将二进制文件放入 PATH 目录下: + + ```bash + sudo mv ./kubectl /usr/local/bin/kubectl + ``` + + +4. 测试以确保所安装的版本是最新的: + + ```bash + kubectl version --client + ``` + + -## 在 macOS 上用 Homebrew 安装 kubectl +### 在 macOS 上使用 Homebrew 安装 {#install-with-homebrew-on-macos} -如果您使用的是 macOS 系统并使用 [Homebrew](https://brew.sh/) 包管理器,您可以通过 Homebrew 安装 kubectl。 +如果你在 macOS 上且使用 [Homebrew](https://brew.sh/) 包管理器, +你可以使用 Homebrew 来安装 kubectl。 + 1. 运行安装命令: - - ``` - brew install kubernetes-cli - ``` -2. 测试以确保您安装的版本是最新的: - + ``` + brew install kubernetes-cli + ``` + + +2. 测试以确保你安装的版本是最新的: + ``` kubectl version --client ``` - - ## 在 macOS 上用 Macports 安装 kubectl -如果您使用的是 macOS 系统并使用 [Macports](https://macports.org/) 包管理器,您可以通过 Macports 安装 kubectl。 +如果你使用的是 macOS 系统并使用 [Macports](https://macports.org/) 包管理器,你可以通过 Macports 安装 kubectl。 + 1. 运行安装命令: - - ``` - port install kubectl - ``` -2. 测试以确保您安装的版本是最新的: + ``` + port install kubectl + ``` - ``` - kubectl version --client - ``` + +2. 测试以确保你安装的版本是最新的: + + ``` + kubectl version --client + ``` + + +## 在 Windows 上安装 kubectl {#install-kubectl-on-windows} + +### 在 Windows 上使用 curl 安装 kubectl 二进制文件 + + +1. 从[此链接](https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe) + 下载最新发型版本。 + + 或者如何你安装了 `curl`,使用下面的命令: + + ```bash + curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe + ``` + + + 要了解最新的稳定版本(例如,出于脚本编写目的),可查看 + [https://storage.googleapis.com/kubernetes-release/release/stable.txt](https://storage.googleapis.com/kubernetes-release/release/stable.txt)。 + + +2. 将二进制文件放到 PATH 目录下。 + + +3. 测试以确定所下载的 `kubectl` 版本是正确的的: + + ```bash + kubectl version --client + ``` + + +{{< note >}} +[Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/#kubernetes) +会在 PATH 中添加自己的 `kubectl` 程序。 +如果你之前安装过 Docker Desktop,你可能需要将新安装的 PATH 项放到 Docker Desktop +安装程序所添加的目录之前,或者干脆删除 Docker Desktop 所安装的 `kubectl`。 +{{< /note >}} -## 从 PSGallery 通过 Powershell 安装 kubectl +## 使用 PowerShell 从 PSGallery 安装 kubectl -如果您使用的是 Windows 系统并使用 [Powershell Gallery](https://www.powershellgallery.com/) 软件包管理器,您可以使用 Powershell 安装和更新 kubectl。 - -1. 运行安装命令(确保指定 `DownloadLocation`): - - ``` - Install-Script -Name install-kubectl -Scope CurrentUser -Force - install-kubectl.ps1 [-DownloadLocation ] - ``` - - {{< note >}} - 如果你没有指定 `DownloadLocation`,那么 `kubectl` 将安装在用户的临时目录中。 - {{< /note >}} - - 安装程序创建 `$ HOME/.kube` 并指示它创建配置文件 - -2. 测试以确保您安装的版本是最新的: - ``` - kubectl version --client - ``` - - {{< note >}} - 通过重新运行步骤1中列出的两个命令来执行更新安装。 - {{< /note >}} +如果你使用的是 Windows 系统并使用 [Powershell Gallery](https://www.powershellgallery.com/) +软件包管理器,你可以使用 Powershell 安装和更新 kubectl。 -## 在 Windows 上用 Chocolatey 安装 kubectl +1. 运行安装命令(确保指定 `DownloadLocation`): -如果您使用的是 Windows 系统并使用 [Chocolatey](https://chocolatey.org) 包管理器,您可以使用 Chocolatey 安装 kubectl。 + ``` + Install-Script -Name install-kubectl -Scope CurrentUser -Force + install-kubectl.ps1 [-DownloadLocation ] + ``` -1. 运行安装命令: + + {{< note >}} + 如果你没有指定 `DownloadLocation`,那么 `kubectl` 将安装在用户的临时目录中。 + {{< /note >}} - ``` - choco install kubernetes-cli - ``` + + 安装程序创建 `$ HOME/.kube` 目录,并指示它创建配置文件 -2. 测试以确保您安装的版本是最新的: + +2. 测试以确保你安装的版本是最新的: - ``` - kubectl version --client - ``` -3. 切换到 %HOME% 目录: + ``` + kubectl version --client + ``` - 例如:`cd C:\users\yourusername` + +{{< note >}} +通过重新运行步骤 1 中列出的两个命令可以更新安装。 +{{< /note >}} -4. 创建 .kube 目录: + +1. 要在 Windows 上用 [Chocolatey](https://chocolatey.org) 或者 + [Scoop](https://scoop.sh) 命令行安装程序安装 kubectl: -5. 切换到刚刚创建的 .kube 目录: + {{< tabs name="kubectl_win_install" >}} + {{% tab name="choco" %}} + ```powershell + choco install kubernetes-cli + ``` + {{% /tab %}} + {{% tab name="scoop" %}} + ```powershell + scoop install kubectl + ``` + {{% /tab %}} + {{< /tabs >}} - ``` - cd .kube - ``` + +2. 测试以确保你安装的版本是最新的: + ``` + kubectl version --client + ``` + + +3. 切换到你的 HOME 目录: + + ```powershell + # 如果你在使用 cmd.exe,运行 cd %USERPROFILE% + cd ~ + ``` + + +4. 创建 `.kube` 目录: + + ```powerhsell + mkdir .kube + ``` + + +5. 进入到刚刚创建的 `.kube` 目录: + + ```powershell + cd .kube + ``` + + 6. 配置 kubectl 以使用远程 Kubernetes 集群: - ``` - New-Item config -type file - ``` + ```powershell + New-Item config -type file + ``` + + +{{< note >}} +使用你喜欢的文本编辑器,例如 Notepad,编辑此配置文件。 +{{< /note >}} - {{< note >}} - 使用您偏爱的编辑器编辑配置文件,例如 Notepad。 - {{< /note >}} ## 将 kubectl 作为 Google Cloud SDK 的一部分下载 kubectl 可以作为 Google Cloud SDK 的一部分进行安装。 -1. 安装 [Google Cloud SDK](https://cloud.google.com/sdk/). + +1. 安装 [Google Cloud SDK](https://cloud.google.com/sdk/)。 2. 运行以下命令安装 `kubectl`: - ``` - gcloud components install kubectl - ``` - -3. 测试以确保您安装的版本是最新的: - - ``` - kubectl version --client - ``` + ``` + gcloud components install kubectl + ``` -## 通过 curl 命令安装 kubectl 可执行文件 - -{{< tabs name="kubectl_install_curl" >}} -{{% tab name="macOS" %}} -1. 通过以下命令下载 kubectl 的最新版本: - - ``` - curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl - ``` - - 若需要下载特定版本的 kubectl,请将上述命令中的 `$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` 部分替换成为需要下载的 kubectl 的具体版本即可。 - - 例如,如果需要下载 {{< param "fullversion" >}} 版本在 macOS 系统上,需要使用如下命令: - - ``` - curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/darwin/amd64/kubectl - ``` - -2. 修改所下载的 kubectl 二进制文件为可执行模式。 - - ``` - chmod +x ./kubectl - ``` - -3. 将 kubectl 可执行文件放置到你的 PATH 目录下。 - - - ``` - sudo mv ./kubectl /usr/local/bin/kubectl - ``` -{{% /tab %}} -{{% tab name="Linux" %}} - -1. 通过以下命令下载 kubectl 的最新版本: - - ``` - curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl - ``` - - 若需要下载特定版本的 kubectl,请将上述命令中的 `$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` 部分替换成为需要下载的 kubectl 的具体版本即可。 - - 例如,如果需要下载用于 Linux 的 {{< param "fullversion" >}} 版本,需要使用如下命令: - - ``` - curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/linux/amd64/kubectl - ``` - -2. 修改所下载的 kubectl 二进制文件为可执行模式。 - - ``` - chmod +x ./kubectl - ``` - -3. 将 kubectl 可执行文件放置到你的 PATH 目录下。 - - ``` - sudo mv ./kubectl /usr/local/bin/kubectl - ``` -{{% /tab %}} -{{% tab name="Windows" %}} -1. 从[本链接](https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe)下载 kubectl 的最新版 {{< param "fullversion" >}}。 - - 或者如果您已经在系统中安装了 `curl` 工具,也可以通过以下命令下载: - - ``` - curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe - ``` - -若要查找最新的稳定版本(例如脚本等),请查看 [https://storage.googleapis.com/kubernetes-release/release/stable.txt](https://storage.googleapis.com/kubernetes-release/release/stable.txt). - -2. 将 kubectl 可执行文件添加到你的 PATH 目录。 -{{% /tab %}} -{{< /tabs >}} - +3. 测试以确保你安装的版本是最新的: + ``` + kubectl version --client + ``` -## 配置 kubectl +## 验证 kubectl 配置 {#verifying-kubectl-configuration} -kubectl 需要一个 [kubeconfig 配置文件](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)使其找到并访问 Kubernetes 集群。当您使用 kube-up.sh 脚本创建 Kubernetes 集群或者部署 Minikube 集群时,会自动生成 kubeconfig 配置文件。请参阅[入门指南](/docs/setup/)以了解更多创建集群相关的信息。如果您需要访问一个并非由您创建的集群,请参阅[如何共享集群的访问](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)。默认情况下,kubectl 配置文件位于 `~/.kube/config`。 +kubectl 需要一个 +[kubeconfig 配置文件](/zh/docs/concepts/configuration/organize-cluster-access-kubeconfig/) +使其找到并访问 Kubernetes 集群。 +当你使用 kube-up.sh 脚本创建 Kubernetes 集群或者部署 Minikube 集群时,会自动生成 kubeconfig 配置文件。 -## 检查 kubectl 的配置 通过获取集群状态检查 kubectl 是否被正确配置: ```shell kubectl cluster-info ``` -如果您看到一个 URL 被返回,那么 kubectl 已经被正确配置,能够正常访问您的 Kubernetes 集群。 -如果您看到类似以下的信息被返回,那么 kubectl 没有被正确配置,无法正常访问您的 Kubernetes 集群。 + +如果你看到一个 URL 被返回,那么 kubectl 已经被正确配置,能够正常访问你的 Kubernetes 集群。 + +如果你看到类似以下的信息被返回,那么 kubectl 没有被正确配置,无法正常访问你的 Kubernetes 集群。 ```shell The connection to the server was refused - did you specify the right host or port? ``` -例如,如果您打算在笔记本电脑(本地)上运行 Kubernetes 集群,则需要首先安装 minikube 等工具,然后重新运行上述命令。 + +例如,如果你打算在笔记本电脑(本地)上运行 Kubernetes 集群,则需要首先安装 minikube 等工具,然后重新运行上述命令。 + +如果 kubectl cluster-info 能够返回 URL 响应,但你无法访问你的集群,可以使用下面的命令检查配置是否正确: ```shell kubectl cluster-info dump ``` -## 启用 shell 自动补全功能 +## 可选的 kubectl 配置 -kubectl 支持自动补全功能,可以节省大量输入! +### 启用 shell 自动补全功能 -自动补全脚本由 kubectl 产生,您仅需要在您的 shell 配置文件中调用即可。 +kubectl 为 Bash 和 Zsh 支持自动补全功能,可以节省大量输入! -以下仅提供了使用命令补全的常用示例,更多详细信息,请查阅 `kubectl completion -h` 帮助命令的输出。 +下面是设置 Bash 与 Zsh 下自动补齐的过程(包括 Linux 与 macOS 的差异)。 + +{{< tabs name="kubectl_autocompletion" >}} + +{{% tab name="Linux 上的 Bash" %}} -### Linux 系统,使用 bash -在 CentOS Linux系统上,您可能需要安装默认情况下未安装的 bash-completion 软件包。 +#### 介绍 -```shell -yum install bash-completion -y +用于 Bash 的 kubectl 自动补齐脚本可以用 `kubectl completion bash` 命令生成。 +在 Shell 环境中引用自动补齐脚本就可以启用 kubectl 自动补齐。 + +不过,补齐脚本依赖于 [**bash-completion**](https://github.com/scop/bash-completion) 软件包, +这意味着你必须先安装 bash-completion(你可以通过运行 `type _init_completion`)来测试是否 +你已经安装了这个软件)。 + + +### 安装 bash-completion + +很多包管理器都提供 bash-completion(参见[这里](https://github.com/scop/bash-completion#installation))。 +你可以通过 `apt-get install bash-completion` 或 `yum install bash-completion` 来安装。 + +上述命令会创建 `/usr/share/bash-completion/bash_completion`,也就是 bash-completion 的主脚本。 +取决于所用的包管理器,你可能必须在你的 `~/.bashrc` 中通过 `source` 源引此文件。 + +要搞清楚这一点,可以重新加载你的 Shell 并运行 `type _init_completion`。 +如果命令成功,一切就绪;否则你就需要将下面的内容添加到你的 `~/.bashrc` +文件中: + +```bash +source /usr/share/bash-completion/bash_completion ``` -执行 `source <(kubectl completion bash)` 命令在您目前正在运行的 shell 中开启 kubectl 自动补全功能。 +之后,重新加载你的 Shell 并运行 `type _init_completion` 来检查 bash-completion 是否已 +正确安装。 -可以将上述命令添加到 shell 配置文件中,这样在今后运行的 shell 中将自动开启 kubectl 自动补全: + +### 启用 kubectl 自动补齐 + +你现在需要确定在你的所有 Shell 会话中都源引了 kubectl 自动补齐脚本。 +实现这点有两种方式: + + +- 在 `~/.bashrc` 文件中源引自动补齐脚本 + + ```bash + echo 'source <(kubectl completion bash)' >>~/.bashrc + ``` + + +- 将自动补齐脚本添加到目录 `/etc/bash_completion.d`: + + ```bash + kubectl completion bash >/etc/bash_completion.d/kubectl + ``` + + +如果你为 kubectl 命令设置了别名(alias),你可以扩展 Shell 补齐,使之能够与别名一起使用: + +```bash +echo 'alias k=kubectl' >>~/.bashrc +echo 'complete -F __start_kubectl k' >>~/.bashrc ``` -```shell -## If running Bash 3.2 included with macOS -brew install bash-completion -## or, if running Bash 4.1+ + +{{< note >}} +bash-completion 会自动源引 `/etc/bash_completion.d` 下的所有自动补齐脚本。 +{{< /note >}} + + +两种方法是等价的。重新加载 Shell 之后,kubectl 的自动补齐应该能够使用了。 + +{{% /tab %}} + +{{% tab name="macOS 上的 Bash" %}} + + +### 介绍 + +用于 Bash 的 kubectl 自动补齐脚本可以用 `kubectl completion bash` 命令生成。 +在 Shell 环境中引用自动补齐脚本就可以启用 kubectl 自动补齐。 +不过,补齐脚本依赖于 [**bash-completion**](https://github.com/scop/bash-completion) 软件包, +你必须预先安装。 + + +{{< warning>}} +`bash-completion` 有两个版本,v1 和 v2。 +v1 是用于 Bash 3.2 版本的(macOS 上的默认配置),v2 是用于 Bash 4.1 以上版本的。 +`kubectl` 补齐脚本 *无法* 在 v1 版本的 bash-completion 和 Bash 3.2 上使用, +需要 **bash-completion v2** 和 **Bash 4.1 以上版本**。 +因此,为了在 macOS 上正常使用 kubectl 自动补齐,你需要安装并使用 Bash 4.1+ +版本([*相关指南*](https://itnext.io/upgrading-bash-on-macos-7138bd1066ba))。 +下面的指令假定你在使用 Bash 4.1+(也就是说 Bash 4.1 及以上版本)。 +{{< /warning >}} + + +### 升级 Bash {#upgrade-bash} + +这里的命令假定你使用的是 Bash 4.1+。你可以通过下面的命令来检查 Bash 版本: + +```bash +echo $BASH_VERSION +``` + + +如果版本很老,你可以使用 Homebrew 来安装或升级: + +```bash +brew install bash +``` + + +重新加载 Shell 并验证你使用的版本是期望的版本: + +```bash +echo $BASH_VERSION $SHELL +``` + + +Homebrew 通常安装 Bash 到 `/usr/local/bin/bash`。 + + +### 安装 bash-completion + +{{< note >}} +如前所述,这里的指令假定你使用的是 Bash 4.1+,这意味着你会安装 bash-completion +的 v2 版本(与此相对,在 Bash 3.2 版本中的 bash-completion v1 是 kubectl +无法使用的。 +{{< /note >}} + +你可以通过输入 `type _init_completion` 来测试是否 bash-completion v2 已经安装。 +如果没有,可以用 Homebrew 来安装: + +```bash brew install bash-completion@2 ``` -Follow the "caveats" section of brew's output to add the appropriate bash completion path to your local .bashrc. - -If you installed kubectl using the [Homebrew instructions](#install-with-homebrew-on-macos) then kubectl completion should start working immediately. - -If you have installed kubectl manually, you need to add kubectl autocompletion to the bash-completion: - -```shell -kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl -``` - -The Homebrew project is independent from Kubernetes, so the bash-completion packages are not guaranteed to work. + -### macOS 系统,使用 bash -macOS 系统需要先通过 [Homebrew](https://brew.sh/) 安装 bash-completion: +就像命令的输出所提示的,你应该将下面的内容添加到 `~/.bash_profile` 文件中: -```shell -## 如果您运行的是 macOS 自带的 Bash 3.2,请运行: -brew install bash-completion -## 如果您使用的是 Bash 4.1+,请运行: -brew install bash-completion@2 +```bash +export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d" +[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh" ``` -请根据 Homebrew 输出的”注意事项(caveats)”部分的内容将 bash-completion 的路径添加到本地 .bashrc 文件中。 - -如果您是按照 [Homebrew 指示](#jump)中的步骤安装的 kubectl,那么无需其他配置,kubectl 的自动补全功能已经被启用。 - -如果您是手工下载并安装的 kubectl,那么您需要将 kubectl 自动补全添加到 bash-completion: - -```shell -kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl -``` - -由于 Homebrew 项目与 Kubernetes 无关,所以并不能保证 bash-completion 总能够支持 kubectl 的自动补全功能。 - -### 使用 Zsh -如果您使用的是 zsh,请编辑 ~/.zshrc 文件并添加以下代码以启用 kubectl 自动补全功能。 +重新加载你的 Shell 并运行 `type _init_completion`,验证 bash-completion v2 +被正确安装。 + +### 启用 kubectl 自动补齐 + +你现在需要确保在你的所有 Shell 会话中都源引了 kubectl 自动补齐脚本。 +实现这点有两种方式: + + +- 在 `~/.bash_profile` 文件中源引自动补齐脚本 + + ```bash + echo 'source <(kubectl completion bash)' >>~/.bash_profile + ``` + + +- 将自动补齐脚本添加到目录 `/usr/local/etc/bash_completion.d`: + + ```bash + kubectl completion bash >//usr/local/etc/bash_completion.d/kubectl + ``` + + +- 如果你为 kubectl 命令设置了别名(alias),你可以扩展 Shell 补齐,使之能够与别名一起使用: + + ```bash + echo 'alias k=kubectl' >>~/.bash_profile + echo 'complete -F __start_kubectl k' >>~/.bash_profile + ``` + + +- 如果你是所有 Homebrew 来安装 kubectl(如[前文](#install-with-homebrew-on-macos)所述), + kubectl 补齐脚本应该已经位于 `/usr/local/etc/bash_completion.d/kubectl` 目录下。 + 在这种情况下,你就不用做任何操作了。 + + +{{< note >}} +Homebrew 安装 bash-completion v2 时会源引 `BASH_COMPLETION_COMPAT_DIR` 目录下的所有 +文件,这是为什么后面两种方法也可行的原因。 +{{< /note >}} + + +在任何一种情况下,重新加载 Shell 之后,kubectl 的自动补齐应该可以工作了。 + +{{% /tab %}} + +{{% tab name="Zsh" %}} + + +Zsh 的 kubectl 补齐脚本可通过 `kubectl completion zsh` 命令来生成。 +在 Shell 环境中引用自动补齐脚本就可以启用 kubectl 自动补齐。 ```shell -if [ $commands[kubectl] ]; then - source <(kubectl completion zsh) -fi +source <(kubectl completion zsh) ``` -如果您使用的是 [Oh-My-Zsh](http://ohmyz.sh/),请编辑 ~/.zshrc 文件并更新 `plugins=` 行以包含 kubectl 插件。 + +如果你为 kubectl 命令设置了别名(alias),你可以扩展 Shell 补齐,使之能够与别名一起使用: ```shell -plugins=(kubectl) +echo 'alias k=kubectl' >>~/.zshrc +echo 'complete -F __start_kubectl k' >>~/.zshrc ``` + +重新加载 Shell 之后,kubectl 的自动补齐应该可以工作了。 + + +如果你看到类似 `complete:13: command not found: compdef` 这种错误信息, +可以将下面的命令添加到你的 `~/.zshrc` 文件的文件头: + +```zsh +autoload -Uz compinit +compinit +``` + +{{% /tab %}} + +{{< /tabs >}} ## {{% heading "whatsnext" %}} -[了解如何启动并对外暴露您的应用程序](/docs/tasks/access-application-cluster/service-access-application-cluster/) - +* [安装 Minikube](/zh/docs/tasks/tools/install-minikube/) +* 参阅[入门指南](/zh/docs/setup/),了解创建集群相关的信息 +* 了解如何[启动和暴露你的应用](/zh/docs/tasks/access-application-cluster/service-access-application-cluster/) +* 如果你需要访问别人创建的集群,参考[共享集群访问文档](/zh/docs/tasks/access-application-cluster/configure-access-multiple-clusters/). +* 阅读 [kubectl 参考文档](/zh/docs/reference/kubectl/kubectl/)