最近需要通过Jenkins实现自动化部署项目到Kubernetes,由于k8s集群使用的是Rancher,已经获取到kubecofig文件(从Rancher中获取Kubeconfig文件),可是使用Jenkins上的Kubernetes插件死活连不上集群。没办法临时在Jenkins服务器上安装kubectl工具来部署项目。

一、由于Jenkins是采用Docker部署的,首先进入容器安装kubectl工具,为了防止Rancher又扯拐,直接用Rancher自己的kubectl下载地址下载:

# 安装kubectl
curl -o /usr/local/bin/kubectl http://rancher-mirror.cnrancher.com/kubectl/v1.16.15/linux-amd64-v1.16.15-kubectl
chmod +x /usr/local/bin/kubectl
ln -s /usr/local/bin/kubectl /usr/bin/kubectl

二、把从Rancher下载的kubeconfig文件保存到~/.kube/config

三、通过Jenkins项目执行shell kubectl get all 判断是否连接成功,成功后具体项目就可以通过kubectl进行项目发布部署了;

遗留的问题:对于有多个k8s集群的环境,虽然可以通过kubectl config use-context xxxxx 切换集群环境,但是由于对于Jenkins可以多个任务同时执行,此时环境是不可控的。