website/docs/tasks/tools/install-kubectl.md

4.9 KiB

assignees title redirect_from
bgrant0607
mikedanese
Installing and Setting Up kubectl
/docs/tasks/kubectl/install/
/docs/tasks/kubectl/install.html
/docs/user-guide/prereqs/
/docs/user-guide/prereqs.html

{% capture overview %} Use the Kubernetes command-line tool, kubectl, to deploy and manage applications on Kubernetes. Using kubectl, you can inspect cluster resources; create, delete, and update components; and look at your new cluster and bring up example apps. {% endcapture %}

{% capture prerequisites %} Use a version of kubectl that is the same version as your server or later. Using an older kubectl with a newer server might produce validation errors. {% endcapture %}

Here are a few methods to install kubectl. {% capture steps %}

Install kubectl binary via curl

  1. Download the latest release with the command:
# OS X
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl

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

# Windows
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/windows/amd64/kubectl.exe

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 1.4.6 on MacOS, type: curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.4.6/bin/darwin/amd64/kubectl

  1. Make the kubectl binary executable.
chmod +x ./kubectl
  1. Move the binary in to your PATH.
sudo mv ./kubectl /usr/local/bin/kubectl

Download as part of the Google Cloud SDK

kubectl can be installed as part of the Google Cloud SDK.

  1. Install the Google Cloud SDK.
  2. Run the following command to install kubectl:
gcloud components install kubectl
  1. Run kubectl version to verify that the verison you've installed is sufficiently up-to-date.

Install with Homebrew on macOS

  1. If you are on macOS and using Homebrew package manager, you can install with:
brew install kubectl
  1. Run kubectl version to verify that the verison you've installed is sufficiently up-to-date.

Configuring kubectl

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

Check the kubectl configuration

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

$ kubectl cluster-info

If you see a URL response, kubectl is correctly configured to access your cluster.

If you see a message similar to the following, kubectl is not correctly configured:

The connection to the server <server-name:port> was refused - did you specify the right host or port?

Enabling shell autocompletion

kubectl includes autocompletion support, which can save a lot of typing!

The completion script itself is generated by kubectl, so you typically just need to invoke it from your profile.

Common examples are provided here. For more details, consult kubectl completion -h.

On Linux, using bash

To add kubectl autocompletion to your current shell, run source <(kubectl completion bash).

To add kubectl autocompletion to your profile, so it is automatically loaded in future shells run:

echo "source <(kubectl completion bash)" >> ~/.bashrc

On macOS, using bash

On macOS, autocompletion works if you install using brew install kubectl, and not if you downloaded kubectl directly.

Install the bash-completion support:

brew install bash-completion

To add kubectl autocompletion to your current shell, run:

source $(brew --prefix)/etc/bash_completion
source <(kubectl completion bash)

To add kubectl autocompletion to your profile (so it is automatically loaded in future shells):

echo "source $(brew --prefix)/etc/bash_completion" >> ~/.bash_profile
echo "source <(kubectl completion bash)" >> ~/.bash_profile

{% endcapture %} {% capture whatsnext %} Learn how to launch and expose your application. {% endcapture %} {% include templates/task.md %}