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. markdown语法基本使用

    markdown 语法基本使用 目录 markdown 语法基本使用 各级标题 字体 引用 分隔线 图片 列表 表格 代码 超链接 各级标题 井号加上空格,几级标题用几个井号加上空格 字体 单星号引起 ...

  2. Python入门--字符串

    字符串的使用和C语言 .java中一致 .使用" "(双引号)并且字符串可以与数字相乘,表示我使用这个字符串次数 字符串的连接:'+' Python中的变量直接赋值即可 ,如果赋予 ...

  3. (Good topic)哈希表:拼写单词 (3.17 leetcode每日打卡)

    给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars. 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌 ...

  4. python,opencv-python人脸识别,并且发邮件对镜头前未知人员进行报警

    我们在任意一个硬盘的根目录下创建一个Code-project文件夹 在该文件夹下分别创建C-project和Python-project文件夹 在Python-project文件夹下创建face re ...

  5. Linux 运维人员最常用 150+命令汇总

    版权声明:原创作品,谢绝转载!否则将追究法律责任. ----- 作者:kirin 目录 版权声明:原创作品,谢绝转载!否则将追究法律责任. ----- 作者:kirin 命令帮助手册1 命令帮助手册2 ...

  6. hive报错Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask[已解决]

    我的报错信息 Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 解决1(可行):不走ya ...

  7. going 小闫 | 学习就像典韦哥:彻底疯狂

    看了相关的Hadoop的视频,介绍部分. 刷单词 看了coco电影

  8. 【Javaweb】Servlet三|实现Servlet程序的几种方法及Servlet继承体系说明

    GET和POST请求的分发处理 代码如下 注意页面要和index位置一样否则浏览器找不到 注意大小写 HttpServletRequest httpServletRequest = (HttpServ ...

  9. MySQL 8.0.32 InnoDB ReplicaSet 配置和手动切换

    1.环境准备 主库:192.168.137.4 mytest3 从库:192.168.137.5 mytest4 MySQL: 8.0.32 2.配置 ReplicaSet 实例 启动 mysql s ...

  10. MinIO客户端之cat

    MinIO提供了一个命令行程序mc用于协助用户完成日常的维护.管理类工作. 官方资料 mc cat 使用cat命令输出本地硬盘上的文本文件的内容至控制台. ./mc cat ./local.json ...