第一步、安装 kubectl 命令
版本选择
根据官网文档,“kubelet 命令的次版本号”与“集群的次版本号”最大仅能差一。比如 kubectl v1.2 能够正常操作版本 Kubernetes v1.1、v1.2、v1.3 的集群,以防止出现某些意料之外的情况;
在部署时安装
注意事项,通常在集群部署时我们会完成 kubectl 命令的安装,因此很少独立安装。除非需要应对某些场景,比如远程管理集群;
通过仓库安装
但是它是 GOOGLE 源无法访问,我们使用阿里云镜像仓库:
# ----------------------------------------------------------------------------- # Debian/Ubuntu # 尽管下载 apt-key.gpg 存在困难,但是应该尽量从官方站点下载(请勿随意使用第三方密钥) # curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FEEA9169307EA071 8B57C5C2836F4BEB cat > /etc/apt/sources.list.d/kubernetes.list <<EOF deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF apt-get update && apt-cache madison kubectl apt-get install kubectl=1.22.15-00 # ----------------------------------------------------------------------------- # CentOS 7.4 cat > /etc/yum.repos.d/kubernetes-ali.repo <<EOF [kubernetes-ali] name=Kubernetes ALi baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=0 EOF yum install -y kubectl-1.16.2
通用安装方法
# 下载稳定版本 curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl # 下载特定版本 # curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl curl -LO https://dl.k8s.io/release/v1.21.0/bin/linux/amd64/kubectl # 安装命令 chmod +x ./kubectl mv ./kubectl /usr/local/bin/kubectl # 检查安装版本 kubectl version --client
关于其他平台,安装也是类似的,参考 Install Tools | Kubernetes 文档
第二步、创建 kubeconfig 配置
如果要访问集群,需要使用 kubeconfig 配置文件,该文件位于 ~/.kube/config(在集群主机上),是集群初始化时创建的(手动复制):
mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config
文件格式
kubernetes/kubeconfig-file.md at release-1.1 · kubernetes/kubernetes · GitHub
配置文件 ~/.kube/config 的格式如下(通常使用 kubectl config 命令修改,无需手动编辑):
# touch $HOME/.kube/config apiVersion: v1 current-context: kubernetes-admin@kubernetes kind: Config preferences: {} ################################################################################ # 配置集群 ################################################################################ clusters: - cluster: certificate-authority-data: <ca-data> server: https://10.10.50.90:6443 name: kubernetes ################################################################################ # 配置用户 ################################################################################ users: - name: kubernetes-admin user: client-certificate-data: <client-cert-data> client-key-data: <client-key-data> ################################################################################ # 配置上下文(要使用的用户及要访问的集群) ################################################################################ contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes
第三步、验证命令
# 验证配置 # 如果配置正确,命令将返回 URL 地址,例如:Kubernetes master is running at https://10.10.50.90:6443 kubectl cluster-info # 如果服务器返回 URL 地址,但是拒绝连接,则使用下面的命令进行排查,以检查配置文件是否正确: kubectl cluster-info dump
配置 BASH 补全
参考 Tools Included 文档,以获取对于其他操作系统和 Shell 补全的方法;
for Linux
# 首先,需要安装 bash-complete 包,因为 kubectl 依赖于它; apt-get install bash-completion # Debian yum install bash-completion # CentOS # 然后,启用 kubectl 补全 echo "source <($(which kubectl) completion bash)" >> ~/.bashrc source ~/.bashrc
for Windows
Fix for PowerShell Script cannot be loaded because running scripts is disabled on this system error
Install and Set Up kubectl on Windows | Kubernetes
# PowerShell Run as Administrator # 检查:$PROFILE C:\Users\<Username>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 # 添加配置 Set-ExecutionPolicy RemoteSigned kubectl completion powershell >> $PROFILE
参考文献