--- assignees: - bgrant0607 - mikedanese title: Installing and Setting Up kubectl redirect_from: - "/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](/docs/user-guide/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: ```shell # 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` 2. Make the kubectl binary executable. ```shell chmod +x ./kubectl ``` 3. Move the binary in to your PATH. ```shell 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](https://cloud.google.com/sdk/). 2. Run the following command to install `kubectl`: ```shell gcloud components install kubectl ``` 3. 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](https://brew.sh/) package manager, you can install with: ```shell brew install kubectl ``` 2. 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](/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/), 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/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](/docs/tasks/administer-cluster/share-configuration/). 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 $ 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: ```shell The connection to the server 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: ```shell 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: ```shell brew install bash-completion ``` To add kubectl autocompletion to your current shell, run: ```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): ```shell 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.](/docs/user-guide/quick-start) {% endcapture %} {% include templates/task.md %}