使用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
                '''
            }
        }
相关推荐
咖啡八杯12 分钟前
文法、BNF与AST
java·设计模式·解释器模式·ast·文法
要开心吖ZSH2 小时前
一文搞懂:JDK 21 虚拟线程 vs N种异步方案,到底该怎么选?
java·数据库·jdk·虚拟线程
guodingdingh7 小时前
软件开发工作问题总结0718
java·开发语言·数据库
咖啡八杯9 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
优橙教育9 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
糖果店的幽灵9 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
腻害兔11 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
碎光拾影11 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
Miao1213112 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
腻害兔12 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:支付模块 yudao-module-pay,一个让产品经理都看懂的支付中台设计
java·前端·vue.js·产品经理·ai编程