使用kubectl联接远程Kubernetes集群
环境打算
你须要打算一个Kubernetes集群,你要记下你安装Kubernetes的版本。如图我早已打算好了一个版本号为v1.21.14的集群:
下载kubectl下载地址
注意下载的版本号最好与你安装的Kubernetes版本对应上,各个版本的下载地址(⚠️注意更改url中的版本号):
https://dl.k8s.io/release/版本号/bin/windows/amd64/kubectl.exe
https://dl.k8s.io/release/版本号/bin/windows/arm64/kubectl.exe
MacOS:
https://dl.k8s.io/release/版本号/bin/darwin/amd64/kubectl
https://dl.k8s.io/release/版本号/bin/darwin/arm64/kubectl
https://dl.k8s.io/release/版本号/bin/linux/amd64/kubectl
https://dl.k8s.io/release/版本号/bin/linux/arm64/kubectl
以v1.21.14的MacOSM1芯片的笔记本为例,我的下载地址就为(注意更改版本号):
https://dl.k8s.io/release/v1.21.14/bin/darwin/arm64/kubectl
安装kubectl并处理配置文件
本次会以MacOS、Windows、Linux三个系统为例为你们讲解。你可以在目录中快速点击你的操作系统linux 删除文件夹,只看你自己的操作系统的内容即可。
Windows的安装配置安装kubectl
由于我的Windows笔记本是x86_64构架的,所以我的下载地址为(注意更改自己的版本):
https://dl.k8s.io/release/v1.21.14/bin/windows/amd64/kubectl.exe
之后我们创建一个目录去安装kubectl集群linux,如图:
每位目录的作用:
接出来我们将kubectl下载到bin目录下:
之后我们可以执行下边命令查看帮助:
.kubectl.exe --help
执行如图:
接出来我们须要配置一下环境变量,来到设置点击系统:
之后点击关于然后点击中级系统设置:
之后点击环境变量:
在环境变量下点击新建:
配置一个名为KUBERNETES_HOME的环境变量,值为你Kubernetes安装的根目录:
之后找到path以后将这行配置添加到最后:
%KUBERNETES_HOME%bin
如图:
最后我们重启PowerShell就可以在任何地方执行kubectl了:
拉取配置文件
如今仅仅只是安装了kubectl,而且还没有指定kubectl去联接那个集群。我们须要在Kubernetes主节点当中去拉取出来配置文件,这个配置文件当中通常还包含着认证信息。这个文件通常储存于主节点的/etc/kubernetes/admin.conf处,我们直接使用这行命令来拉取:
# 来到kubernetes的配置文件目录
cd E:SoftwareDeveloperToolsKubernetesconf
# 拉取配置文件,为了区分多个集群的配置文件,我们给其从新命名
scp root@192.168.1.160:/etc/kubernetes/admin.conf ./192.168.1.160.conf
拉取后如图:
之后我们须要配置一个KUBECONFIG环境变量名子去指向这个配置文件:
之后我们重启PowerShell能够远程工作apiserver为192.168.1.160的这台主机了:
Mac的安装配置安装kubectl
由于我的Mac笔记本是M1芯片的,所以我的下载地址为(注意更改自己的版本):
https://dl.k8s.io/release/v1.21.14/bin/darwin/arm64/kubectl
之后我们创建一个目录去安装kubectl集群linux,如图:
每位目录的作用:
接出来我们将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,如图:
每位目录的作用:
接出来我们将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处linux软件工程师培训,我们直接使用这行命令来拉取:
# 来到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的命令手动补全了: