我的jenkins在EC2上运行并安装了kubectl。我还配置了kubectl以与AWS中的EKS集群进行通信。
现在,我正在尝试使用Jenkins管道自动将应用程序部署到EKS。但是当詹金斯到达下面的代码
sh "kubectl apply -f platform_api_deployment.yml"
正在向我显示此错误
/var/lib/jenkins/workspace/platform-api-pipeline/kubernetes@tmp
/durable-2696d974/script.sh: line 1: kubectl: command not found
我尝试手动部署它,并且效果很好。
答案 0 :(得分:1)
您需要在EC2上安装kubectl 实例 (遵循此链接:https://kubernetes.io/docs/tasks/tools/install-kubectl/)。
安装后,您必须导出路径: https://opensource.com/article/17/6/set-path-linux
或者您使用完整路径,例如: sh“〜/ place / where / kubectl / installed / kubectl apply -f platform_api_deployment.yml”
答案 1 :(得分:0)
您是否在其他Machine / EC2上运行jenkins slave?我认为如果与主节点不同,则需要在从属服务器上安装kubectl
答案 2 :(得分:0)
您需要在构建映像时在dockerfile中添加kubectl二进制文件,以便在jenkins作业期间执行。
COPY kubectl /bin/kubectl
一旦获得kubectl二进制文件,就将该值添加到docker文件中。