安装并设置 kubectl
在 Kubernetes 上使用 Kubernetes 命令行工具 kubectl 部署和管理应用程序。使用 kubectl,您可以检查集群资源;创建、删除和更新组件;查看您的新集群;并启动实例应用程序。
- 准备开始
- 安装 kubectl
- 使用本地软件包管理软件安装 kubectl 二进制文件
- 在 Ubuntu 上使用 snap 安装 kubectl
- 在 macOS 上用 Homebrew 安装 kubectl
- 在 macOS 上用 Macports 安装 kubectl
- 从 PSGallery 通过 Powershell 安装 kubectl
- 在 Windows 上用 Chocolatey 安装 kubectl
- 将 kubectl 作为 Google Cloud SDK 的一部分下载
- 通过 curl 命令安装 kubectl 可执行文件
- 配置 kubectl
- 检查 kubectl 的配置
- 启用 shell 自动补全功能
- 接下来
准备开始
您必须使用与集群小版本号差别为一的 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 应用程序使用。
切换到 snap 用户并运行安装命令:
sudo snap install kubectl --classic
测试以确保您安装的版本是最新的:
kubectl version
在 macOS 上用 Homebrew 安装 kubectl
如果您使用的是 macOS 系统并使用 Homebrew 包管理器,您可以通过 Homebrew 安装 kubectl。
运行安装命令:
brew install kubernetes-cli
测试以确保您安装的版本是最新的:
kubectl version
在 macOS 上用 Macports 安装 kubectl
如果您使用的是 macOS 系统并使用 Macports 包管理器,您可以通过 Macports 安装 kubectl。
运行安装命令:
port install kubectl
测试以确保您安装的版本是最新的:
kubectl version
从 PSGallery 通过 Powershell 安装 kubectl
如果您使用的是 Windows 系统并使用 Powershell Gallery 软件包管理器,您可以使用 Powershell 安装和更新 kubectl。
运行安装命令(确保指定
DownloadLocation
):Install-Script -Name install-kubectl -Scope CurrentUser -Force install-kubectl.ps1 [-DownloadLocation <path>]
注意: 如果你没有指定DownloadLocation
,那么kubectl
将安装在用户的临时目录中。安装程序创建
$ HOME/.kube
并指示它创建配置文件测试以确保您安装的版本是最新的:
kubectl version
注意: 通过重新运行步骤1中列出的两个命令来执行更新安装。
在 Windows 上用 Chocolatey 安装 kubectl
如果您使用的是 Windows 系统并使用 Chocolatey 包管理器,您可以使用 Chocolatey 安装 kubectl。
运行安装命令:
choco install kubernetes-cli
测试以确保您安装的版本是最新的:
kubectl version
切换到 %HOME% 目录:
例如:
cd C:\users\yourusername
创建 .kube 目录:
mkdir .kube
切换到刚刚创建的 .kube 目录:
cd .kube
配置 kubectl 以使用远程 Kubernetes 集群:
New-Item config -type file
注意: 使用您偏爱的编辑器编辑配置文件,例如 Notepad。
将 kubectl 作为 Google Cloud SDK 的一部分下载
kubectl 可以作为 Google Cloud SDK 的一部分进行安装。
- 安装 Google Cloud SDK.
运行以下命令安装
kubectl
:gcloud components install kubectl
测试以确保您安装的版本是最新的:
kubectl version
通过 curl 命令安装 kubectl 可执行文件
通过以下命令下载 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.17.0 版本在 macOS 系统上,需要使用如下命令:
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/darwin/amd64/kubectl
修改所下载的 kubectl 二进制文件为可执行模式。
chmod +x ./kubectl
将 kubectl 可执行文件放置到你的 PATH 目录下。
sudo mv ./kubectl /usr/local/bin/kubectl
通过以下命令下载 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.17.0 版本,需要使用如下命令:
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/linux/amd64/kubectl
修改所下载的 kubectl 二进制文件为可执行模式。
chmod +x ./kubectl
将 kubectl 可执行文件放置到你的 PATH 目录下。
sudo mv ./kubectl /usr/local/bin/kubectl
- 从本链接下载 kubectl 的最新版 v1.17.0。
或者如果您已经在系统中安装了 curl
工具,也可以通过以下命令下载:
```
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/windows/amd64/kubectl.exe
```
若要查找最新的稳定版本(例如脚本等),请查看 https://storage.googleapis.com/kubernetes-release/release/stable.txt.
- 将 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)
接下来
反馈
此页是否对您有帮助?
感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问 Stack Overflow. 在 GitHub 仓库上登记新的问题 报告问题 或者 提出改进建议.