---
title: 在 Windows 上安装 kubectl
content_type: task
weight: 10
card:
  name: tasks
  weight: 20
  title: Windows 安装 kubectl
---
<!-- 
reviewers:
- mikedanese
title: Install and Set Up kubectl on Windows
content_type: task
weight: 10
card:
  name: tasks
  weight: 20
  title: Install kubectl on Windows
-->

## {{% heading "prerequisites" %}}

<!-- 
You must use a kubectl version that is within one minor version difference of your cluster. For example, a v{{< skew currentVersion >}} client can communicate with v{{< skew currentVersionAddMinor -1 >}}, v{{< skew currentVersionAddMinor 0 >}}, and v{{< skew currentVersionAddMinor 1 >}} control planes.
Using the latest compatible version of kubectl helps avoid unforeseen issues.
-->
kubectl 版本和集群版本之间的差异必须在一个小版本号内。
例如:v{{< skew currentVersion >}} 版本的客户端能与 v{{< skew currentVersionAddMinor -1 >}}、
v{{< skew currentVersionAddMinor 0 >}} 和 v{{< skew currentVersionAddMinor 1 >}} 版本的控制面通信。
用最新兼容版的 kubectl 有助于避免不可预见的问题。

<!-- 
## Install kubectl on Windows
-->
## 在 Windows 上安装 kubectl {#install-kubectl-on-windows}

<!-- 
The following methods exist for installing kubectl on Windows:
-->
在 Windows 系统中安装 kubectl 有如下几种方法:

- [用 curl 在 Windows 上安装 kubectl](#install-kubectl-binary-with-curl-on-windows)
- [在 Windows 上用 Chocolatey 或 Scoop 安装](#install-on-windows-using-chocolatey-or-scoop)

<!-- 
### Install kubectl binary with curl on Windows
-->
### 用 curl 在 Windows 上安装 kubectl {#install-kubectl-binary-with-curl-on-windows}

<!-- 
1. Download the [latest release {{< param "fullversion" >}}](https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe).

   Or if you have `curl` installed, use this command:
-->
1. 下载 [最新发行版 {{< param "fullversion" >}}](https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe)。

   如果你已安装了 `curl`,也可以使用此命令:

   ```powershell
   curl -LO "https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe"
   ```

   <!-- 
      To find out the latest stable version (for example, for scripting), take a look at [https://dl.k8s.io/release/stable.txt](https://dl.k8s.io/release/stable.txt).
   -->
   {{< note >}}
   要想找到最新稳定的版本(例如:为了编写脚本),可以看看这里 [https://dl.k8s.io/release/stable.txt](https://dl.k8s.io/release/stable.txt)。
   {{< /note >}}

   <!-- 
   1. Validate the binary (optional)

      Download the `kubectl` checksum file:
   -->
1. 验证该可执行文件(可选步骤)
   
   下载 `kubectl` 校验和文件:

   ```powershell
   curl -LO "https://dl.k8s.io/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe.sha256"
   ```

   <!-- 
   Validate the `kubectl` binary against the checksum file:
   -->
   基于校验和文件,验证 `kubectl` 的可执行文件:

   <!-- 
   - Using Command Prompt to manually compare `CertUtil`'s output to the checksum file downloaded:
   -->
   - 在命令行环境中,手工对比 `CertUtil` 命令的输出与校验和文件:

     ```cmd
     CertUtil -hashfile kubectl.exe SHA256
     type kubectl.exe.sha256
     ```

   <!-- 
   - Using PowerShell to automate the verification using the `-eq` operator to get a `True` or `False` result:
   -->
   - 用 PowerShell 自动验证,用运算符 `-eq` 来直接取得 `True` 或 `False` 的结果:

     ```powershell
     $($(CertUtil -hashfile .\kubectl.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl.exe.sha256)
     ```

   <!-- 
   1. Append or prepend the `kubectl` binary folder to your `PATH` environment variable.

   1. Test to ensure the version of `kubectl` is the same as downloaded:
      Or use this for detailed view of version:
   -->
1. 将 `kubectl` 二进制文件夹追加或插入到你的 `PATH` 环境变量中。

1. 测试一下,确保此 `kubectl` 的版本和期望版本一致:

   ```cmd
   kubectl version --client
   ```
   或者使用下面命令来查看版本的详细信息:
   ```cmd
   kubectl version --client --output=yaml
   ```


<!-- 
[Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/#kubernetes) adds its own version of `kubectl` to `PATH`.
If you have installed Docker Desktop before, you may need to place your `PATH` entry before the one added by the Docker Desktop installer or remove the Docker Desktop's `kubectl`.
-->
{{< note >}}
[Windows 版的 Docker Desktop](https://docs.docker.com/docker-for-windows/#kubernetes) 
将其自带版本的 `kubectl` 添加到 `PATH`。
如果你之前安装过 Docker Desktop,可能需要把此 `PATH` 条目置于 Docker Desktop 安装的条目之前,
或者直接删掉 Docker Desktop 的 `kubectl`。
{{< /note >}}

<!-- 
### Install on Windows using Chocolatey or Scoop
-->
### 在 Windows 上用 Chocolatey 或 Scoop 安装 {#install-on-windows-using-chocolatey-or-scoop}

<!-- 
1. To install kubectl on Windows you can use either [Chocolatey](https://chocolatey.org) package manager or [Scoop](https://scoop.sh) command-line installer.
-->
1. 要在 Windows 上安装 kubectl,你可以使用包管理器 [Chocolatey](https://chocolatey.org) 
   或是命令行安装器 [Scoop](https://scoop.sh)。

   {{< tabs name="kubectl_win_install" >}}
   {{% tab name="choco" %}}
   ```powershell
   choco install kubernetes-cli
   ```
   {{% /tab %}}
   {{% tab name="scoop" %}}
   ```powershell
   scoop install kubectl
   ```
   {{% /tab %}}
   {{< /tabs >}}

   <!-- 
   1. Test to ensure the version you installed is up-to-date:
   -->
2. 测试一下,确保安装的是最新版本:

   ```powershell
   kubectl version --client
   ```

   <!-- 
   1. Navigate to your home directory:
   -->
3. 导航到你的 home 目录:

   <!-- 
   # If you're using cmd.exe, run: cd %USERPROFILE%
   -->
   ```powershell
   # 当你用 cmd.exe 时,则运行: cd %USERPROFILE%
   cd ~
   ```

   <!-- 
   1. Create the `.kube` directory:
   -->
4. 创建目录 `.kube`:

   ```powershell
   mkdir .kube
   ```

   <!-- 
   1. Change to the `.kube` directory you just created:
   -->
5. 切换到新创建的目录 `.kube` 

   ```powershell
   cd .kube
   ```

   <!-- 
   1. Configure kubectl to use a remote Kubernetes cluster:
   -->
6. 配置 kubectl,以接入远程的 Kubernetes 集群:

   ```powershell
   New-Item config -type file
   ```

<!-- 
Edit the config file with a text editor of your choice, such as Notepad.
-->
{{< note >}}
编辑配置文件,你需要先选择一个文本编辑器,比如 Notepad。
{{< /note >}}

<!-- 
## Verify kubectl configuration
-->
## 验证 kubectl 配置 {#verify-kubectl-configration}

{{< include "included/verify-kubectl.md" >}}

<!-- 
## Optional kubectl configurations and plugins

### Enable shell autocompletion
-->
## kubectl 可选配置和插件 {#optional-kubectl-configurations}

### 启用 shell 自动补全功能 {#enable-shell-autocompletion}

<!--
kubectl provides autocompletion support for Bash, Zsh, Fish, and PowerShell, which can save you a lot of typing.

Below are the procedures to set up autocompletion for PowerShell.
-->
kubectl 为 Bash、Zsh、Fish 和 PowerShell 提供自动补全功能,可以为你节省大量的输入。

下面是设置 PowerShell 自动补全功能的操作步骤。

{{< include "included/optional-kubectl-configs-pwsh.md" >}}

<!--
### Install `kubectl convert` plugin
-->
### 安装 `kubectl convert` 插件

{{< include "included/kubectl-convert-overview.md" >}}

<!--
1. Download the latest release with the command:
-->
1. 用以下命令下载最新发行版:

   ```powershell
   curl -LO "https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl-convert.exe"
   ```

<!--
1. Validate the binary (optional)

   Download the `kubectl-convert` checksum file:
-->
1. 验证该可执行文件(可选步骤)
   
   下载 `kubectl-convert` 校验和文件:

   ```powershell
   curl -LO "https://dl.k8s.io/{{< param "fullversion" >}}/bin/windows/amd64/kubectl-convert.exe.sha256"
   ```

   <!--
   Validate the `kubectl-convert` binary against the checksum file:

   - Using Command Prompt to manually compare `CertUtil`'s output to the checksum file downloaded:
   -->
   基于校验和,验证 `kubectl-convert` 的可执行文件:

   - 用提示的命令对 `CertUtil` 的输出和下载的校验和文件进行手动比较。
   
     ```cmd
     CertUtil -hashfile kubectl-convert.exe SHA256
     type kubectl-convert.exe.sha256
     ```

   <!--
   - Using PowerShell to automate the verification using the `-eq` operator to get a `True` or `False` result:
   -->
   - 使用 PowerShell `-eq` 操作使验证自动化,获得 `True` 或者 `False` 的结果:
   
     ```powershell
     $($(CertUtil -hashfile .\kubectl-convert.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl-convert.exe.sha256)
     ```

<!--
1.  Append or prepend the `kubectl-convert` binary folder to your `PATH` environment variable.

1. Verify plugin is successfully installed
-->
1. 将 `kubectl-convert` 二进制文件夹附加或添加到你的 `PATH` 环境变量中。

1. 验证插件是否安装成功

   ```shell
   kubectl convert --help
   ```

   <!--
   If you do not see an error, it means the plugin is successfully installed.
   -->
   如果你没有看到任何错误就代表插件安装成功了。

## {{% heading "whatsnext" %}}

{{< include "included/kubectl-whats-next.md" >}}