Step-by-step instructions for performing operations with Kubernetes.

Edit This Page

Installing and Setting Up kubectl

To deploy and manage applications on Kubernetes, you’ll use the Kubernetes command-line tool, kubectl. It lets you inspect your cluster resources, create, delete, and update components, and much more. You will use it to look at your new cluster and bring up example apps.

You should use a version of kubectl that is at least as new as your server. kubectl version will print the server and client versions. Using the same version of kubectl as your server naturally works; using a newer kubectl than your server also works; but if you use an older kubectl with a newer server you may see odd validation errors.

Here are a few methods to install kubectl.

Install kubectl Binary Via curl

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

If you want to download a specific version of kubectl you can replace the nested curl command from above with the version you want. (e.g. v1.4.6, v1.5.0-beta.2)

Make the kubectl binary executable and move it to your PATH (e.g. /usr/local/bin):

chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

Extract kubectl from Release .tar.gz or Compiled Source

If you downloaded a pre-compiled release, kubectl will be under platforms/<os>/<arch> from the tar bundle.

If you compiled Kubernetes from source, kubectl should be either under _output/local/bin/<os>/<arch> or _output/dockerized/bin/<os>/<arch>.

Copy or move kubectl into a directory already in your PATH (e.g. /usr/local/bin). For example:

# OS X
sudo cp platforms/darwin/amd64/kubectl /usr/local/bin/kubectl

# Linux
sudo cp platforms/linux/amd64/kubectl /usr/local/bin/kubectl

Next make it executable with the following command:

sudo chmod +x /usr/local/bin/kubectl

The kubectl binary doesn’t have to be installed to be executable, but the rest of the walkthrough will assume that it’s in your PATH.

If you prefer not to copy kubectl, you need to ensure it is in your path:

# OS X
export PATH=<path/to/kubernetes-directory>/platforms/darwin/amd64:$PATH

# Linux
export PATH=<path/to/kubernetes-directory>/platforms/linux/amd64:$PATH

Download as part of the Google Cloud SDK

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

First install the Google Cloud SDK.

After Google Cloud SDK installs, run the following command to install kubectl:

gcloud components install kubectl

Do check that the version is sufficiently up-to-date using kubectl version.

Install with brew

If you are on MacOS and using brew, you can install with:

brew install kubectl

The homebrew project is independent from kubernetes, so do check that the version is sufficiently up-to-date using kubectl version.

Configuring kubectl

In order for kubectl to find and access the Kubernetes cluster, it needs a kubeconfig file, which is created automatically when creating a cluster using kube-up.sh or upon successful deployment of 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 lives at ~/.kube/config.

Making sure you’re ready

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

$ kubectl cluster-info

If you see a url response, you are ready to go.

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, but for more details please consult kubectl completion -h

On Linux, using bash

To add it to your current shell: source <(kubectl completion bash)

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

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

On MacOS, using bash

On MacOS, you will need to install the bash-completion support first:

brew install bash-completion

To add it to your current shell:

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

Please note that this only appears to work currently if you install using brew install kubectl, and not if you downloaded kubectl directly.

What’s next?

Learn how to launch and expose your application.


Create an Issue Edit this Page