kubectl 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群进行交互。它允许用户部署和管理容器化应用程序、查看集群资源、执行故障排查以及进行其他管理任务。kubectl 通过与 Kubernetes API 服务器通信来执行这些操作,API 服务器是 Kubernetes 集群的控制平面的一部分,负责处理集群中所有资源的请求。
今天我们将介绍如何在各种操作系统上,使用多种方式安装 kubectl 这个命令行工具。
1. 确定版本 首先到 k8s 官网的 Release History 确定你要安装的版本。目前最新的是 1.31。找到与 k8s 集群相匹配的 k8s 版本避免出现兼容性问题。
然后切换到k8s download
2. 安装 kubectl 安装过程中可能需要魔法,魔法可以去我的博客站 - 鹏叔的技术博客上找。
2.1. 使用包管理工具安装 kubectl 2.1.1. Windows 上安装 kubectl 1 choco install kubernetes-cli
2.1.2. 在 macOS 上使用 Homebrew 安装 1 2 3 brew install kubectl brew install kubernetes-cli
2.1.3. Debian 系列 Linux 安装 kubectl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 sudo apt-get updatesudo apt-get install -y apt-transport-https ca-certificates curl gnupgcurl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.listsudo chmod 644 /etc/apt/sources.list.d/kubernetes.list sudo apt-get updatesudo apt-get install -y kubectl
2.1.4. Redhat 系列 Linux 安装 kubectl 1 2 3 4 5 6 7 8 9 10 11 12 13 cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/repodata/repomd.xml.key EOF sudo dnf install -y kubectl
2.1.5. SUSE 系列 Linux 安装 kubectl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 cat <<EOF | sudo tee /etc/zypp/repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.31/rpm/repodata/repomd.xml.key EOF sudo zypper updatesudo zypper install -y kubectl
2.1.6. 使用其他包管理进行安装 snap 如果您使用的是 Ubuntu 或其他支持 snap 包管理器的 Linux 发行版,则 kubectl 可作为 snap 应用程序使用。
1 2 3 4 snap install kubectl --classic kubectl version --client
Homebrew 如果您使用的是 Linux 并使用 Homebrew 包管理器,则可以安装 kubectl 。
1 2 brew install kubectl kubectl version --client
2.2. 二进制文件安装 在 Linux 上使用使用二进制文件方式安装 kubectl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 curl -LO https://dl.k8s.io/release/v1.31.0/bin/linux/amd64/kubectl curl -LO "https://dl.k8s.io/release/v1.31.0/bin/linux/amd64/kubectl.sha256" echo "$(cat kubectl.sha256) kubectl" | sha256sum --checkcurl -LO https://dl.k8s.io/release/v1.31.0/bin/linux/arm64/kubectl curl -LO "https://dl.k8s.io/release/v1.31.0/bin/linux/arm64/kubectl.sha256" echo "$(cat kubectl.sha256) kubectl" | sha256sum --checkchmod +x kubectlmkdir -p ~/.local/binmv ./kubectl ~/.local/bin/kubectl
3. 测试以确保您安装的版本是合适的 1 2 3 4 5 kubectl version --client kubectl version --client --output=yaml
4. 配置 kubectl 1 2 3 4 5 6 7 8 9 cd ~mkdir .kubecd .kubeNew-Item config -type file
5. 配置 kubectl命令补全 检查是否bash-completion 已经安装:
如果已经安装,您将看到类似以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $type _init_completion_init_completion 是函数 _init_completion () { local exclude="" flag outx errx inx OPTIND=1; while getopts "n:e:o:i:s" flag "$@ " ; do case $flag in n) exclude+=$OPTARG ;; e) errx=$OPTARG ;; o) outx=$OPTARG ;;
如果尚未安装,请使用 apt 或 yum 安装,具体取决于您使用的包管理器(Ubuntu 通常使用 apt):
1 apt-get install bash-completion
或者
1 dnf install bash-completion
为您的 shell 会话设置 kubectl 完成脚本源:
对于系统上的所有用户:
1 kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
重新加载 bash shell。输入kubectl -后按两次 tab 键查看可用选项,并验证自动完成功能是否正常工作:
1 2 3 4 5 6 7 8 -as-group (Group to impersonate for the operation, this flag can be repeated to specify mu…) --as-uid (UID to impersonate for the operation.) --as (Username to impersonate for the operation. User could be a regular user or a se…) --cache-dir (Default cache directory) --certificate-authority (Path to a cert file for the certificate authority) --client-certificate (Path to a client certificate file for TLS)
6. 验证 kubectl 配置 为了让 kubectl 找到并访问 Kubernetes 集群,它需要一个 kubeconfig 文件,该文件会在您使用 kube-up.sh 创建集群 或成功部署 Minikube 集群时自动创建。默认情况下,kubectl 配置位于~/.kube/config。
通过获取集群状态检查 kubectl 是否正确配置:
1 2 3 kubectl cluster-info kubectl --kubeconfig=/PATH/TO/KUBECONFIG cluster-info
如果您看到 URL 响应,则表示 kubectl 已正确配置以访问您的集群。
如果您看到类似以下内容的消息,则表示 kubectl 配置不正确或无法连接到 Kubernetes 集群。
1 The connection to the server <server-name:port> was refused - did you specify the right host or port?
7. 参考文档 k8s 官网
Download Kubernetes
kubectl reference documentation.
安装 kubectl 命令行工具
Vultr Kubernetes Engine (VKE) Reference Guide