• 使用kubectl连接远程Kubernetes(k8s)集群


    环境准备

    你需要准备一个Kubernetes集群,你要记下你安装Kubernetes的版本。如图我已经准备好了一个版本号为 v1.21.14 的集群:
    在这里插入图片描述

    下载kubectl

    下载地址

    注意下载的版本号最好与你安装的Kubernetes版本对应上,各个版本的下载地址(⚠️注意修改url中的版本号):

    • Windows:

      • x86_64:
      https://dl.k8s.io/release/版本号/bin/windows/amd64/kubectl.exe
      
      • 1
      • arm64:
      https://dl.k8s.io/release/版本号/bin/windows/arm64/kubectl.exe
      
      • 1
    • MacOS:

      • Intel:
      https://dl.k8s.io/release/版本号/bin/darwin/amd64/kubectl
      
      • 1
      • Apple Silicon:
      https://dl.k8s.io/release/版本号/bin/darwin/arm64/kubectl
      
      • 1
    • Linux:

      • x86_64:
      https://dl.k8s.io/release/版本号/bin/linux/amd64/kubectl
      
      • 1
      • arm64:
      https://dl.k8s.io/release/版本号/bin/linux/arm64/kubectl
      
      • 1

    v1.21.14 的 MacOS M1芯片的电脑为例,我的下载地址就为(注意修改版本号):

    https://dl.k8s.io/release/v1.21.14/bin/darwin/arm64/kubectl
    
    • 1

    安装kubectl并处理配置文件

    本次会以MacOS、Windows、Linux三个系统为例为大家讲解。你可以在目录中快速点击你的操作系统,只看你自己的操作系统的内容即可。

    Windows的安装配置

    安装kubectl

    因为我的Windows电脑是x86_64架构的,所以我的下载地址为(注意修改自己的版本):

    https://dl.k8s.io/release/v1.21.14/bin/windows/amd64/kubectl.exe
    
    • 1

    然后我们创建一个目录去安装kubectl,如图:
    在这里插入图片描述

    每个目录的作用:

    • bin: 装kubectl可执行文件的目录
    • config: 配置文件的目录

    接下来我们将kubectl下载到bin目录下:
    在这里插入图片描述

    然后我们可以执行下面命令查看帮助:

    .\kubectl.exe --help
    
    • 1

    执行如图:
    在这里插入图片描述

    接下来我们需要配置一下环境变量,来到设置点击系统:
    在这里插入图片描述

    然后点击关于之后点击高级系统设置:
    在这里插入图片描述

    然后点击环境变量:
    在这里插入图片描述

    在环境变量下点击新建:
    在这里插入图片描述

    配置一个名为 KUBERNETES_HOME 的环境变量,值为你Kubernetes安装的根目录:
    在这里插入图片描述

    然后找到path之后将这行配置添加到最后:

    %KUBERNETES_HOME%\bin
    
    • 1

    如图:
    在这里插入图片描述

    最后我们重启PowerShell就可以在任何地方执行kubectl了:
    在这里插入图片描述

    拉取配置文件

    现在仅仅只是安装了kubectl,但是还没有指定kubectl去连接哪个集群。我们需要在Kubernetes主节点当中去拉取下来配置文件,这个配置文件当中一般还包含着认证信息。这个文件一般存放于主节点的 /etc/kubernetes/admin.conf 处,我们直接使用这行命令来拉取:

    # 来到kubernetes的配置文件目录
    cd E:\Software\Developer\Tools\Kubernetes\conf\
    # 拉取配置文件,为了区分多个集群的配置文件,我们给其从新命名
    scp root@192.168.1.160:/etc/kubernetes/admin.conf ./192.168.1.160.conf
    
    • 1
    • 2
    • 3
    • 4

    拉取后如图:
    在这里插入图片描述

    然后我们需要配置一个 KUBECONFIG 环境变量名字去指向这个配置文件:
    在这里插入图片描述

    然后我们重启PowerShell就能远程工作apiserver为192.168.1.160的这台主机了:
    在这里插入图片描述

    Mac的安装配置

    安装kubectl

    因为我的Mac电脑是M1芯片的,所以我的下载地址为(注意修改自己的版本):

    https://dl.k8s.io/release/v1.21.14/bin/darwin/arm64/kubectl
    
    • 1

    然后我们创建一个目录去安装kubectl,如图:
    在这里插入图片描述

    每个目录的作用:

    • bin: 装kubectl可执行文件的目录
    • config: 配置文件的目录

    接下来我们将kubectl下载到bin目录下:
    在这里插入图片描述

    然后我们还需要执行以下命令来为它赋予执行权限:

    chmod +x kubectl
    
    • 1

    然后我们执行它(可能会被MacOS拦截,因为这个可执行文件不是来自受信任的开发者,这个问题请点击帮助按照苹果给出的文档解决):

    ./kubectl --help
    
    • 1

    执行如图:
    在这里插入图片描述

    这个文件我们目前还只能在本目录下执行,而我们还需要在任何位置都能执行,所以要配置环境变量。配置如下内容(注意修改你自己的安装目录):

    # Set Kubernetes environment
    KUBERNETES_HOME=/Users/xiaohh/Software/kubernetes
    PATH=$PATH:$KUBERNETES_HOME/bin
    export PATH KUBERNETES_HOME
    
    • 1
    • 2
    • 3
    • 4

    再执行下面命令使其生效:

    source /etc/profile
    
    • 1

    配置后如图,可以看到在命令行的任何位置都能使用kubectl了:
    在这里插入图片描述

    拉取配置文件

    现在仅仅只是安装了kubectl,但是还没有指定kubectl去连接哪个集群。我们需要在Kubernetes主节点当中去拉取下来配置文件,这个配置文件当中一般还包含着认证信息。这个文件一般存放于主节点的 /etc/kubernetes/admin.conf 处,我们直接使用这行命令来拉取:

    # 来到kubernetes的配置文件目录
    cd ~/Software/kubernetes/config
    # 拉取配置文件,为了区分多个集群的配置文件,我们给其从新命名
    scp root@192.168.1.160:/etc/kubernetes/admin.conf ./192.168.1.160.conf
    
    • 1
    • 2
    • 3
    • 4

    拉取后如图:
    在这里插入图片描述

    接下来我们还需要配置一个 KUBECONFIG 环境变量去指定kubectl使用哪个配置文件,在上一步的基础上优化环境变量:

    # Set Kubernetes environment
    KUBERNETES_HOME=/Users/xiaohh/Software/kubernetes
    # 指定使用哪个配置文件的环境变量,注意后面的地址
    KUBECONFIG=$KUBERNETES_HOME/config/192.168.1.160.conf
    PATH=$PATH:$KUBERNETES_HOME/bin
    export PATH KUBERNETES_HOME KUBECONFIG
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    修改后如图:
    在这里插入图片描述

    使这个文件生效,执行这行命令:

    source /etc/profile
    
    • 1

    然后就可以直接在本地操作远程集群了:
    在这里插入图片描述

    kubectl命令自动补全

    将下面三行添加到 /etc/profile 文件末尾:

    autoload -Uz compinit
    compinit
    source <(kubectl completion zsh)
    
    • 1
    • 2
    • 3

    如图:
    在这里插入图片描述

    直接执行下面命令使其生效:

    source /etc/profile
    
    • 1

    然后我们就可以使用命令补全了。

    Linux的安装配置

    安装kubectl

    因为我的Linux虚拟机是x86_64架构的,所以我的下载地址为(注意修改自己的版本):

    https://dl.k8s.io/release/v1.21.14/bin/linux/amd64/kubectl
    
    • 1

    然后我们创建一个目录去安装kubectl,如图:
    在这里插入图片描述

    每个目录的作用:

    • bin: 装kubectl可执行文件的目录
    • config: 配置文件的目录

    接下来我们将kubectl下载到bin目录下:
    在这里插入图片描述

    然后我们还需要执行以下命令来为它赋予执行权限:

    chmod +x kubectl
    
    • 1

    然后我们执行它:

    ./kubectl --help
    
    • 1

    执行如图:
    在这里插入图片描述

    这个文件我们目前还只能在本目录下执行,而我们还需要在任何位置都能执行,所以要配置环境变量。配置如下内容(注意修改你自己的安装目录):

    # Set Kubernetes environment
    KUBERNETES_HOME=/opt/environment/kubernetes
    PATH=$PATH:$KUBERNETES_HOME/bin
    export PATH KUBERNETES_HOME
    
    • 1
    • 2
    • 3
    • 4

    再执行下面命令使其生效:

    source /etc/profile
    
    • 1

    配置后如图,可以看到在命令行的任何位置都能使用kubectl了:
    在这里插入图片描述

    拉取配置文件

    现在仅仅只是安装了kubectl,但是还没有指定kubectl去连接哪个集群。我们需要在Kubernetes主节点当中去拉取下来配置文件,这个配置文件当中一般还包含着认证信息。这个文件一般存放于主节点的 /etc/kubernetes/admin.conf 处,我们直接使用这行命令来拉取:

    # 来到kubernetes的配置文件目录
    cd /opt/environment/kubernetes/config/
    # 拉取配置文件,为了区分多个集群的配置文件,我们给其从新命名
    scp root@192.168.1.160:/etc/kubernetes/admin.conf ./192.168.1.160.conf
    
    • 1
    • 2
    • 3
    • 4

    拉取后如图(里面有集群的apiserver地址,还有一些集群的证书和认证信息):
    在这里插入图片描述

    接下来我们还需要配置一个 KUBECONFIG 环境变量去指定kubectl使用哪个配置文件,在上一步的基础上优化环境变量:

    # Set Kubernetes environment
    KUBERNETES_HOME=/opt/environment/kubernetes
    # 指定使用哪个配置文件的环境变量,注意后面的地址
    KUBECONFIG=$KUBERNETES_HOME/config/192.168.1.160.conf
    PATH=$PATH:$KUBERNETES_HOME/bin
    export PATH KUBERNETES_HOME KUBECONFIG
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    修改后如图:
    在这里插入图片描述

    使这个文件生效,执行这行命令:

    source /etc/profile
    
    • 1

    然后就可以直接在本地操作远程集群了:
    在这里插入图片描述

    kubectl命令自动补全

    首先我们需要安装bash-completion,使用以下命令安装:

    # ubuntu
    apt-get install bash-completion
    # centos
    yum install -y bash-completion
    
    • 1
    • 2
    • 3
    • 4

    然后执行bash-completion的主脚本:

    source /usr/share/bash-completion/bash_completion
    
    • 1

    生成kubectl补全脚本,并执行它:

    kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
    sudo chmod a+r /etc/bash_completion.d/kubectl
    source /etc/bash_completion.d/kubectl
    
    • 1
    • 2
    • 3

    然后我们就可以使用kubectl的命令自动补全了:
    在这里插入图片描述

  • 相关阅读:
    SAP ABAP Netweaver 容器化的一些前沿性研究工作分享
    CMake系列(九) CMake 头文件接口库编译及使用
    MySQL为什么使用B+树而不是跳表
    简单谈谈对云原生领域MQ组件kafka的理解
    三、视频设备的枚举以及插拔检测
    VSCode 快速移动光标至行尾
    成功解决TypeError: only size-1 arrays can be converted to Python scalars
    计算机毕业设计springboot+vue+elementUI高考填报志愿综合参考系统
    Linux 文件系统
    上海亚商投顾:沪指放量涨1.69% 房地产板块掀涨停潮
  • 原文地址:https://blog.csdn.net/m0_51510236/article/details/133710224