任务

任务
管理集群
Debug DNS 方案
Enabling Service Topology (EN)
IP Masquerade Agent 用户指南
Kubernetes 云管理控制器
Safely Drain a Node while Respecting the PodDisruptionBudget (EN)
为 Kubernetes 运行 etcd 集群
为系统守护进程预留计算资源
为节点发布扩展资源
使用 CoreDNS 进行服务发现
使用 KMS 提供商进行数据加密
使用 Kubernetes API 访问集群
关键插件 Pod 的调度保证
启用端点切片
命名空间演练
在 Kubernetes 集群中使用 NodeLocal DNSCache
在 Kubernetes 集群中使用 sysctl
在实时集群上重新配置节点的 Kubelet
声明网络策略
开发云控制器管理器
控制节点上的 CPU 管理策略
控制节点上的拓扑管理策略
搭建高可用的 Kubernetes Masters
改变默认 StorageClass
更改 PersistentVolume 的回收策略
自定义 DNS 服务
访问集群上运行的服务
通过命名空间共享集群
通过配置文件设置 Kubelet 参数
配置 API 对象配额
配置多个调度器
配置资源不足时的处理方式
限制存储消耗
集群 DNS 服务自动伸缩
集群安全
集群管理
静态加密 Secret 数据
用插件扩展 kubectl
管理巨页(HugePages)
调度 GPUs

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

在 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>]
    
    注意: 如果你没有指定 DownloadLocation,那么 kubectl 将安装在用户的临时目录中。

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

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

    kubectl version
    
    注意: 通过重新运行步骤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
    
    注意: 使用您偏爱的编辑器编辑配置文件,例如 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.18.0 版本在 macOS 系统上,需要使用如下命令:

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

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

    sudo mv ./kubectl /usr/local/bin/kubectl
    

配置 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)

接下来

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

反馈