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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

使用kubectl连接远程Kubernetes集群

环境准备

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

下载kubectl

下载地址

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

  • Windows:

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

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

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

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

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

安装kubectl并处理配置文件

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

Windows的安装配置

安装kubectl

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

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

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

每个目录的作用

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

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

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

.\kubectl.exe --help

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

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

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

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

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

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

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

%KUBERNETES_HOME%\bin

如图
在这里插入图片描述

最后我们重启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

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

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

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

安装kubectl

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

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

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

每个目录的作用

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

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

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

chmod +x kubectl

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

./kubectl --help

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

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

# Set Kubernetes environment
KUBERNETES_HOME=/Users/xiaohh/Software/kubernetes
PATH=$PATH:$KUBERNETES_HOME/bin
export PATH KUBERNETES_HOME

再执行下面命令使其生效

source /etc/profile

配置后如图可以看到在命令行的任何位置都能使用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

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

接下来我们还需要配置一个 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

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

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

source /etc/profile

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

kubectl命令自动补全

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

autoload -Uz compinit
compinit
source <(kubectl completion zsh)

如图
在这里插入图片描述

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

source /etc/profile

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

Linux的安装配置

安装kubectl

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

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

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

每个目录的作用

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

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

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

chmod +x kubectl

然后我们执行它

./kubectl --help

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

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

# Set Kubernetes environment
KUBERNETES_HOME=/opt/environment/kubernetes
PATH=$PATH:$KUBERNETES_HOME/bin
export PATH KUBERNETES_HOME

再执行下面命令使其生效

source /etc/profile

配置后如图可以看到在命令行的任何位置都能使用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

拉取后如图里面有集群的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

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

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

source /etc/profile

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

kubectl命令自动补全

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

# ubuntu
apt-get install bash-completion
# centos
yum install -y bash-completion

然后执行bash-completion的主脚本

source /usr/share/bash-completion/bash_completion

生成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

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: k8s