使用jenkins构建k8s项目怎么执行kubectl命令

使用jenkins构建k8s项目时需要执行kubectl命令
因为使用jenkins使用的用户是jenkins所以在执行kubectl时没有权限,但是在页面报错不会报权限错误
而是报以下错误

error: unable to recognize "k8s/xiaoxing-labs-web-deployment.yaml": no matches for kind "Deployment" in version "apps/v1"

image
如果使用百度查找的方法去修改版本v1则无法解决问题
解决方法
把kubectl的权限文档config复制到jenkins用户的对应目录

  1. 修改/etc/passwd
    把用户jenkins修改成可以登录的sbin
jenkins:x:996:992:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

image
2. 复制config文档到对应的目录
改配置文件的生成方法参考
https://www.cnblogs.com/minseo/p/12397159.html
jenkins用户默认的家目录是

/var/lib/jenkins

创建文件夹把config复制到对应文件夹

mkdir /var/lib/jenkins/.kube
cp config /var/lib/jenkins/.kube

这样jenkins用户就有了kubectl权限
把kubectl二进制文件复制到本机

# cp kubectl /usr/bin/
# chmod +x /usr/bin/kubectl

切换到jenkins用户即可执行kubectl命令

# su - jenkins
posted @ 2024-01-19 10:25  minseo  阅读(247)  评论(0编辑  收藏  举报