【Kubernetes】第二十八篇 - 实现自动构建部署

一,前言

上一篇,介绍了 Deployment、Service 的创建,完成了前端项目的构建部署;

希望实现:推送代码 -> 自动构建部署-> k8s 滚动更新;

本篇,实现自动构建部署


二,推送触发构建

构建 jenkins

重新构建 jenkins:cicd-backend
构建镜像,推送到私有仓库

[root@k8s-master cicd]# kubectl get pods
NAME                             READY   STATUS    RESTARTS   AGE
cicd-backend-98b5d4f57-ftrdk     1/1     Running   0          2d21h
cicd-frontend-77447bfdb4-bgt6t   1/1     Running   0          35h
cicd-mysql-745975859b-c4b6p      1/1     Running   5          2d21h

k8s 滚动更新,使用新的镜像:

[root@k8s-master cicd]# kubectl get pods
NAME                             READY   STATUS              RESTARTS   AGE
cicd-backend-86bf8b44d-8gghn     0/1     ContainerCreating   0          3s
cicd-backend-98b5d4f57-ftrdk     1/1     Running             0          2d21h
cicd-frontend-77447bfdb4-bgt6t   1/1     Running             0          35h
cicd-mysql-745975859b-c4b6p      1/1     Running             5          2d21h

[root@k8s-master cicd]# kubectl get pods
NAME                             READY   STATUS    RESTARTS   AGE
cicd-backend-86bf8b44d-8gghn     1/1     Running   2          3m30s
cicd-frontend-77447bfdb4-bgt6t   1/1     Running   0          35h
cicd-mysql-745975859b-c4b6p      1/1     Running   7          2d21h

备注:如果 jenkins 卡死了,需要重启 jenkins

systemctl restart jenkins.service

安装插件

进入 jenkins 系统管理 => 插件管理 => 可选插件标签

搜索 gitee,安装 gitee 插件:

搜索 last changes 安装,可视化查看 git 文件变化:

构建触发器

  • Gitee webhook 触发构建,并记录 webhook URL 地址
  • 生成 Gitee WebHook 密码

前后端项目都需要进行以下配置,以后端 backend 为例:

1,开启 gitee 插件:

http://182.92.4.158:8080/gitee-project/cicd-backend

2,在 jenkins 生成 WebHook 秘钥:

44b40c000287f8db070421d762a6b7bf

3,配置 WebHooks

打开项目的 WebHooks 管理页面

进入gitee 对应仓库 =》管理 =》WebHooks:

4,配置 webhookURL 和 WebHook 秘钥

添加 WebHook:填写前面生成的 url 和秘钥,点击添加即可

前端同上;

  • 注意事项

亲测,使用 jenkins 提示的 ip 和服务器外网是不一样的,不同,需要修改为公网 ip 就可以了

此时,修改代码后提交 gitee,会触发重新构建,k8s 滚动更新

47.94.92.122:8082/cicd-backend:20220114115112

查看 pods:

[root@k8s-master cicd]# kubectl get pods
NAME                             READY   STATUS    RESTARTS   AGE
cicd-backend-86bf8b44d-8gghn     1/1     Running   2          75m
cicd-frontend-5466464465-f5mps   1/1     Running   0          5m22s
cicd-mysql-745975859b-c4b6p      1/1     Running   8          2d22h

[root@k8s-master cicd]# kubectl get pods
NAME                             READY   STATUS              RESTARTS   AGE
cicd-backend-59748596c4-jq7sw    0/1     ContainerCreating   0          26s
cicd-backend-86bf8b44d-8gghn     1/1     Running             2          76m
cicd-frontend-5466464465-f5mps   1/1     Running             0          6m24s
cicd-mysql-745975859b-c4b6p      1/1     Running             8          2d22h

三,结尾

本篇,介绍了 jenkins、k8s 自动构建部署的实现;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

28个案例问题分析---15---登陆之后我加入的课程调用接口报错--ArrayList线程不安全。占用内存情况

ArrayList线程不安全。占用内存情况故事背景方案&思路解决线程不安全的问题方案一:在这两个方法之前添加 synchronized 关键字。方案二:使用ThreadLocal变量。解决重复创建对象问题。总结&升华故事背景 存入redis的值,可能会出现错误…

黑马《数据结构与算法2023版》正式发布

有人的地方就有江湖。 在“程序开发”的江湖之中,各种技术流派风起云涌,变幻莫测,每一位IT侠客,对“技术秘籍”的追求和探索也从未停止过。 要论开发技术哪家强,可谓众说纷纭。但长久以来,确有一技&#…

实用调试技巧【详细介绍】

实用调试技巧1. 什么是bug?2. 调试是什么?有多重要?2.1 调试是什么?2.2 调试的基本步骤2.3 Debug和Release的介绍3. Windows环境调试介绍3.1 调试环境的准备3.2 学会快捷键3.3 调试的时候查看程序当前信息3.3.1 查看临时变量的值3…

Java中的异常

程序错误一般分为三种:编译错误: 编写程序时没有遵循语法规则,编译程序能够自己发现错误并提示位置和原因。运行错误:程序在执行的时候运行环境发现了不能执行的操作。比如,JVM出错了,内存溢出等。逻辑错误…

Docker常用项目实战演练

docker镜像源的修改 linux环境下编辑 /etc/docker/daemon.json vi /etc/docker/daemon.json #如添加如下网易镜像源 { "registry-mirrors": ["http://hub-mirror.c.163.com"] }docker run命令详细解释 日常工作中用的比较多的是docker run命令&#xff…

2023年目标检测毕业设计(yolov5车辆识别、车辆检测、车牌识别、行人识别)

车辆识别视频yolov5车辆识别视频yolov5 yoloR对比行人车辆识别视频yolov8识别视频订阅专栏获得源码:http://t.csdn.cn/zsG47 ​​​​​​​先看一下yolo发展史 二、单目测距原理 图中有一个车辆,且车辆在地面上,其接地点Q必定在地面上。那么Q点的深度便…

少儿Python每日一题(23):楼梯问题

原题解答 本次的题目如下所示: 楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,走完n阶台阶共有多少种不同的走法? 输入格式: 输入楼梯的阶梯数n 输出格式: 输出不同走法的个数 输入样例&am…

Unity学习日记12(导航走路相关、动作完成度返回参数)

目录 动作的曲线与函数 创建遮罩 导航走路 设置导航网格权重 动作的曲线与函数 执行动作,根据动作完成度返回参数。 函数,在代码内执行同名函数即可调用。在执行关键帧时调用。 创建遮罩 绿色为可效用位置 将其运用到Animator上的遮罩,可…

嵌入式学习笔记——STM32寄存器编程实现外部中断

外部中断前言EXTI的介绍EXTI是什么EXTI的主要特性数量对应中断源的命名EXTI的框图配置流程寄存器介绍编程思路编程效果前言 上一篇中,介绍了关于STM32的中断管理以及具体配置,本文就使用之前的配置流程来实现一下外部中断的功能。 EXTI的介绍 EXTI是什…

SDIO读写SD卡速度有多快?

前两天测试了SPI方式读写SD卡的速度《SPI方式读写SD卡速度测试》,今天来测试一下SDIO方式的读写速度。测试条件:单片机:STM32F407VET6编译环境:MDK 5.30HAL库SD卡:闪迪32GB/64GB TF卡文件系统:FatFS R0.12c…

SpringCloud详解01-SpringCloudAlibaba、Nacos

文章目录前言一、架构演进1、web1.0阶段2、web2.0阶段3、垂直架构4、分布式架构二、SpringCloud基本概念1.特点2.SpringCloud和SpringCloudAlibaba3.SpringCloudAlibaba体系核心组件三、SpringCloudAlibaba1、注册中心Nacos2、Nacos安装和启动总结前言 本篇记录一下SpringClou…

ChatGPT研究分享:机器第一次开始理解人类世界

0、为什么会对ChatGPT感兴趣一开始,我对ChatGPT是没什么关注的,无非就是有更大的数据集,完成了更大规模的计算,所以能够回答更多的问题。但后来了解到几个案例,开始觉得这个事情并不简单。我先分别列举出来&#xff0c…

每日学术速递3.17

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Breaking Common Sense: WHOOPS! A Vision-and-Language Benchmark of Synthetic and Compositional Images 标题:打破常识:哎呀!合成和合成图像…

【Redis】搭建哨兵集群

目录 集群结构 准备实例和配置 启动 测试 集群结构 这里我们搭建一个三节点形成的Sentinel集群,来监管之前的Redis主从集群。如图: 三个sentinel实例信息如下: 节点IPPORTs1192.168.150.10127001s2192.168.150.10127002s3192.168.150.…

python并发编程多线程

在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合到一起,是一个…

C语言指针操作(十)动态内存分配与指向它的指针变量

目录 一、什么是内存的动态分配 二、怎样建立内存的动态分配 2.1用malloc函数开辟动态存储区 2.2用calloc函数开辟动态存储区 2.3用realloc函数重新分配动态存储区 2.4用free函数释放动态存储区 三、void指针类型 四、举例说明 一、什么是内存的动态分配 全局变量是分…

redis持久化的几种方式

一、简介 Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持…

【蓝桥杯专题】 贪心(C++ | 洛谷 | acwing | 蓝桥)

菜狗现在才开始备战蓝桥杯QAQ 文章目录【蓝桥杯专题】 (C | 洛谷 | acwing | 蓝桥)1055. 股票买卖 IIAcWing 104. 货仓选址传递糖果AcWing 112. 雷达设备付账问题乘积最大AcWing 1247. 后缀表达式P【蓝桥杯专题】 (C | 洛谷 | acwing | 蓝桥&…

Flink 应用案例——求网页访问量Top N 实时计算(附可执行代码)

在学习了Flink之后,笔者通过以下案例对Flink API 进行简单复习 目录 案例要求 前置准备 编写主程序(点此跳转至代码) 运行截图 案例要求 以下数据 为某网站的访问日志 现要求通过以下数据 统计出最近10s内最热门的N个页面(即…

【3.17】MySQL索引整理、回溯(分割、子集问题)

3.1 索引常见面试题 索引的分类 什么是索引? 索引是一种数据结构,可以帮助MySQL快速定位到表中的数据。使用索引,可以大大提高查询的性能。 按「数据结构」分类:Btree索引、Hash索引、Full-text索引。 InnoDB 存储引擎创建的聚簇…