你必须使用与你的集群版本相差不超过一个次要版本的 kubectl 版本。例如,v1.36 的客户端可以与 v1.35、v1.36 和 v1.37 的控制平面通信。使用最新兼容版本的 kubectl 有助于避免不可预见的问题。
在 Windows 上安装 kubectl 有以下几种方法
你有两种在 Windows 设备上安装 kubectl 的选项
直接下载
通过访问 Kubernetes 发布页面,直接为你的特定架构下载最新的 1.36 补丁版本二进制文件。请务必为你的架构选择正确的二进制文件(例如 amd64、arm64 等)。
使用 curl
如果你安装了 curl,请使用此命令
curl.exe -LO "https://dl.k8s.io/release/v1.36.0/bin/windows/amd64/kubectl.exe"
验证二进制文件(可选)
下载 kubectl 校验和文件
curl.exe -LO "https://dl.k8s.io/v1.36.0/bin/windows/amd64/kubectl.exe.sha256"
根据校验和文件验证 kubectl 二进制文件
使用命令提示符手动比较 CertUtil 的输出与下载的校验和文件
CertUtil -hashfile kubectl.exe SHA256
type kubectl.exe.sha256
使用 PowerShell 通过 -eq 运算符自动验证,以获取 True 或 False 结果
$(Get-FileHash -Algorithm SHA256 .\kubectl.exe).Hash -eq $(Get-Content .\kubectl.exe.sha256)
将 kubectl 二进制文件所在文件夹附加或前置到你的 PATH 环境变量中。
测试以确保 kubectl 的版本与下载的版本一致
kubectl version --client
或者使用此命令查看详细版本信息
kubectl version --client --output=yaml
kubectl 版本添加到 PATH 中。如果你之前安装过 Docker Desktop,你可能需要将你的 PATH 条目放在 Docker Desktop 安装程序添加的路径之前,或者删除 Docker Desktop 的 kubectl。要在 Windows 上安装 kubectl,你可以使用 Chocolatey 包管理器、Scoop 命令行安装程序,或 winget 包管理器。
choco install kubernetes-cli
scoop install kubectl
winget install -e --id Kubernetes.kubectl
测试以确保您安装的版本是最新的
kubectl version --client
导航到你的主目录
# If you're using cmd.exe, run: cd %USERPROFILE%
cd ~
创建 .kube 目录
mkdir .kube
切换到你刚创建的 .kube 目录
cd .kube
配置 kubectl 以使用远程 Kubernetes 集群
New-Item config -type file
为了让 kubectl 找到并访问 Kubernetes 集群,它需要一个 kubeconfig 文件,该文件在你使用 kube-up.sh 创建集群或成功部署 Minikube 集群时会自动创建。默认情况下,kubectl 的配置位于 ~/.kube/config。
通过获取集群状态来检查 kubectl 是否配置正确
kubectl cluster-info
如果您看到 URL 响应,则 kubectl 已正确配置为访问您的集群。
如果您看到如下消息,则 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
在 Kubernetes 1.26 版本中,kubectl 移除了针对以下云服务提供商托管的 Kubernetes 服务的内置身份验证。这些提供商已经发布了 kubectl 插件来提供特定于云的身份验证。有关说明,请参阅以下提供商文档:
对于相同的错误消息,可能还有其他与此更改无关的原因。
kubectl 为 Bash、Zsh、Fish 和 PowerShell 提供自动补全支持,这可以为你节省大量输入工作。
以下是为 PowerShell 设置自动补全的步骤。
适用于 PowerShell 的 kubectl 补全脚本可以通过命令 kubectl completion powershell 生成。
要在所有 shell 会话中执行此操作,请将以下行添加到你的 $PROFILE 文件中
kubectl completion powershell | Out-String | Invoke-Expression
此命令将在每次 PowerShell 启动时重新生成自动补全脚本。你也可以直接将生成的脚本添加到你的 $PROFILE 文件中。
要将生成的脚本添加到你的 $PROFILE 文件,请在 powershell 提示符下运行以下行
kubectl completion powershell >> $PROFILE
重新加载 shell 后,kubectl 自动补全应该就可以正常工作了。
有关更多信息,请参阅 kuberc。
kubectl convert 插件这是 Kubernetes 命令行工具 kubectl 的一个插件,允许你在不同 API 版本之间转换清单。这对于将清单迁移到新 Kubernetes 版本中非弃用的 API 版本特别有用。有关更多信息,请访问 迁移到非弃用 API
使用以下命令下载最新版本
curl.exe -LO "https://dl.k8s.io/release/v1.36.0/bin/windows/amd64/kubectl-convert.exe"
验证二进制文件(可选)。
下载 kubectl-convert 校验和文件
curl.exe -LO "https://dl.k8s.io/v1.36.0/bin/windows/amd64/kubectl-convert.exe.sha256"
根据校验和文件验证 kubectl-convert 二进制文件
使用命令提示符手动比较 CertUtil 的输出与下载的校验和文件
CertUtil -hashfile kubectl-convert.exe SHA256
type kubectl-convert.exe.sha256
使用 PowerShell 通过 -eq 运算符自动验证,以获取 True 或 False 结果
$($(CertUtil -hashfile .\kubectl-convert.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl-convert.exe.sha256)
将 kubectl-convert 二进制文件所在文件夹附加或前置到你的 PATH 环境变量中。
验证插件是否已成功安装。
kubectl convert --help
如果您没有看到错误,则表示插件已成功安装。
安装插件后,清理安装文件
del kubectl-convert.exe
del kubectl-convert.exe.sha256