Jenkins 2361.2 + Maven Integration + SVN/GIT + Docker + 阿里云镜像 + Kubernetes(K8S)

本文用于学习,了解原理,和实际应用,有所差别,特别是 Post Steps 步骤中,方式很多,根据实际情况而定。

实际应用中,一般 Pipeline 流水线的方式比较多。

环境如下

  • Jenkins 安装在 Windows 2012R2 上
  • Docker 在另一个 Linux CentOS 7.6上
  • K8S 另外三台做的集群
  • 镜像仓库用的是阿里云的

流程

  1. Jenkins 将代码从SVN服务器上,下载到 JENKINS_HOME 里的 workspace 中
  2. 通过 Maven 进行 编译打包
  3. Build/Publis Docker Image 对 maven 打好的包进行编译
  4. Push 到阿里云仓库 SpringBoot Docker 发布到 阿里仓库
  5. 通过远程 SSH 执行 K8S 的 kubectl deployment 命令,去阿里云镜像中下载部署 Kubernetes(K8S) Deployment 拉取阿里云镜像部署

Jenkins插件安装

  1. Localization: Chinese (Simplified)
  2. Subversion 【2.16.0】 --从SVN中获取代码
  3. Maven Integration 【3.20】 -- 编译项目
  4. Docker plugin 【1.2.10】 -- 用于节点管事中的 Docker 维护
  5. docker-build-step 【2.8】 -- 用于 Post Steps 的时候,选择 Build/Publish Docker Image
  6. SSH 【6.1】-- 用于集成 K8S,远程执行K8S服务器上的命令

Global Tool Configuration

这边使用的SVN,Git 差不多,详见 全局工具配置

如果 Jenkins 和 Docker 同一台,页在 全局工具配置中进行 Docker 配置,本文Jenkins 和 Docker 不在同一台

配置远程 Docker 服务

因为Docker 和 Jenkins 不在同一台服务器上,配置后将来在 Maven 编译后,利用远程 Docker 服务器进行编译发布



如果配了项目,首页变了,可以按下面方式找到入口点





选择 Docker 进行添加





输入Docker服务器的 地址(服务器没有设置用户凭证,所以这边没有设置)



测试 Docker 服务器连接

修改 Docker 服务器配置

Connection refused: no further information: /172.xxx.xxx.xxx:2370

  1. Docker开启远程访问,注意端口不要用默认的,防止被攻击
[root@localhost ~]# vi /usr/lib/systemd/system/docker.service
#修改
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2370

开放端口
#防火墙开放端口
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=2370/tcp
[root@localhost ~]# firewall-cmd --reload
重启服务
#重新加载配置文件
[root@localhost ~]# systemctl daemon-reload
#重启服务
[root@localhost ~]# systemctl restart docker.service
#查看端口是否开启
[root@localhost ~]# netstat -nlpt
#直接curl看是否生效
[root@localhost ~]# curl http://127.0.0.1:2370/info

新建Maven项目



添加 SVN 用户凭证(可在描述中添加说明,方便后期选择)





选择 SVN 用户凭证



跳过单元测试

clean package -Dmaven.test.skip=true

运行构建





查看控制台日志

推送至阿里云镜像

在 Post Step 中,选择 Build/Publish Doker Image



${WORKSPACE}





保存后构建

集成Kubernetes(K8S)

安装完 SSH 插件后,在Dashboard -> Manage Jenkins -> Configure System 中可以进行 ** SSH remote hosts** 配置

  1. 添加K8S访问凭证(一般使用 SSH Username with private key) SSH Key的方式,

  2. 到 Configure System 中新增 SSH remote hosts









    输入命令
kubectl set image deployment/javademo1 vipsoft=registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:3.1



目前:阿里云上是 3.0,K8S 服务器中使用的是 1.0,接下来构建 3.1

kubectl set image deployment/javademo1 vipsoft=registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:3.1





Jenkins + SVN/Git + Maven + Docker + 阿里云镜像 + Kubernetes(K8S)的更多相关文章

  1. Jenkins Jenkins结合GIT Maven持续集成环境配置

    Jenkins结合GIT Maven持续集成环境配置   by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...

  2. [原]Jenkins(二)---jenkins之Git+maven+jdk+tomcat

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. *版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/5331 ...

  3. Maven(五)之Maven配置阿里云镜像飞快下jar包

    用过Maven的人都知道Maven对于依赖的管理让我们程序员从此远离了自己去在项目中把需要的jar包导入到项目中,但是因为中央仓库是在国外的,所以在我们从中央仓库下载依赖的时候, 我们发现下载速度真的 ...

  4. Docker阿里云镜像加速

    登录阿里云docker registry sudo docker login --username=zhangsan@163.com registry.cn-hangzhou.aliyuncs.com ...

  5. Jenkins(二)---jenkins之Git+maven+jdk+tomcat

    git+maven+jdk+tomcat  这四个软件可以百度在linux下的安装,不再赘述. server A --->   jenkins主机ip:192.168.100.119 serve ...

  6. docker 阿里云镜像加速器

    传送门:阿里云镜像地址 Ubuntu/CentOS 安装/升级你的Docker客户端 推荐安装1..0以上版本的Docker客户端,参考文档 docker-ce 如何配置镜像加速器 针对Docker客 ...

  7. Docker 阿里云镜像加速

    1.进入阿里云镜像加速页面: https://cr.console.aliyun.com/#/accelerator 2.修改/etc/docker/daemon.json文件配置,没有则新建: ? ...

  8. Docker阿里云镜像存储服务

    阿里云镜像服务地址 https://cr.console.aliyun.com/cn-beijing/instances/repositories   免费免费免费 登陆之后可以免费创建,仓库.地址大 ...

  9. DOCKER 学习笔记9 Kubernetes (K8s) 生产级容器编排 上

    前言 在上一节的学习中.我们已经可以通过最基本的 Docker Swarm 创建集群,然后在集群里面加入我们需要运行的任务 以及任务的数量 这样我们就创建了一个服务. 当然,这样的方式在我们本地虚拟机 ...

  10. SpringCloud+Git+Maven+Docker+Jenkins自动化构建

    1.JDK安装-OpenJDK安装 yum list java-1.8* yum install -y java-1.8.0-openjdk-devel.x86_64 PS: JDK安装有两种方法:一 ...

随机推荐

  1. gitlab : You won`t be able to pull or push project code via SSH until you add an SSH key to your profile(导致的问题:合并不了代码)

    gitlab : You won`t be able to pull or push project code via SSH until you add an SSH key to your pro ...

  2. (Good topic)卡牌分组(3.27leetcode每日打卡)

    给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:  每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 X &g ...

  3. 【VMware vCenter】使用cmsso-util命令进行链接、删除、修改多个vCenter Server(VCSA)的SSO域。

    VMware vCenter Server 支持新安装的时候选择将vCenter SSO域加入到另外一个现有的SSO域中,同时也支持使用cmsso-util命令将现有的两个或多个vCenter SSO ...

  4. AntDesignBlazor示例——新建项目

    本示例是AntDesign Blazor的入门示例,在学习的同时分享出来,以供新手参考. 1. 开发环境 VS2022 17.8.2 .NET8 AntDesign 0.16.2 2. 学习目标 创建 ...

  5. 自研、好用的ORM 读写分离功能使用

    Fast Framework 作者 Mr-zhong 代码改变世界.... 一.前言 Fast Framework 基于NET6.0 封装的轻量级 ORM 框架 支持多种数据库 SqlServer O ...

  6. [ABC262D] I Hate Non-integer Number

    Problem Statement You are given a sequence of positive integers $A=(a_1,\ldots,a_N)$ of length $N$. ...

  7. 一款开源免费美观的WinForm UI控件库 - ReaLTaiizor

    前言 今天推荐一款基于MIT license开源.免费.美观的.NET WinForm UI控件库:ReaLTaiizor. 什么是WinForm? WinForm是一个传统的桌面应用程序框架,它基于 ...

  8. pytorch学习笔记——加载checkpoint时,程序报错,存在GPU和CPU不同步的情况

    当我们需要加载之前训练的checkpoint的时候,有时候会发现之前能训练的代码无法继续训练. 这时候很有可能加载优化器的步骤在加载模型前面,这样可能会导致优化器的参数仍然在CPU上,因此代码需要由原 ...

  9. 华企盾DSC导致导出文件报错常见处理方法

    1.导出文件的进程和打开该文件的进程启用OLE控制是否都是未勾选,以及启用虚拟重定向是否设置一致(要么都勾选要么都不勾) 2.用procmon监控个人模式下导出非加密的文件,搜索writefile的进 ...

  10. 3D组合地图在数据可视化大屏中的应用

    前言 当下数据可视化大屏展示的花样层出不穷,可视化大屏的C位越来越卷,地图的样式已经不再止步于普通的平面地图,在虚拟环境中探索和交互,今天我们要介绍的这一款3D组合地图可以将复杂的数据以直观的方式呈现 ...