kubectl工具安装指南

kubectl是一个用于连接Service Mesh控制平面的工具,可以安装在办公电脑的Windows系统上,也可以安装在虚拟机的Linux系统上,只要网络能与控制平面的公网地址互通即可。下面分别介绍在Windows系统和Linux系统的安装方法。

1. Windows上安装kubectl

1.1. 使用curl下载kubectl客户端工具
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.19.0/bin/windows/amd64/kubectl.exe
这里下载的版本是v1.19.0,要查看当前的稳定版本,可以在浏览器中打开如下网址:
https://storage.googleapis.com/kubernetes-release/release/stable.txt
获取到最新稳定版本后,可以将上述curl下载命令中的v1.19.0替换为当前的稳定版本。

1.2. 将kubectl工具放到系统path环境变量中已经有的目录下
下载之后的kubectl.exe是一个可执行文件,将其放置到系统path环境变量已经有的目录下,即可在cmd中使用kubectl命令。
首先在cmd中使用path命令查看系统的path环境变量
image.png

然后将kubectl.exe文件复制到上图中任何一个目录,比如C:\Windows。
当然也可以将kubectl.exe放到一个你想要放置的目录,然后将该目录加入到path环境变量中。
最后在cmd上使用命令kubectl version --client确认是否安装成功。
image.png

1.3. 配置kubectl客户端
客户端安装完成后需要进行配置,才能连接上服务器。默认情况下kubectl客户端首先会到当前用户的HOME目录下的.kube目录查找config文件读取其中的配置。
在cmd上使用命令cd %USERPROFILE%切换到当前用户的HOME目录。
使用命令mkdir .kube创建.kube目录(注意kube前面有一个点(.))。
将开发人员给的配置文件重命名为config,然后复制到刚刚创建的.kube目录下。
(要连接到Service Mesh控制平面,需要研发提供一个配置文件,配置文件中有控制平面的IP地址及认证秘钥等信息)
最后使用kubectl version命令确认是否可以连接上服务器
image.png

如果第二行的Sever Version显示正常,则说明连接服务器正常,否则连接失败,需要确认是否网络是否正常,或者配置文件配置是否有问题。

2. Linux上安装kubectl

2.1. 使用curl下载kubectl客户端工具
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命令已经指定下载最新稳定版本,如果想要下载特定版本,可以将$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)替换为版本号。
image.png

将下载后的kubectl可执行文件添加可执行权限
chmod +x ./kubectl
image.png

将kubectl工具放到系统path环境变量中已经有的目录下
使用命令sudo mv ./kubectl /usr/local/bin/kubectl将kubectl文件移到/usr/local/bin/目录下。
然后使用命令kubectl version --client确认是否安装成功。
image.png

客户端版本号显示正常说明安装成功。

2.2. 配置kubectl客户端
切换到当前用户的的HOME目录
cd ~

创建 .kube 目录:
mkdir .kube
(该目录被创建后使用ls命令不能显示,因为以点开头的目录是隐藏的,使用ls -a命令可以显示隐藏目录)

将配置文件重命名为config,然后放置到刚刚创建的.kube 目录
最后测试配置是否成功。
kubectl version
image.png


这里只介绍了windows和Linux的安装方法,macOS方法与Linux类似,具体可参考官方文档:
https://kubernetes.io/docs/tasks/tools/install-kubectl/

3. kubectl使用配置文件连接测试环境
3.1. 命令中不指定配置文件
使用kubectl命令如果没有指定配置文件,则默认情况下,kubectl 在 $HOME/.kube 目录下查找名为 config 的文件。HOME是当前用户的home目录,在Linux中,如果用户名为centos则当前用户的HOME目录为: /home/centos,使用命令 cd ~可进入该目录。在Windows中,cmd中输入cd %homepath%可进入当前用户的HOME目录。
一个config文件的示例如下:
 
apiVersion: v1
clusters:
- cluster:
    server: https://XXX:XXX
    certificate-authority-data: XXXX
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: "kubernetes-admin"
  name: kubernetes-admin-XXX
current-context: kubernetes-admin-XX
kind: Config
preferences: {}
users:
- name: "kubernetes-admin"
  user:
    client-certificate-data: XXXXX== 
    client-key-data: XXXXXXX=
 
kubectl不指定配置文件使用的示例:
kubectl get pods -n namespace

 

3.2. 命令中指定配置文件
实际使用的时候,更常见的是将配置文件放置在特定的目录中,然后在kubectl命令中指定某个配置文件,即可连接配置文件中的测试环境。
指定配置文件的使用示例:
kubectl --kubeconfig=/home/centos/vc_1.config get pods -n namespace
如果配置文件在当前目录下则可以省略命令中的目录路径:
kubectl --kubeconfig=vc_1.config get pods -n namespace

 

posted @ 2021-06-02 21:57  Shadow.Yin  Views(6403)  Comments(0Edit  收藏  举报