任务

Edit This Page

安装并设置 kubectl

在 Kubernetes 上使用 Kubernetes 命令行工具 kubectl 部署和管理应用程序。使用 kubectl,您可以检查集群资源;创建、删除和更新组件;查看您的新集群;并启动实例应用程序。

准备开始

您必须使用与集群小版本号差别为一的 kubectl 版本。例如,1.2版本的客户端应该与1.1版本、1.2版本和1.3版本的主节点一起使用。使用最新版本的 kubectl 有助于避免无法预料的问题。

安装 kubectl

以下是一些安装 kubectl 的方法。

使用本地软件包管理软件安装 kubectl 二进制文件


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

cat <<EOF > /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

在 Ubuntu 上使用 snap 安装 kubectl

如果您使用的是 Ubuntu 或其他支持 snap 软件包管理器的Linux发行版,kubectl 可以作为一个 snap 应用程序使用。

  1. 切换到 snap 用户并运行安装命令:

    sudo snap install kubectl --classic
    
  2. 测试以确保您安装的版本是最新的:

    kubectl version
    

在 macOS 上用 Homebrew 安装 kubectl

如果您使用的是 macOS 系统并使用 Homebrew 包管理器,您可以通过 Homebrew 安装 kubectl。

  1. 运行安装命令:

    brew install kubernetes-cli
    
  2. 测试以确保您安装的版本是最新的:

    kubectl version
    

在 macOS 上用 Macports 安装 kubectl

如果您使用的是 macOS 系统并使用 Macports 包管理器,您可以通过 Macports 安装 kubectl。

  1. 运行安装命令:

    port install kubectl
    
  2. 测试以确保您安装的版本是最新的:

    kubectl version
    

从 PSGallery 通过 Powershell 安装 kubectl

如果您使用的是 Windows 系统并使用 Powershell Gallery 软件包管理器,您可以使用 Powershell 安装和更新 kubectl。

  1. 运行安装命令(确保指定 DownloadLocation):

    Install-Script -Name install-kubectl -Scope CurrentUser -Force
    install-kubectl.ps1 [-DownloadLocation <path>]
    
    Note: 如果你没有指定 DownloadLocation,那么 kubectl 将安装在用户的临时目录中。

    安装程序创建 $ HOME/.kube 并指示它创建配置文件

  2. 测试以确保您安装的版本是最新的:

    kubectl version
    
    Note: 通过重新运行步骤1中列出的两个命令来执行更新安装。

在 Windows 上用 Chocolatey 安装 kubectl

如果您使用的是 Windows 系统并使用 Chocolatey 包管理器,您可以使用 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。

将 kubectl 作为 Google Cloud SDK 的一部分下载

kubectl 可以作为 Google Cloud SDK 的一部分进行安装。

  1. 安装 Google Cloud SDK.
  2. 运行以下命令安装 kubectl

    gcloud components install kubectl
    
  3. 测试以确保您安装的版本是最新的:

    kubectl version
    

通过 curl 命令安装 kubectl 可执行文件

  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 的具体版本即可。

    例如,如果需要下载 v1.14.10 版本在 macOS 系统上,需要使用如下命令:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.14.10/bin/darwin/amd64/kubectl
    
  2. 修改所下载的 kubectl 二进制文件为可执行模式。

    chmod +x ./kubectl
    
  3. 将 kubectl 可执行文件放置到你的 PATH 目录下。

    sudo mv ./kubectl /usr/local/bin/kubectl
    
  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 的 v1.14.10 版本,需要使用如下命令:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.14.10/bin/linux/amd64/kubectl
    
  2. 修改所下载的 kubectl 二进制文件为可执行模式。

    chmod +x ./kubectl
    
  3. 将 kubectl 可执行文件放置到你的 PATH 目录下。

    sudo mv ./kubectl /usr/local/bin/kubectl
    
  1. 本链接下载 kubectl 的最新版 v1.14.10。

或者如果您已经在系统中安装了 curl 工具,也可以通过以下命令下载:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.14.10/bin/windows/amd64/kubectl.exe
```

若要查找最新的稳定版本(例如脚本等),请查看 https://storage.googleapis.com/kubernetes-release/release/stable.txt.

  1. 将 kubectl 可执行文件添加到你的 PATH 目录。

配置 kubectl

kubectl 需要一个 kubeconfig 配置文件使其找到并访问 Kubernetes 集群。当您使用 kube-up.sh 脚本创建 Kubernetes 集群或者部署 Minikube 集群时,会自动生成 kubeconfig 配置文件。请参阅入门指南以了解更多创建集群相关的信息。如果您需要访问一个并非由您创建的集群,请参阅如何共享集群的访问。默认情况下,kubectl 配置文件位于 ~/.kube/config

检查 kubectl 的配置

通过获取集群状态检查 kubectl 是否被正确配置:

kubectl cluster-info

如果您看到一个 URL 被返回,那么 kubectl 已经被正确配置,能够正常访问您的 Kubernetes 集群。

如果您看到类似以下的信息被返回,那么 kubectl 没有被正确配置,无法正常访问您的 Kubernetes 集群。

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

例如,如果您打算在笔记本电脑(本地)上运行 Kubernetes 集群,则需要首先安装 minikube 等工具,然后重新运行上述命令。

如果 kubectl cluster-info 能够返回 url 响应,但您无法访问您的集群,可以使用下面的命令检查配置是否正确:

kubectl cluster-info dump

启用 shell 自动补全功能

kubectl 支持自动补全功能,可以节省大量输入!

自动补全脚本由 kubectl 产生,您仅需要在您的 shell 配置文件中调用即可。

以下仅提供了使用命令补全的常用示例,更多详细信息,请查阅 kubectl completion -h 帮助命令的输出。

Linux 系统,使用 bash

在 CentOS Linux系统上,您可能需要安装默认情况下未安装的 bash-completion 软件包。

yum install bash-completion -y

执行 source <(kubectl completion bash) 命令在您目前正在运行的 shell 中开启 kubectl 自动补全功能。

可以将上述命令添加到 shell 配置文件中,这样在今后运行的 shell 中将自动开启 kubectl 自动补全:

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

macOS 系统,使用 bash

macOS 系统需要先通过 Homebrew 安装 bash-completion:

## 如果您运行的是 macOS 自带的 Bash 3.2,请运行:
brew install bash-completion
## 如果您使用的是 Bash 4.1+,请运行:
brew install bash-completion@2

请根据 Homebrew 输出的”注意事项(caveats)”部分的内容将 bash-completion 的路径添加到本地 .bashrc 文件中。

如果您是按照 Homebrew 指示中的步骤安装的 kubectl,那么无需其他配置,kubectl 的自动补全功能已经被启用。

如果您是手工下载并安装的 kubectl,那么您需要将 kubectl 自动补全添加到 bash-completion:

kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl

由于 Homebrew 项目与 Kubernetes 无关,所以并不能保证 bash-completion 总能够支持 kubectl 的自动补全功能。

使用 Zsh

如果您使用的是 zsh,请编辑 ~/.zshrc 文件并添加以下代码以启用 kubectl 自动补全功能。

if [ $commands[kubectl] ]; then
  source <(kubectl completion zsh)
fi

如果您使用的是 Oh-My-Zsh,请编辑 ~/.zshrc 文件并更新 plugins= 行以包含 kubectl 插件。

plugins=(kubectl)

接下来

了解如何启动并对外暴露您的应用程序

反馈