Gitlab CI 报错: /usr/bin/bash: line 137: kubectl: command not found

news2024/12/23 10:46:43

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • 1. 场景
  • 2. 报错
  • 3. 分析
  • 4. 解决

1. 场景

在使用Gitlab CI自动化部署Java项目打包–>构建镜像–>部署阶段出现报错
原有部署阶段的内容如下

#任务部分,根据定义的stage顺序来执行任务
#
job4-deploy:
  #任务阶段
  stage: deploy
  #任务执行选用的runner的标签,定义后会根据标签选用对应的runner执行任务
  tags:
    - runner-01
  #指定此job只对master分支生效
  only:
    - master
  #执行脚本,部署服务
  script:
    - echo '项目部署--->开始部署,缓存部署,pod部署,服务部署'
    #查看环境变量是否配置了kubectl对应的变量
    - echo $PATH
    #查看文件夹是否创建
    - ls k8s-deploy
    #部署
    - kubectl apply -f k8s-deploy/sb-pvc.yaml
    - kubectl apply -f k8s-deploy/sb-dplm.yaml
    - kubectl apply -f k8s-deploy/sb-svc.yaml

2. 报错

报错内容如下

/usr/bin/bash: line 137: kubectl: command not found

截图
在这里插入图片描述

3. 分析

这里需要说的东西比较多

  • .gitlab-ci.yml文件执行的时候是在gitalb-runner节点服务中跑的脚本命令
  • gitlab-runner中并没有安装kbuectl
  • gitlab-runner就是个容器服务,他是寄宿在集群中某个节点服务器上的一个容器
  • 在gitlab-runner中无法使用kubectl命令
  • 自动化部署只有打包、构建镜像并推送到镜像仓库这些,等到推送到镜像仓库就结束了,自动化部署就不用再跑脚本了
  • 在yml文件中进行配置仓库中的镜像等内容,在集群节点服务器中使用kubectl命令部署yml文件
  • 后续镜像更新,yml部署的服务也会随之更新,这就实现了自动化部署的整个流程

4. 解决

将deploy阶段的内容删除,不需要这些,然后到阶段服务器(如主节点)中进行部署yml文件

感谢阅读,祝君暴富!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1461024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【 Maven 】花式玩法之多模块项目

目录 一、认识Maven多模块项目 二、maven如何定义项目的发布策略 2.1 版本管理 2.2 构建配置 2.3 部署和发布 2.4 依赖管理 2.5 发布流程 三、使用Jenkins持续集成Maven项目 四、总结 如果你有一个多模块项目,并且想将这些模块发布到不同的仓库或目标位置&…

机器学习基础(四)非监督学习的进阶探索

导语:上一节我们详细探索监督学习的进阶应用,详情可见: 机器学习基础(三)监督学习的进阶探索-CSDN博客文章浏览阅读296次,点赞13次,收藏11次。监督学习作为机器学习的一个主要分支,…

34.仿简道云公式函数实战-数学函数-PRODUCT

1. PRODUCT函数 函数使所有以参数形式给出的数字相乘并返回乘积。 2. 函数用法 PRODUCT(number1, [number2], …) 3. 函数示例 PRODUCT(数量, 单价) 4. 代码实战 首先我们在function包下创建math包,在math包下创建ProductFunction类,代码如下&…

x86与arm架构区别

前言 我们经常讨论的芯片的X86架构和ARM架构,那么他们的的区别什么呢?其实俩种都是主流的两种计算机处理器架构(CPU)架构,X86架构的CPU是PC服务器行业的老大,ARM架构的CPU则是移动端的老大。X86架构和arm架…

如何在Shopee 上选择热销商品?shopee应该在哪选品

在如今激烈竞争的电商市场中,如何通过精准的选品策略提升在Shopee平台上的销售业绩成为卖家们关注的焦点。Shopee作为一个蓬勃发展的电商平台,提供了多种资源和工具来帮助卖家做出明智的选品决策。通过深入了解这些渠道和策略,卖家们可以更好…

云服务器ECS价格表出炉——阿里云

2024年阿里云服务器租用价格表更新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服…

Redis 有哪些架构模式?讲讲各自的特点

单机版模式 特点:简单 问题: 1、内存容量有限 2、处理能力有限 3、无法高可用。 主从复制 Redis 的复制(replication)功能允许用户根据一个 Redis 服务器来创建任意多个该服务器的复制品,其中被复制的服务器为主服…

Linux基础(vim、常用指令介绍)

Linux基础 1、目录结构2、vi和vim3、常用指令运行级别找回密码帮助指令时间日期指令搜索查找文件目录操作磁盘管理指令压缩和解压缩 4、组管理和组权限用户操作指令权限 1、目录结构 Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”&a…

挑战杯 基于LSTM的天气预测 - 时间序列预测

0 前言 🔥 优质竞赛项目系列,今天要分享的是 机器学习大数据分析项目 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/po…

Vue状态管理库-Pinia

一、Pinia是什么? Pinia 是 Vue 的专属状态管理库,它允许支持跨组件或页面共享状态,即共享数据,他的初始设计目的是设计一个支持组合式API的 Vue 状态管理库(因为vue3一个很大的改变就是组合式API),当然这…

设计师必看!哪个云渲染平台便宜?

渲染100 溜云库 渲云 平均价格 9.27 9.37 9.51 Camera007 5.81 6.1 4.7 Camera008 18.66 17…

Laravel02 路由基本概念和用法 给视图传递请求参数

Laravel02 路由基本概念和用法 1. 路由的基本概念2. 给视图传递请求参数 1. 路由的基本概念 routes文件夹下的web.php是用来定义路由规则的。 自己定义一个路径 2. 给视图传递请求参数 在laravel里使用一个辅助函数request来快速获取请求参数

Socket通信---Python发送数据给C++程序

0. Problems 很多时候实现某种功能,需要在不同进程间发送数据,目前有几种主流的方法,如 让python和C/C程序互相发送数据,其实有几种方法: 共享内存共享文件Socket通信 在这里只提供Socket通信的例程,共享…

C语言读取 ini 配置文件,修改/添加键值对

C语言读取 ini 配置文件,修改/添加键值对 C语言读取 ini 配置文件,对section中的键值对进行修改/添加,如果section不存在,则在末尾将新的section/key/value 添加进去。 一、了解什么是INI文件? ini 文件是Initializ…

2022蓝帽杯取证初赛

检材:https://pan.baidu.com/s/1ibOdxyCWeC5x0DQKjwcz7w?pwdvg6g 目录 手机取证1、627604C2-C586-48C1-AA16-FF33C3022159.PNG图片的分辨率是?(答案参考格式:19201080)2、姜总的快递单号是多少?&#xff0…

【2024软件测试面试必会技能】Jmeter_性能测试(4):性能测试脚本的优化

性能测试脚本的优化 以PHP论坛为例:http://47.107.178.45/phpwind/ 根据上一篇的性能测试(3)的脚本进行优化;见下图: 如上图中,把发帖和回帖的事务添加到随机控制器中,登录操作添加到仅一次控制器中&…

yolov5转换成TensorRT推理过程笔记

笔记内容来自 B站 手写AI 一、用硬代码实现 GitHub - wang-xinyu/tensorrtx: Implementation of popular deep learning networks with TensorRT network definition API 安装python、cuda11.2、cudnn对应cuda11.2软件 1、在yolov5-master下训练完成后生成best.pt文件(训练时…

Vue模版语法之属性绑定v-bind

双大括号不能在 HTML 属性中使用。想要响应式地绑定一个属性&#xff0c;应该使用 v-bind 指令 1. 使用v-bind绑定属性 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>新建页面</title><sc…

Vue3实现带动画效果的tab栏切换

效果图如下所示&#xff1a; 实现思路&#xff1a; 其实很简单 1、首先切换tab栏时tab标签激活下标与对应显示内容下标要一致。 2、其次点击tab栏切换时更新下标 3、最后就是css添加动画效果 这样就了&#xff01;&#xff01;&#xff01; 上全部代码 <template><…

有方机器人 STM32智能小车 项目学习笔记1

今天开始学习有方机器人--智能小车项目&#xff0c;正点原子部分的学习先放一放&#xff0c;还是小车更有吸引力哈哈。 新建工程及工程模板搭建 新建工程须知 目前常用的 STM32 的开发方式主要有基于寄存器编程、基于标准库函数编程、基于 HAL 库编程这三种。 寄存器版本--…