kubernetes之CI/CD工具jenkins第二篇,helm的使用

本文介绍了如何在Kubernetes环境中使用Jenkins和Helm进行CI/CD。主要内容包括安装Blue Ocean插件,通过GitLab webhook触发Pipeline,编写Dockerfile、YAML清单文件和Jenkinsfile,以及使用Helm安装/更新Release。整个流程涵盖了代码分析、构建、部署等步骤,旨在实现自动化运维。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. kubernetes之CI/CD第二篇-jenkins结合helm部署应用:

1. 概述:

   在前期的博文中我已经初步介绍过kubernetes环境下的CI/CD的使用。主要是jenkins slave pod自动创建和销毁,当有jenkins job任务执行的时候,就会自动创建一个jenkins slave pod。在本篇博文中,我们将介绍jenkins生成slave pod的另外一种方法,就是在pipeline脚本里面定义slave pod的镜像等,同时将Dockerfile、Jenkinsfile、YAML清单文件全部放到gitlab上面,通过jenkins的插件Blue Ocean自动创建多任务的Job。主要的流程包括如下:

  1. Jenkins服务器安装Blue Ocean插件;
  2. 开发人员提交代码到 Gitlab 代码私有仓库;
  3. 通过 Gitlab 配置的 Jenkins Webhook 触发 Pipeline 自动构建;
  4. 配置Blue Ocean,添加git地址和认证信息,创建多分支流水线任务;
  5. Jenkins 触发构建构建任务,根据 Pipeline 脚本定义分步骤构建;
  6. 先进行代码静态分析,单元测试;
  7. 然后进行 Maven 构建(Java 项目);
  8. 根据构建结果构建 Docker 镜像;
  9. 推送 Docker 镜像到 test 仓库;
  10. 触发更新服务阶段,使用 Helm 安装/更新 Release;
  11. 查看服务是否更新成功。

2. 实施过程:

  2.1 安装插件Blue Ocean:

  选择系统管理---插件管理---Available---输入Blue Ocean搜素插件名称---选择安装插件并重启服务生效

  2.2 编写DockerFile:

  这里的DockerFile主要用途是产生应用的镜像,并上传到私有仓库。一般一个微服务模块就是一个Dockerfile,也就是一个独立的镜像;我这边演示的一个demo程序,有两个微服务模块,所以就需要两个Dockerfile,文件分别放置到微服务pom.xml打包文件的同级目录;

  这个是后端应用的Dockerfile

# Start with a base image containing Java runtime
FROM openjdk:8-jdk-alpine

# Add Maintainer Info
LABEL maintainer="gaoyang@test.cn"

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
ENV TZ=Asia/Shanghai
RUN mkdir /app
WORKDIR /app
COPY target/polls-0.0.1-SNAPSHOT.jar /app/polls.jar

# Make port 8080 available to the world outside this container
EXPOSE 8080

# Run the jar file
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/polls.jar"]

  Dockerfile解释如下:
  1. 定义基础镜像,一般是alpine镜像;这种镜像比较小,此处使用jdk1.8的镜像;
  2. 定义环境变量,创建应用目录,拷贝maven编译之后的jar包到容器内的应用目录;
  3. 定义暴露端口,此处并不是真的暴露,只是描述;真正暴露的端口在yaml清单文件里面定义;
  4. 定义入口命令,也就是程序启动的命令;

  这个是前端应用的Dockerfile,前端应用是一个nginx服务器,将前端的html文件放在nginx根目录

FROM nginx:1.15.10-alpine
ADD build /usr/share/nginx/html
ADD nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
ENTRYPOINT ["nginx","-g","daemon off;"]

  Dockerfile解释如下:

  1. 定义基础镜像,一般是alpine镜像;这种镜像比较小;此处使用nginx镜像作为前端的web服务器;
  2. 添加网页html文件到nginx网页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值