使用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 分钟前
多模块架构演进:横向分层 vs 纵向领域,13 个真实项目的切分对照
java·后端·微服务
Java成神之路-16 分钟前
Java String 为什么不可变?和 HashMap 到底有什么关系?
java
paopaokaka_luck20 分钟前
基于springboot+vue的益暖微光公益服务平台(DeepSeek公益助手、善款信息追溯、志愿服务积分闭环、ECharts运营分析、活动状态自动流转)
java·前端·javascript·spring boot·mysql·架构·echarts
文丑颜不良啊31 分钟前
LeetCode1401~1420题目解析
java·leetcode
Nuanyt32 分钟前
LeetCode Hot 100 链表专题2 3 题 (Java)
java·笔记·算法·leetcode·链表
文丑颜不良啊40 分钟前
LeetCode1341~1360题目解析
java·leetcode
QianhangQianping1 小时前
撤销重做不是「存快照」:一个可视化编辑器的Operation 设计
java·前端·数据库·typescript·编辑器·前端架构·撤销重做
海绵宝宝转agent1 小时前
LeetCodehot100题解
java·笔记·学习·算法·leetcode·深度优先
SunnyDays10111 小时前
Java 操作 Word 脚注和尾注:添加、读取与删除
java·word
SunnyDays10111 小时前
Java 为 Word 添加页码:隐藏封面页码、从指定页开始编号、奇偶页页码设置等
java·word·页码