使用jenkins pipeline将项目打包运行在k8s上报错kubectl: Permission denied

报错信息如下

复制代码
        stage('deploy to dev') {
            steps {
                input(id: 'deploy-to-dev', message: 'deploy to dev?')
                sh '''
                    kubectl apply -f deploy/cicd-demo-dev.yaml
                '''
            }
        }

使用这个jenkinsfile,在jenkins运行job时,执行到deploy to dev时,报错了,报错内容为/var/jenkins_home/workspace/k8s-cicd-demo@tmp/durable-c9f7af87/script.sh.copy: 6: kubectl: Permission denied

报错原因

kubectl 二进制文件根本不存在于你的 maven agent pod 中。Shell 找不到可执行文件时也会报这个错(Linux 的 exec 返回 EACCES/ENOENT 时 shell 显示为 "Permission denied")。

解决办法

在 deploy 阶段里动态安装 kubectl。

动态下载 kubectl(curl)

复制代码
        stage('deploy to dev') {
            steps {
                input(id: 'deploy-to-dev', message: 'deploy to dev?')
                sh '''
	                curl -sLO "https://dl.k8s.io/release/v1.28.9/bin/linux/amd64/kubectl"
chmod +x kubectl
                    kubectl apply -f deploy/cicd-demo-dev.yaml
                '''
            }
        }
相关推荐
带刺的坐椅1 小时前
SolonCode(编码智能体)支持鸿蒙 PC
java·web·ai编程·harmonyos·soloncode·鸿蒙 pc
程序员二叉1 小时前
【JVM】类加载全过程&双亲委派机制深度解析
java·jvm·面试
ch.ju1 小时前
Java程序设计(第3版)第四章——继承的特点
java·开发语言
成为你的宁宁2 小时前
【Prometheus Operator 监控 K8S集群的Calico 与 Ingress-Nginx 组件】
kubernetes·prometheus
Chase_______2 小时前
【Java杂项】Arrays.asList、List.of 和 new ArrayList:集合可变性避坑
java·windows·list
发际线向北2 小时前
0x07 深入了解JVM虚拟机(JVM异常处理)
java
Seven972 小时前
每个线程只管自己的变量,性能却不如单线程?问题出在缓存行
java
2601_961845152 小时前
2026四级作文预测题|英语四级写作押题+提纲PDF
java·c语言·数据库·c++·python·pdf·php
用户531397318172 小时前
「踩坑实录」原来的SQL索引自动优化失败了,线上数据库差点被打挂
java·后端