diff --git a/_data/tasks.yml b/_data/tasks.yml index fd317a282d..5625e8e057 100644 --- a/_data/tasks.yml +++ b/_data/tasks.yml @@ -5,6 +5,7 @@ toc: - title: Using the kubectl Command-Line section: + - docs/tasks/kubectl/install.md - docs/tasks/kubectl/list-all-running-container-images.md - docs/tasks/kubectl/get-shell-running-container.md diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index f95f132be6..8b65c23c35 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -30,7 +30,7 @@ steps that existing cluster setup scripts are making. This will help you become familiar with the CLI ([kubectl](/docs/user-guide/kubectl/kubectl)) and concepts ([pods](/docs/user-guide/pods), [services](/docs/user-guide/services), etc.) first. 1. You should have `kubectl` installed on your desktop. This will happen as a side effect of completing one of the other Getting Started Guides. If not, follow the instructions - [here](/docs/user-guide/prereqs). + [here](/docs/tasks/kubectl/install/). ### Cloud Provider diff --git a/docs/tasks/kubectl/install.md b/docs/tasks/kubectl/install.md new file mode 100644 index 0000000000..e4c04f3f4d --- /dev/null +++ b/docs/tasks/kubectl/install.md @@ -0,0 +1,165 @@ +--- +assignees: +- bgrant0607 +- mikedanese +title: Installing and Setting Up kubectl +--- + +To deploy and manage applications on Kubernetes, you'll use the +Kubernetes command-line tool, [kubectl](/docs/user-guide/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: + +```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 +``` + +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`): + +```shell +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](https://github.com/kubernetes/kubernetes/releases), kubectl will be under `platforms//` from the tar bundle. + +If you compiled Kubernetes from source, kubectl should be either under `_output/local/bin//` or `_output/dockerized/bin//`. + +Copy or move kubectl into a directory already in your PATH (e.g. `/usr/local/bin`). For example: + +```shell +# 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: + +```shell +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: + +```shell +# OS X +export PATH=/platforms/darwin/amd64:$PATH + +# Linux +export PATH=/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](https://cloud.google.com/sdk/). + +After Google Cloud SDK installs, run the following command to install `kubectl`: + +```shell +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: + +```shell +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](/docs/user-guide/kubeconfig-file), which is created automatically when creating a cluster using kube-up.sh (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/user-guide/sharing-clusters). +By default, kubectl configuration lives at `~/.kube/config`. + +#### Making sure you're ready + +Check that kubectl is properly configured by getting the cluster state: + +```shell +$ 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): + +```shell +echo "source <(kubectl completion bash)" >> ~/.bashrc +``` + +### On MacOS, using bash + +On MacOS, you will need to install the bash-completion support first: + +```shell +brew install bash-completion +``` + +To add it to your current shell: + +```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 +``` + +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.](/docs/user-guide/quick-start) diff --git a/docs/tasks/manage-stateful-set/upgrade-pet-set-to-stateful-set.md b/docs/tasks/manage-stateful-set/upgrade-pet-set-to-stateful-set.md index 57852bd1cc..3537e26e24 100644 --- a/docs/tasks/manage-stateful-set/upgrade-pet-set-to-stateful-set.md +++ b/docs/tasks/manage-stateful-set/upgrade-pet-set-to-stateful-set.md @@ -112,7 +112,7 @@ Note that **you should NOT upgrade Nodes at this time**, because the Pods ### Upgrade kubectl to Kubernetes version 1.5 or later Upgrade `kubectl` to Kubernetes version 1.5 or later, following [the steps for installing and setting up -kubectl](/docs/user-guide/prereqs/). +kubectl](/docs/tasks/kubectl/install/). ### Create StatefulSets diff --git a/docs/tutorials/stateless-application/expose-external-ip-address.md b/docs/tutorials/stateless-application/expose-external-ip-address.md index 665a06a2b0..12075ff64e 100644 --- a/docs/tutorials/stateless-application/expose-external-ip-address.md +++ b/docs/tutorials/stateless-application/expose-external-ip-address.md @@ -12,7 +12,7 @@ external IP address. {% capture prerequisites %} - * Install [kubectl](http://kubernetes.io/docs/user-guide/prereqs). + * Install [kubectl](http://kubernetes.io/docs/tasks/kubectl/install/). * Use a cloud provider like Google Container Engine or Amazon Web Services to create a Kubernetes cluster. This tutorial creates an diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index 94eaacf3d7..69d4a9c193 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -30,7 +30,7 @@ The following topics in the Kubernetes User Guide can help you run applications 1. [Connecting to containers via proxies](/docs/user-guide/connecting-to-applications-proxy/) 1. [Connecting to containers via port forwarding](/docs/user-guide/connecting-to-applications-port-forward/) -Before running examples in the user guides, please ensure you have completed the [prerequisites](/docs/user-guide/prereqs/). +Before running examples in the user guides, please ensure you have completed [installing kubectl](/docs/tasks/kubectl/install/). ## Kubernetes Concepts diff --git a/docs/user-guide/kubectl-overview.md b/docs/user-guide/kubectl-overview.md index 8b16e6731e..2f3e8deac8 100644 --- a/docs/user-guide/kubectl-overview.md +++ b/docs/user-guide/kubectl-overview.md @@ -5,7 +5,7 @@ assignees: title: kubectl Overview --- -`kubectl` is a command line interface for running commands against Kubernetes clusters. This overview covers `kubectl` syntax, describes the command operations, and provides common examples. For details about each command, including all the supported flags and subcommands, see the [kubectl](/docs/user-guide/kubectl) reference documentation. For installation instructions see [prerequisites](/docs/user-guide/prereqs). +`kubectl` is a command line interface for running commands against Kubernetes clusters. This overview covers `kubectl` syntax, describes the command operations, and provides common examples. For details about each command, including all the supported flags and subcommands, see the [kubectl](/docs/user-guide/kubectl) reference documentation. For installation instructions see [installing kubectl](/docs/tasks/kubectl/install/). ## Syntax diff --git a/docs/user-guide/prereqs.md b/docs/user-guide/prereqs.md index de3cd3264f..b36ea6d203 100644 --- a/docs/user-guide/prereqs.md +++ b/docs/user-guide/prereqs.md @@ -8,161 +8,6 @@ redirect_from: - "/docs/getting-started-guides/kubectl.html" --- -To deploy and manage applications on Kubernetes, you'll use the -Kubernetes command-line tool, [kubectl](/docs/user-guide/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. +{% include user-guide-content-moved.md %} -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: - -```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 -``` - -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`): - -```shell -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](https://github.com/kubernetes/kubernetes/releases), kubectl will be under `platforms//` from the tar bundle. - -If you compiled Kubernetes from source, kubectl should be either under `_output/local/bin//` or `_output/dockerized/bin//`. - -Copy or move kubectl into a directory already in your PATH (e.g. `/usr/local/bin`). For example: - -```shell -# 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: - -```shell -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: - -```shell -# OS X -export PATH=/platforms/darwin/amd64:$PATH - -# Linux -export PATH=/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](https://cloud.google.com/sdk/). - -After Google Cloud SDK installs, run the following command to install `kubectl`: - -```shell -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: - -```shell -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](/docs/user-guide/kubeconfig-file), which is created automatically when creating a cluster using kube-up.sh (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/user-guide/sharing-clusters). -By default, kubectl configuration lives at `~/.kube/config`. - -#### Making sure you're ready - -Check that kubectl is properly configured by getting the cluster state: - -```shell -$ 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): - -```shell -echo "source <(kubectl completion bash)" >> ~/.bashrc -``` - -### On MacOS, using bash - -On MacOS, you will need to install the bash-completion support first: - -```shell -brew install bash-completion -``` - -To add it to your current shell: - -```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 -``` - -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.](/docs/user-guide/quick-start) +[Installing and Setting Up kubectl](/docs/tasks/kubectl/install/) diff --git a/docs/user-guide/walkthrough/index.md b/docs/user-guide/walkthrough/index.md index e0400ec7ed..9b795cf136 100644 --- a/docs/user-guide/walkthrough/index.md +++ b/docs/user-guide/walkthrough/index.md @@ -21,7 +21,7 @@ The easiest way to interact with Kubernetes is via the [kubectl](/docs/user-guid For more info about kubectl, including its usage, commands, and parameters, see the [kubectl CLI reference](/docs/user-guide/kubectl-overview/). -If you haven't installed and configured kubectl, finish the [prerequisites](/docs/user-guide/prereqs/) before continuing. +If you haven't installed and configured kubectl, finish [installing kubectl](/docs/tasks/kubectl/install/) before continuing. ## Pods