From a8b83a8391f9d1603e03304b1ece58925dfa669a Mon Sep 17 00:00:00 2001 From: MJ-CJM <43091605+MJ-CJM@users.noreply.github.com> Date: Tue, 8 Jan 2019 12:19:02 +0800 Subject: [PATCH] zh-trans:/docs/tasks/tools/install-kubectl.md (#11992) * configure-aggregation-layer.md * configure-aggregation-layer.md * configure-aggregation-layer.md * configure-aggregation-layer.md * Update configure-aggregation-layer.md * . * . * . * . * . * . * . * . * configure-aggregation-layer.md * . * . * Update configure-aggregation-layer.md * . * . * . * . --- .../zh/docs/tasks/tools/install-kubectl.md | 703 ++++++++++++++++++ 1 file changed, 703 insertions(+) create mode 100644 content/zh/docs/tasks/tools/install-kubectl.md diff --git a/content/zh/docs/tasks/tools/install-kubectl.md b/content/zh/docs/tasks/tools/install-kubectl.md new file mode 100644 index 0000000000..5fa6d426e8 --- /dev/null +++ b/content/zh/docs/tasks/tools/install-kubectl.md @@ -0,0 +1,703 @@ +--- +reviewers: +- bgrant0607 +- mikedanese +title: 安装并设置 kubectl +content_template: templates/task +weight: 10 +--- + +{{% capture overview %}} + + 在 Kubernetes 上使用 Kubernetes 命令行工具 [kubectl](/docs/user-guide/kubectl/) 部署和管理应用程序。使用 kubectl,您可以检查集群资源;创建、删除和更新组件;查看您的新集群;并启动实例应用程序。 +{{% /capture %}} + +{{% capture prerequisites %}} + +您必须使用与集群小版本号差别为一的 kubectl 版本。例如,1.2版本的客户端应该与1.1版本、1.2版本和1.3版本的主节点一起使用。使用最新版本的 kubectl 有助于避免无法预料的问题。 +{{% /capture %}} + + +{{% capture steps %}} + + +## 安装 kubectl + +以下是一些安装 kubectl 的方法。 + + +## 使用本地软件包管理软件安装 kubectl 二进制文件 + +{{< tabs name="kubectl_install" >}} +{{< tab name="Ubuntu, Debian or HypriotOS" codelang="bash" >}} +sudo apt-get update && sudo apt-get install -y apt-transport-https +curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - +echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list +sudo apt-get update +sudo apt-get install -y kubectl +{{< /tab >}} +{{< tab name="CentOS, RHEL or Fedora" codelang="bash" >}}cat < /etc/yum.repos.d/kubernetes.repo +[kubernetes] +name=Kubernetes +baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 +enabled=1 +gpgcheck=1 +repo_gpgcheck=1 +gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg +EOF +yum install -y kubectl +{{< /tab >}} +{{< /tabs >}} + + + +## 在 Ubuntu 上使用 snap 安装 kubectl + +如果您使用的是 Ubuntu 或其他支持 [snap](https://snapcraft.io/docs/core/install) 软件包管理器的Linux发行版,kubectl 可以作为一个 [snap](https://snapcraft.io/) 应用程序使用。 + +1. 切换到 snap 用户并运行安装命令: + + ``` + sudo snap install kubectl --classic + ``` + +2. 测试以确保您安装的版本是最新的: + + ``` + kubectl version + ``` + + +## 在 macOS 上用 Homebrew 安装 kubectl + +如果您使用的是 macOS 系统并使用 [Homebrew](https://brew.sh/) 包管理器,您可以通过 Homebrew 安装 kubectl。 + +1. 运行安装命令: + + ``` + brew install kubernetes-cli + ``` + +2. 测试以确保您安装的版本是最新的: + + ``` + kubectl version + ``` + + + + +## 在 macOS 上用 Macports 安装 kubectl + +如果您使用的是 macOS 系统并使用 [Macports](https://macports.org/) 包管理器,您可以通过 Macports 安装 kubectl。 + +1. 运行安装命令: + + ``` + port install kubectl + ``` + +2. 测试以确保您安装的版本是最新的: + + ``` + kubectl version + ``` + + +## 从 PSGallery 通过 Powershell 安装 kubectl + +如果您使用的是 Windows 系统并使用 [Powershell Gallery](https://www.powershellgallery.com/) 软件包管理器,您可以使用 Powershell 安装和更新 kubectl。 + +1. 运行安装命令(确保指定 `DownloadLocation`): + + ``` + Install-Script -Name install-kubectl -Scope CurrentUser -Force + install-kubectl.ps1 [-DownloadLocation ] + ``` + + {{< note >}} + 如果你没有指定 `DownloadLocation`,那么 `kubectl` 将安装在用户的临时目录中。 + {{< /note >}} + + 安装程序创建 `$ HOME/.kube` 并指示它创建配置文件 + +2. 测试以确保您安装的版本是最新的: + ``` + kubectl version + ``` + + {{< note >}} + 通过重新运行步骤1中列出的两个命令来执行更新安装。 + {{< /note >}} + + +## 在 Windows 上用 Chocolatey 安装 kubectl + +如果您使用的是 Windows 系统并使用 [Chocolatey](https://chocolatey.org) 包管理器,您可以使用 Chocolatey 安装 kubectl。 + +1. 运行安装命令: + + ``` + choco install kubernetes-cli + ``` + +2. 测试以确保您安装的版本是最新的: + + ``` + kubectl version + ``` +3. 切换到 %HOME% 目录: + + 例如:`cd C:\users\yourusername` + +4. 创建 .kube 目录: + + ``` + mkdir .kube + ``` + +5. 切换到刚刚创建的 .kube 目录: + + ``` + cd .kube + ``` + +6. 配置 kubectl 以使用远程 Kubernetes 集群: + + ``` + New-Item config -type file + ``` + + {{< note >}} + 使用您偏爱的编辑器编辑配置文件,例如 Notepad。 + {{< /note >}} + + +## 将 kubectl 作为 Google Cloud SDK 的一部分下载 + +kubectl 可以作为 Google Cloud SDK 的一部分进行安装。 + +1. 安装 [Google Cloud SDK](https://cloud.google.com/sdk/). +2. 运行以下命令安装 `kubectl`: + + ``` + gcloud components install kubectl + ``` + +3. 测试以确保您安装的版本是最新的: + + ``` + kubectl version + ``` + + +## 通过 curl 命令安装 kubectl 可执行文件 + +{{< tabs name="kubectl_install_curl" >}} +{{% tab name="macOS" %}} +1. 通过以下命令下载 kubectl 的最新版本: + + ``` + curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl + ``` + + 若需要下载特定版本的 kubectl,请将上述命令中的 `$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` 部分替换成为需要下载的 kubectl 的具体版本即可。 + + 例如,如果需要下载 {{< param "fullversion" >}} 版本在 macOS 系统上,需要使用如下命令: + + ``` + curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/darwin/amd64/kubectl + ``` + +2. 修改所下载的 kubectl 二进制文件为可执行模式。 + + ``` + chmod +x ./kubectl + ``` + +3. 将 kubectl 可执行文件放置到你的 PATH 目录下。 + + + ``` + sudo mv ./kubectl /usr/local/bin/kubectl + ``` +{{% /tab %}} +{{% tab name="Linux" %}} + +1. 通过以下命令下载 kubectl 的最新版本: + + ``` + curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl + ``` + + 若需要下载特定版本的 kubectl,请将上述命令中的 `$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` 部分替换成为需要下载的 kubectl 的具体版本即可。 + + 例如,如果需要下载用于 Linux 的 {{< param "fullversion" >}} 版本,需要使用如下命令: + + ``` + curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/linux/amd64/kubectl + ``` + +2. 修改所下载的 kubectl 二进制文件为可执行模式。 + + ``` + chmod +x ./kubectl + ``` + +3. 将 kubectl 可执行文件放置到你的 PATH 目录下。 + + ``` + sudo mv ./kubectl /usr/local/bin/kubectl + ``` +{{% /tab %}} +{{% tab name="Windows" %}} +1. 从[本链接](https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe)下载 kubectl 的最新版 {{< param "fullversion" >}}。 + + 或者如果您已经在系统中安装了 `curl` 工具,也可以通过以下命令下载: + + ``` + curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe + ``` + +若要查找最新的稳定版本(例如脚本等),请查看 [https://storage.googleapis.com/kubernetes-release/release/stable.txt](https://storage.googleapis.com/kubernetes-release/release/stable.txt). + +2. 将 kubectl 可执行文件添加到你的 PATH 目录。 +{{% /tab %}} +{{< /tabs >}} + + + + +## 配置 kubectl + +kubectl 需要一个 [kubeconfig 配置文件](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)使其找到并访问 Kubernetes 集群。当您使用 kube-up.sh 脚本创建 Kubernetes 集群或者部署 Minikube 集群时,会自动生成 kubeconfig 配置文件。请参阅[入门指南](/docs/setup/)以了解更多创建集群相关的信息。如果您需要访问一个并非由您创建的集群,请参阅[如何共享集群的访问](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)。默认情况下,kubectl 配置文件位于 `~/.kube/config`。 + + +## 检查 kubectl 的配置 +通过获取集群状态检查 kubectl 是否被正确配置: + +```shell +kubectl cluster-info +``` +如果您看到一个 URL 被返回,那么 kubectl 已经被正确配置,能够正常访问您的 Kubernetes 集群。 + +如果您看到类似以下的信息被返回,那么 kubectl 没有被正确配置,无法正常访问您的 Kubernetes 集群。 + +```shell +The connection to the server was refused - did you specify the right host or port? +``` + +例如,如果您打算在笔记本电脑(本地)上运行 Kubernetes 集群,则需要首先安装 minikube 等工具,然后重新运行上述命令。 + +如果 kubectl cluster-info 能够返回 url 响应,但您无法访问您的集群,可以使用下面的命令检查配置是否正确: + +```shell +kubectl cluster-info dump +``` + + +## 启用 shell 自动补全功能 + +kubectl 支持自动补全功能,可以节省大量输入! + +自动补全脚本由 kubectl 产生,您仅需要在您的 shell 配置文件中调用即可。 + +以下仅提供了使用命令补全的常用示例,更多详细信息,请查阅 `kubectl completion -h` 帮助命令的输出。 + + +### Linux 系统,使用 bash +在 CentOS Linux系统上,您可能需要安装默认情况下未安装的 bash-completion 软件包。 + +```shell +yum install bash-completion -y +``` + +执行 `source <(kubectl completion bash)` 命令在您目前正在运行的 shell 中开启 kubectl 自动补全功能。 + +可以将上述命令添加到 shell 配置文件中,这样在今后运行的 shell 中将自动开启 kubectl 自动补全: + +```shell +echo "source <(kubectl completion bash)" >> ~/.bashrc +``` + + +### macOS 系统,使用 bash +macOS 系统需要先通过 [Homebrew](https://brew.sh/) 安装 bash-completion: + +```shell +## 如果您运行的是 macOS 自带的 Bash 3.2,请运行: +brew install bash-completion +## 如果您使用的是 Bash 4.1+,请运行: +brew install bash-completion@2 +``` + +请根据 Homebrew 输出的”注意事项(caveats)”部分的内容将 bash-completion 的路径添加到本地 .bashrc 文件中。 + +如果您是按照 [Homebrew 指示](#jump)中的步骤安装的 kubectl,那么无需其他配置,kubectl 的自动补全功能已经被启用。 + +如果您是手工下载并安装的 kubectl,那么您需要将 kubectl 自动补全添加到 bash-completion: + +```shell +kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl +``` + +由于 Homebrew 项目与 Kubernetes 无关,所以并不能保证 bash-completion 总能够支持 kubectl 的自动补全功能。 + + +### 使用 Zsh +如果您使用的是 zsh,请编辑 ~/.zshrc 文件并添加以下代码以启用 kubectl 自动补全功能。 + + +```shell +if [ $commands[kubectl] ]; then + source <(kubectl completion zsh) +fi +``` + +如果您使用的是 [Oh-My-Zsh](http://ohmyz.sh/),请编辑 ~/.zshrc 文件并更新 `plugins=` 行以包含 kubectl 插件。 + +```shell +plugins=(kubectl) +``` +{{% /capture %}} + +{{% capture whatsnext %}} + +[了解如何启动并对外暴露您的应用程序](/docs/tasks/access-application-cluster/service-access-application-cluster/) +{{% /capture %}} +