--- reviewers: - mikedanese title: 安装并设置 kubectl content_template: templates/task weight: 10 --- {{% capture overview %}} 在 Kubernetes 上使用 Kubernetes 命令行工具 [kubectl](/docs/user-guide/kubectl/) 部署和管理应用程序。使用 kubectl,您可以检查集群资源;创建、删除和更新组件;查看您的新集群;并启动实例应用程序。 {{% /capture %}} {{% capture prerequisites %}} 您必须使用与集群小版本号差别为一的 kubectl 版本。例如,1.2版本的客户端应该与1.1版本、1.2版本和1.3版本的主节点一起使用。使用最新版本的 kubectl 有助于避免无法预料的问题。 {{% /capture %}} {{% capture steps %}} ## 安装 kubectl 以下是一些安装 kubectl 的方法。 ## 使用本地软件包管理软件安装 kubectl 二进制文件 {{< tabs name="kubectl_install" >}} {{< tab name="Ubuntu, Debian or 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 [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF yum install -y kubectl {{< /tab >}} {{< /tabs >}} ## 在 Ubuntu 上使用 snap 安装 kubectl 如果您使用的是 Ubuntu 或其他支持 [snap](https://snapcraft.io/docs/core/install) 软件包管理器的Linux发行版,kubectl 可以作为一个 [snap](https://snapcraft.io/) 应用程序使用。 1. 切换到 snap 用户并运行安装命令: ``` sudo snap install kubectl --classic ``` 2. 测试以确保您安装的版本是最新的: ``` kubectl version ``` ## 在 macOS 上用 Homebrew 安装 kubectl 如果您使用的是 macOS 系统并使用 [Homebrew](https://brew.sh/) 包管理器,您可以通过 Homebrew 安装 kubectl。 1. 运行安装命令: ``` brew install kubernetes-cli ``` 2. 测试以确保您安装的版本是最新的: ``` kubectl version ``` ## 在 macOS 上用 Macports 安装 kubectl 如果您使用的是 macOS 系统并使用 [Macports](https://macports.org/) 包管理器,您可以通过 Macports 安装 kubectl。 1. 运行安装命令: ``` port install kubectl ``` 2. 测试以确保您安装的版本是最新的: ``` kubectl version ``` ## 从 PSGallery 通过 Powershell 安装 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 ``` {{< note >}} 通过重新运行步骤1中列出的两个命令来执行更新安装。 {{< /note >}} ## 在 Windows 上用 Chocolatey 安装 kubectl 如果您使用的是 Windows 系统并使用 [Chocolatey](https://chocolatey.org) 包管理器,您可以使用 Chocolatey 安装 kubectl。 1. 运行安装命令: ``` choco install kubernetes-cli ``` 2. 测试以确保您安装的版本是最新的: ``` kubectl version ``` 3. 切换到 %HOME% 目录: 例如:`cd C:\users\yourusername` 4. 创建 .kube 目录: ``` mkdir .kube ``` 5. 切换到刚刚创建的 .kube 目录: ``` cd .kube ``` 6. 配置 kubectl 以使用远程 Kubernetes 集群: ``` New-Item config -type file ``` {{< note >}} 使用您偏爱的编辑器编辑配置文件,例如 Notepad。 {{< /note >}} ## 将 kubectl 作为 Google Cloud SDK 的一部分下载 kubectl 可以作为 Google Cloud SDK 的一部分进行安装。 1. 安装 [Google Cloud SDK](https://cloud.google.com/sdk/). 2. 运行以下命令安装 `kubectl`: ``` gcloud components install kubectl ``` 3. 测试以确保您安装的版本是最新的: ``` kubectl version ``` ## 通过 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 >}} ## 配置 kubectl 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 的配置 通过获取集群状态检查 kubectl 是否被正确配置: ```shell kubectl cluster-info ``` 如果您看到一个 URL 被返回,那么 kubectl 已经被正确配置,能够正常访问您的 Kubernetes 集群。 如果您看到类似以下的信息被返回,那么 kubectl 没有被正确配置,无法正常访问您的 Kubernetes 集群。 ```shell The connection to the server was refused - did you specify the right host or port? ``` 例如,如果您打算在笔记本电脑(本地)上运行 Kubernetes 集群,则需要首先安装 minikube 等工具,然后重新运行上述命令。 如果 kubectl cluster-info 能够返回 url 响应,但您无法访问您的集群,可以使用下面的命令检查配置是否正确: ```shell kubectl cluster-info dump ``` ## 启用 shell 自动补全功能 kubectl 支持自动补全功能,可以节省大量输入! 自动补全脚本由 kubectl 产生,您仅需要在您的 shell 配置文件中调用即可。 以下仅提供了使用命令补全的常用示例,更多详细信息,请查阅 `kubectl completion -h` 帮助命令的输出。 ### Linux 系统,使用 bash 在 CentOS Linux系统上,您可能需要安装默认情况下未安装的 bash-completion 软件包。 ```shell yum install bash-completion -y ``` 执行 `source <(kubectl completion bash)` 命令在您目前正在运行的 shell 中开启 kubectl 自动补全功能。 可以将上述命令添加到 shell 配置文件中,这样在今后运行的 shell 中将自动开启 kubectl 自动补全: ```shell echo "source <(kubectl completion bash)" >> ~/.bashrc ``` ### macOS 系统,使用 bash macOS 系统需要先通过 [Homebrew](https://brew.sh/) 安装 bash-completion: ```shell ## 如果您运行的是 macOS 自带的 Bash 3.2,请运行: brew install bash-completion ## 如果您使用的是 Bash 4.1+,请运行: brew install bash-completion@2 ``` 请根据 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 if [ $commands[kubectl] ]; then source <(kubectl completion zsh) fi ``` 如果您使用的是 [Oh-My-Zsh](http://ohmyz.sh/),请编辑 ~/.zshrc 文件并更新 `plugins=` 行以包含 kubectl 插件。 ```shell plugins=(kubectl) ``` {{% /capture %}} {{% capture whatsnext %}} [了解如何启动并对外暴露您的应用程序](/docs/tasks/access-application-cluster/service-access-application-cluster/) {{% /capture %}}