Skip to content
Permalink
Browse files

Clean up kubectl install page (#13578)

* [WIP] Clean up kubectl install page

Fixes issue #13577

* Update install-kubectl.md

Addresses @zacharaysarah and @jaredbhatti's comments.

Minor language Improvements:
- Deleted unnecessary adverbs
- Used fewer words where possible

Next pass will include deeper edits, with careful attention to the kubectl autocompletion section

* Update install-kubectl.md
  • Loading branch information...
cody-clark authored and k8s-ci-robot committed Apr 15, 2019
1 parent 88e69f3 commit 37e59b898d404129eeffaa966212a6eb2fb971ee
Showing with 106 additions and 104 deletions.
  1. +106 −104 content/en/docs/tasks/tools/install-kubectl.md
@@ -12,21 +12,91 @@ card:
---

{{% capture overview %}}
Use the Kubernetes command-line tool, [kubectl](/docs/user-guide/kubectl/), to deploy and manage applications on Kubernetes. Using kubectl, you can inspect cluster resources; create, delete, and update components; look at your new cluster; and bring up example apps.
The Kubernetes command-line tool, [kubectl](/docs/user-guide/kubectl/), allows you to run commands against Kubernetes clusters. You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs. For a complete list of kubectl operations, see [Overview of kubectl](/docs/reference/kubectl/overview/).
{{% /capture %}}

{{% capture prerequisites %}}
You must use a kubectl version that is within one minor version difference of your cluster. For example, a v1.2 client should work with v1.1, v1.2, and v1.3 master. Using the latest version of kubectl helps avoid unforeseen issues.
{{% /capture %}}


{{% capture steps %}}

## Install kubectl
## Install kubectl binary with curl

{{< tabs name="kubectl_install_curl" >}}
{{% tab name="Linux" %}}

1. Download the latest release with the command:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
```

To download a specific version, replace the `$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` portion of the command with the specific version.

For example, to download version {{< param "fullversion" >}} on Linux, type:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/linux/amd64/kubectl
```

2. Make the kubectl binary executable.

Here are a few methods to install kubectl.
```
chmod +x ./kubectl
```

### Install kubectl binary using native package management
3. Move the binary in to your PATH.

```
sudo mv ./kubectl /usr/local/bin/kubectl
```
{{% /tab %}}
{{% tab name="macOS" %}}
1. Download the latest release:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl
```

To download a specific version, replace the `$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` portion of the command with the specific version.

For example, to download version {{< param "fullversion" >}} on macOS, type:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/darwin/amd64/kubectl
```

2. Make the kubectl binary executable.

```
chmod +x ./kubectl
```

3. Move the binary in to your PATH.

```
sudo mv ./kubectl /usr/local/bin/kubectl
```
{{% /tab %}}
{{% tab name="Windows" %}}
1. Download the latest release {{< param "fullversion" >}} from [this link](https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe).

Or if you have `curl` installed, use this command:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe
```

To find out the latest stable version (for example, for scripting), take a look at [https://storage.googleapis.com/kubernetes-release/release/stable.txt](https://storage.googleapis.com/kubernetes-release/release/stable.txt).

2. Add the binary in to your PATH.
{{% /tab %}}
{{< /tabs >}}

## Install kubectl on Linux

### Install using native package management

{{< tabs name="kubectl_install" >}}
{{< tab name="Ubuntu, Debian or HypriotOS" codelang="bash" >}}
@@ -50,22 +120,24 @@ yum install -y kubectl
{{< /tabs >}}


### Install with snap on Ubuntu
### Install with snap

If you are on Ubuntu or one of other Linux distributions that support [snap](https://snapcraft.io/docs/core/install) package manager, kubectl is available as a [snap](https://snapcraft.io/) application.
If you are on Ubuntu or another Linux distribution that support [snap](https://snapcraft.io/docs/core/install) package manager, kubectl is available as a [snap](https://snapcraft.io/) application.

1. Switch to the snap user and run the installation command:

```
sudo snap install kubectl --classic
```

2. Test to ensure the version you installed is sufficiently up-to-date:
2. Test to ensure the version you installed is up-to-date:

```
kubectl version
```

## Install kubectl on macOS

### Install with Homebrew on macOS

If you are on macOS and using [Homebrew](https://brew.sh/) package manager, you can install kubectl with Homebrew.
@@ -76,7 +148,7 @@ If you are on macOS and using [Homebrew](https://brew.sh/) package manager, you
brew install kubernetes-cli
```

2. Test to ensure the version you installed is sufficiently up-to-date:
2. Test to ensure the version you installed is up-to-date:

```
kubectl version
@@ -93,12 +165,14 @@ If you are on macOS and using [Macports](https://macports.org/) package manager,
sudo port install kubectl
```

2. Test to ensure the version you installed is sufficiently up-to-date:
2. Test to ensure the version you installed is up-to-date:

```
kubectl version
```

## Install kubectl on Windows

### Install with Powershell from PSGallery

If you are on Windows and using [Powershell Gallery](https://www.powershellgallery.com/) package manager, you can install and update kubectl with Powershell.
@@ -114,17 +188,17 @@ If you are on Windows and using [Powershell Gallery](https://www.powershellgalle

The installer creates `$HOME/.kube` and instructs it to create a config file

2. Test to ensure the version you installed is sufficiently up-to-date:
2. Test to ensure the version you installed is up-to-date:

```
kubectl version
```

{{< note >}}Updating the installation is performed by rerunning the two commands listed in step 1.{{< /note >}}

### Install on Windows using Chocolatey or scoop
### Install on Windows using Chocolatey or Scoop

To install kubectl on Windows you can use either [Chocolatey](https://chocolatey.org) package manager or [scoop](https://scoop.sh) command-line installer.
To install kubectl on Windows you can use either [Chocolatey](https://chocolatey.org) package manager or [Scoop](https://scoop.sh) command-line installer.
{{< tabs name="kubectl_win_install" >}}
{{% tab name="choco" %}}

@@ -137,7 +211,7 @@ To install kubectl on Windows you can use either [Chocolatey](https://chocolatey

{{% /tab %}}
{{< /tabs >}}
2. Test to ensure the version you installed is sufficiently up-to-date:
2. Test to ensure the version you installed is up-to-date:

```
kubectl version
@@ -168,7 +242,7 @@ To install kubectl on Windows you can use either [Chocolatey](https://chocolatey

{{< note >}}Edit the config file with a text editor of your choice, such as Notepad.{{< /note >}}

### Download as part of the Google Cloud SDK
## Download as part of the Google Cloud SDK

You can install kubectl as part of the Google Cloud SDK.

@@ -179,93 +253,16 @@ You can install kubectl as part of the Google Cloud SDK.
gcloud components install kubectl
```

3. Test to ensure the version you installed is sufficiently up-to-date:
3. Test to ensure the version you installed is up-to-date:

```
kubectl version
```

### Install kubectl binary using curl

{{< tabs name="kubectl_install_curl" >}}
{{% tab name="macOS" %}}
1. Download the latest release:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl
```

To download a specific version, replace the `$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` portion of the command with the specific version.

For example, to download version {{< param "fullversion" >}} on macOS, type:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/darwin/amd64/kubectl
```

2. Make the kubectl binary executable.

```
chmod +x ./kubectl
```

3. Move the binary in to your PATH.
## Verifying kubectl configuration

```
sudo mv ./kubectl /usr/local/bin/kubectl
```
{{% /tab %}}
{{% tab name="Linux" %}}
In order for kubectl to find and access a Kubernetes cluster, it needs a [kubeconfig file](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/), which is created automatically when you create a cluster using `kube-up.sh` or successfully deploy a Minikube cluster. By default, kubectl configuration is located at `~/.kube/config`.

1. Download the latest release with the command:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
```

To download a specific version, replace the `$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` portion of the command with the specific version.

For example, to download version {{< param "fullversion" >}} on Linux, type:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/linux/amd64/kubectl
```

2. Make the kubectl binary executable.

```
chmod +x ./kubectl
```

3. Move the binary in to your PATH.

```
sudo mv ./kubectl /usr/local/bin/kubectl
```
{{% /tab %}}
{{% tab name="Windows" %}}
1. Download the latest release {{< param "fullversion" >}} from [this link](https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe).

Or if you have `curl` installed, use this command:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe
```

To find out the latest stable version (for example, for scripting), take a look at [https://storage.googleapis.com/kubernetes-release/release/stable.txt](https://storage.googleapis.com/kubernetes-release/release/stable.txt).

2. Add the binary in to your PATH.
{{% /tab %}}
{{< /tabs >}}



## Configure kubectl

In order for kubectl to find and access a Kubernetes cluster, it needs a [kubeconfig file](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/), which is created automatically when you create a cluster using kube-up.sh or successfully deploy a Minikube cluster. See the [getting started guides](/docs/setup/) for more about creating clusters. If you need access to a cluster you didn't create, see the [Sharing Cluster Access document](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/).
By default, kubectl configuration is located at `~/.kube/config`.

### Check the kubectl configuration
Check that kubectl is properly configured by getting the cluster state:

```shell
@@ -279,14 +276,16 @@ If you see a message similar to the following, kubectl is not correctly configur
The connection to the server <server-name:port> was refused - did you specify the right host or port?
```

For example, if you are intending to run a Kubernetes cluster on your laptop (locally), you will need a tool like minikube to be installed first and then re-run the commands stated above.
For example, if you are intending to run a Kubernetes cluster on your laptop (locally), you will need a tool like Minikube to be installed first and then re-run the commands stated above.

If kubectl cluster-info returns the url response but you can't access your cluster, to check whether it is configured properly, use:

```shell
kubectl cluster-info dump
```

## Optional kubectl configurations

### Enabling shell autocompletion

kubectl provides autocompletion support for Bash and Zsh, which can save you a lot of typing!
@@ -297,13 +296,13 @@ Below are the procedures to set up autocompletion for Bash (including the differ

{{% tab name="Bash on Linux" %}}

#### Introduction
### Introduction

The kubectl completion script for Bash can be generated with the command `kubectl completion bash`. Sourcing the completion script in your shell enables kubectl autocompletion.

However, the completion script depends on [**bash-completion**](https://github.com/scop/bash-completion), which means that you have to install this software first (you can test if you have bash-completion already installed by running `type _init_completion`).

#### Install bash-completion
### Install bash-completion

bash-completion is provided by many package managers (see [here](https://github.com/scop/bash-completion#installation)). You can install it with `apt-get install bash-completion` or `yum install bash-completion`, etc.

@@ -317,7 +316,7 @@ source /usr/share/bash-completion/bash_completion

Reload your shell and verify that bash-completion is correctly installed by typing `type _init_completion`.

#### Enable kubectl autocompletion
### Enable kubectl autocompletion

You now need to ensure that the kubectl completion script gets sourced in all your shell sessions. There are two ways in which you can do this:

@@ -348,13 +347,13 @@ Both approaches are equivalent. After reloading your shell, kubectl autocompleti
macOS includes Bash 3.2 by default. The kubectl completion script requires Bash 4.1+ and doesn't work with Bash 3.2. A possible way around this is to install a newer version of Bash on macOS (see instructions [here](https://itnext.io/upgrading-bash-on-macos-7138bd1066ba)). The below instructions only work if you are using Bash 4.1+.
{{< /warning >}}

#### Introduction
### Introduction

The kubectl completion script for Bash can be generated with the command `kubectl completion bash`. Sourcing the completion script in your shell enables kubectl autocompletion.

However, the completion script depends on [**bash-completion**](https://github.com/scop/bash-completion), which means that you have to install this software first (you can test if you have bash-completion already installed by running `type _init_completion`).

#### Install bash-completion
### Install bash-completion

You can install bash-completion with Homebrew:

@@ -375,7 +374,7 @@ export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d

Reload your shell and verify that bash-completion is correctly installed by typing `type _init_completion`.

#### Enable kubectl autocompletion
### Enable kubectl autocompletion

You now need to ensure that the kubectl completion script gets sourced in all your shell sessions. There are multiple ways in which you can do this:

@@ -425,6 +424,9 @@ compinit
{{% /capture %}}

{{% capture whatsnext %}}
[Learn how to launch and expose your application.](/docs/tasks/access-application-cluster/service-access-application-cluster/)
* [Install Minikube](/docs/tasks/tools/install-minikube/)
* See the [getting started guides](/docs/setup/) for more about creating clusters.
* [Learn how to launch and expose your application.](/docs/tasks/access-application-cluster/service-access-application-cluster/)
* If you need access to a cluster you didn't create, see the [Sharing Cluster Access document](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/).
* Read the [kubectl reference docs](/docs/reference/kubectl/kubectl/)
{{% /capture %}}

0 comments on commit 37e59b8

Please sign in to comment.
You can’t perform that action at this time.