• Jenkins(5)容器化部署 及 Jenkins集群配置


    容器化部署

    运用docker的话,主要是通过三种方式

    通过外挂目录实现

    这种方式适用于团队人数不多,项目不大的情况下

    在服务器里面整一个docker镜像,在docker镜像里面内置了jdk,这里面没有运行的jar包,正在运行的jar包是在宿主主机的某一个目录里面

    将宿主主机里面的目录与docker容器相互关联,当访问docker的某一个目录的时候,会映射到宿主主机对应的目录

    如果想停机更新一下的话,就将宿主主机对应的目录清理一下,重启一下docker容器即可
    在这里插入图片描述

    将jar包直接打包到镜像里面

    该方式更加时候云原生的环境

    服务器上面有一个docker容器,通过Jenkins推送jar包和dockerfile,dockerfile里面配置好了如何去生成一个镜像出来,当服务器接收到这两个文件后,执行一次build,创建出一个新的镜像,使用这个新的镜像去生成一个容器
    在这里插入图片描述

    生成新镜像,推送到docker私服中

    服务器里面有docker和另一个服务器里面存放的docker私服(如Harbor私服)

    docker的服务器接收到dockerfile和jar包,生成新的镜像,这个镜像直接推送到私服(Harbor)里面,过后通过k8s集群从私服里面去拉取这个镜像,k8s里面也是需要docker环境,在这里拉取到镜像后,去生成多个容器去运行

    在这里插入图片描述

    实现:jar包打包到镜像里面

    1. 准备一台测试服务器的 docker环境

    2. 准备支持jdk的镜像,dockerfile文件如下:

      FROM openjdk:11
      EXPOSE 8080
      WORKDIR /root
      ADD jarfile/demo*.jar /root/app.jar
      ENTRYPOINT ["java","-jar","/root/app.jar"]
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    3. 将jar包打包到镜像里面

       docker build -t demo .
      
      • 1

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    实现:docker外挂目录

    docker run -d -p 8080:8080 --name demo-out -v /root/jarfile/demo-1-0.0.1-SNAPSHOT.jar:/app.jar openjdk:11 java -jar app.jar
    
    • 1

    在这里插入图片描述

    实现:外挂目录完成自动化部署

    在Jenkins里面去自动化的部署,在Jenkins构建之前需要去清理一下文件、将现在正在运行的容器给删除掉,后面才是构建,最后才是之前使用的命令

    配置Jenkins:

    1. 将对应目录下的文件给清理掉(这里是root目录),并将容器给停掉
      在这里插入图片描述

    2. 构建之前的操作结束后,现在去执行build的操作,build操作配置没有问题的话,便去配置post steps配置

    3. 在运行之前,在服务器上面先去将对应的镜像给创建完,在Jenkins里面便直接去运行这个镜像(上面我们已经构建了对应的镜像了)
      在这里插入图片描述

    实现:jar包打包到镜像运行

    配置Jenkins:

    1. 清理工作:将旧的dockerfile清理、jar包清理、镜像容器清理
      在这里插入图片描述

    2. 构建:在项目里面新建一个目录并配置dockerfile文件内容,将其和代码一起提交到git上面去
      在这里插入图片描述

    3. 重新build镜像(docker):
      将dockerfile文件发送,并去掉前缀,并发送到root目录里面
      在这里插入图片描述
      开始执行build操作:打包镜像,run镜像
      在这里插入图片描述

    Jenkins集群

    在虚拟机里面设置了三台Jenkins服务器地址,以这三台去创建Jenkins集群,去添加两个Jenkins节点

    配置节点:进入配置页面
    在这里插入图片描述
    进去后,会进入下面的界面
    在这里插入图片描述
    点击新建节点
    在这里插入图片描述
    进行如下配置
    在这里插入图片描述

    输入完名字后,点击create,会出现更加详细的配置
    在这里插入图片描述
    这里有两种用法,如下:

    1. 第一种:是Jenkins自己去选择用不用它,只能是尽可能去使用它,这个配置是包含第二种指定的情况的
    2. 第二种:匹配到这个标签后才会去用它
      在这里插入图片描述
      这里选择的是第一种方式
      在这里插入图片描述

    在这里去添加凭证等内容:即Jenkins的服务器地址等内容
    在这里插入图片描述

    点击保存后,界面便成如下的了
    在这里插入图片描述

    如果配置没有问题的话,过了一会儿便会出现下面的显示
    在这里插入图片描述

    配置第二台Jenkins,与上面的配置差不多

    在这里插入图片描述
    选择如果去对任务进行构建的话,还是只能构建一个,之前的构建成功后,后面的才能继续构建,还没有实现并发的一种效果

    如果想要实现负载的效果的话,还是需要去配置一下任务的一些配置

    进入配置后,会发现多了一个选项,如下
    在这里插入图片描述
    将上面的勾选上,以后在运行的时候便会自动的去分配当前的构建任务在哪一个节点上运行
    在这里插入图片描述
    现在去进行构建的话,会发现会在多个节点运行
    在这里插入图片描述
    在下面可以去配置并发构建的个数(在节点的配置里面)
    在这里插入图片描述

    在任务配置里面,也可以去限制项目运行的节点,如下:在02和03去运行
    在这里插入图片描述

  • 相关阅读:
    【分布式计算:原理、算法和系统】第三章 逻辑时间【待补全】
    [请回答C++] C++11&&auto&&右值引用&&移动语义&&完美转发
    Mac上使用Royal TSX快速连接到OCI主机
    Redis下载安装配置(linux版本)
    Python | Leetcode Python题解之第50题Pow(x,n)
    Redis 缓存过期淘汰策略
    Ubuntu上阅读Android源码工具
    自动化测试系列 —— UI测试
    ATK-ESP8266 WIFI通信
    flink运行时组件和调度原理
  • 原文地址:https://blog.csdn.net/yyuggjggg/article/details/126825301