197 lines
5.8 KiB
Markdown
197 lines
5.8 KiB
Markdown
---
|
|
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.
|
|
|
|
## Install kubectl on Windows
|
|
|
|
The following methods exist for installing kubectl on Windows:
|
|
|
|
- [Install kubectl binary with curl on Windows](#install-kubectl-binary-with-curl-on-windows)
|
|
- [Install on Windows using Chocolatey, Scoop, or winget](#install-nonstandard-package-tools)
|
|
|
|
### 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:
|
|
|
|
```powershell
|
|
curl.exe -LO "https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe"
|
|
```
|
|
|
|
{{< note >}}
|
|
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 >}}
|
|
|
|
1. Validate the binary (optional)
|
|
|
|
Download the `kubectl` checksum file:
|
|
|
|
```powershell
|
|
curl.exe -LO "https://dl.k8s.io/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe.sha256"
|
|
```
|
|
|
|
Validate the `kubectl` binary against the checksum file:
|
|
|
|
- Using Command Prompt to manually compare `CertUtil`'s output to the checksum file downloaded:
|
|
|
|
```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
|
|
$($(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:
|
|
|
|
```cmd
|
|
kubectl version --client
|
|
```
|
|
Or use this for detailed view of version:
|
|
|
|
```cmd
|
|
kubectl version --client --output=yaml
|
|
```
|
|
|
|
{{< note >}}
|
|
[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 >}}
|
|
|
|
### Install on Windows using Chocolatey, Scoop, or winget {#install-nonstandard-package-tools}
|
|
|
|
1. To install kubectl on Windows you can use either [Chocolatey](https://chocolatey.org) package manager, [Scoop](https://scoop.sh) command-line installer, or [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/) package manager.
|
|
|
|
{{< tabs name="kubectl_win_install" >}}
|
|
{{% tab name="choco" %}}
|
|
```powershell
|
|
choco install kubernetes-cli
|
|
```
|
|
{{% /tab %}}
|
|
{{% tab name="scoop" %}}
|
|
```powershell
|
|
scoop install kubectl
|
|
```
|
|
{{% /tab %}}
|
|
{{% tab name="winget" %}}
|
|
```powershell
|
|
winget install -e --id Kubernetes.kubectl
|
|
```
|
|
{{% /tab %}}
|
|
{{< /tabs >}}
|
|
|
|
1. Test to ensure the version you installed is up-to-date:
|
|
|
|
```powershell
|
|
kubectl version --client
|
|
```
|
|
|
|
1. Navigate to your home directory:
|
|
|
|
```powershell
|
|
# If you're using cmd.exe, run: cd %USERPROFILE%
|
|
cd ~
|
|
```
|
|
|
|
1. Create the `.kube` directory:
|
|
|
|
```powershell
|
|
mkdir .kube
|
|
```
|
|
|
|
1. Change to the `.kube` directory you just created:
|
|
|
|
```powershell
|
|
cd .kube
|
|
```
|
|
|
|
1. Configure kubectl to use a remote Kubernetes cluster:
|
|
|
|
```powershell
|
|
New-Item config -type file
|
|
```
|
|
|
|
{{< note >}}
|
|
Edit the config file with a text editor of your choice, such as Notepad.
|
|
{{< /note >}}
|
|
|
|
## Verify kubectl configuration
|
|
|
|
{{< include "included/verify-kubectl.md" >}}
|
|
|
|
## Optional kubectl configurations and plugins
|
|
|
|
### 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.
|
|
|
|
{{< include "included/optional-kubectl-configs-pwsh.md" >}}
|
|
|
|
### Install `kubectl convert` plugin
|
|
|
|
{{< include "included/kubectl-convert-overview.md" >}}
|
|
|
|
1. Download the latest release with the command:
|
|
|
|
```powershell
|
|
curl.exe -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:
|
|
|
|
```powershell
|
|
curl.exe -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:
|
|
|
|
```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
|
|
$($(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 the plugin is successfully installed.
|
|
|
|
```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" >}}
|