以Java项目为例,实现Jenkins对接CCE Autopilot集群
本文分享自华为云社区《Jenkins对接CCE autopilot集群实战》,作者: 可以交个朋友。
一 背景
鉴于日趋流行的serverless
技术架构、以及用户经常谈及的降本的需求。考虑Jenkins主从架构的特性,slave节点可以在工作的时候部署在任意平台上执行master节点下发的任务,因此可以基于CCE Autopilot集群为Jenkins的agent节点设置运行平台。
二 简介
- 以java项目为例,完成java 业务从代码拉取、maven编译、构建镜像、推送镜像、修改yaml文件推送到代码仓库等一系列CI流程。
- jenkins agent容器使用谷歌提供的
Kaniko
镜像
三 操作实践
提前安装好jenkis,并配置kubernetes插件。
3.1 配置jenkins连接autopilot集群
创建autopilot集群的连接凭据
类型
: 选择secret file
file
: 上传autopilot集群的kubeconfig配置文件
Clouds中配置连接autopilot集群
在系统管理中选择clouds,点击新增
Cloud name
: 自定义即可
Type
: 选择Kubernetes
Kubernetes地址
: 填写autopilot集群的apiserver连接地址
Kubernetes命名空间
: 动态agent运行的命名空间,可自定义
凭据
: 选择步骤1创建的凭据,选择完凭据之后点击测试连接,连接正常就能查看集群版本
jenkins地址
: jenkins的访问地址
jenkins通道
: jenkins访问的50000端口,需要创建svc开发该端口
配置完成,最后保存即可。
3.2 配置pod模板
在Clouds中选择Pod Templates然后点击创建
名称
: 可自定义
命名空间
: 选择和Clouds配置一样即可,如:default
用法
: 默认即可。例如: 只允许运行绑定到这台机器的job
配置基础镜像模版
名称
: 填写jnlp,固定写法
Docker镜像
: inbound镜像,执行 docker pull jenkins/inbound-agent,然后上传到swr
工作目录
: 自定义
配置Maven打包镜像
名称
: 填写maven,可自定义,写pipeline时会用到
Docker镜像
: maven镜像,docker pull maven:3.8.1-jdk-8,然后又推送到swr镜像仓库
工作目录
: 自定义
运行命令
: sleep
运行参数
: 9999999
配置build镜像任务
名称
: 填写build,可自定义,写pipeline会用到
Docker镜像
: kaniko镜像,docker pull aiotceo/kaniko-executor,提前推送到SWR
工作目录
: 可以自定义
运行命令
: /busybox/cat
3.3 其他配置
对Maven的打包目录进行缓存
前提
:需要前提创建一个PVC存储
申明值
:填写创建的PVC存储名称
挂载路径
:固定填写/root/.m2
配置拉取镜像的secret
名称
:固定填写default-secret
配置连接swr的secret
登录ECS服务器,配置连接autopilot集群,执行如下代码:
yum install git -y kubectl create secret docker-registry swr-secret \ --docker-server=https://swr.cn-******.com \ --docker-username=***** --docker-password=****** \ --dry-run=client -o json |jq -r \ '.data.".dockerconfigjson"' |base64 -d > /tmp/config.json kubectl create secret generic swr-secret --from-file=config.json
docker-server
:填写swr的接口地址
docker-username
:填写 region@ak,通过AK,SK获取长期登录指令。 例如: cn-north-7@HL9SLYV9UDY428M6TAJ5
docker-password
:填写SK,通过AK,SK获取长期登录指令。
配置Secret Volume
Secret名称
: 填写上面生成的secret名字
挂载路径
: kaniko/.docker,固定写法
3.4 编写pipeline
def repository_url = "swr.******.com" def git_repo = "https://******.git" def app_git_branch = "master" podTemplate( inheritFrom: 'agent', cloud: 'test' ) { node(POD_LABEL) { stage('拉取代码'){‘ echo "pull clone"' git branch: "${app_git_branch}", url: "${git_repo}" } container('maven'){ stage('编译打包'){ echo "build package" sh "mvn clean package -DskipTests" } } container('build'){ stage('镜像构建'){ echo "build images and push images" sh "/kaniko/executor -f Dockerfile -c . -d ${repository_url}/tomcat:${BUILD_ID} --force" } } } }
四 结果展示
jenkins agent 运行在autopilot 集群中
推送镜像到SWR镜像仓库中
jenkins CI阶段视图如下

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
从零开始带你上手体验Sermant自定义插件开发
本文分享自华为云社区《Sermant自定义插件开发上手体验》,作者:华为云开源。 一、研究缘由 由于目前我们所处的行业是汽车行业,项目上进行云服务的迁移时使用到了Sermant中的相关插件, 为了加深对Sermant开发和运行机制的了解,我们从零开始体验Sermant自定义插件的开发。 下面我们就Sermant-example中的first-plugin-demo来进行研究说明。 二、下载Sermant-example 首先我们下载sermant-example的demo: 下载完成之后,我们从最简单的自定义插件开始,也即first-plugin-demo。 三、执行打包 对first-plugin-demo执行打包,打完包的结构: 可以看到我们的项目和对应的插件模板项目都在里面了。 四、启动项目 java -javaagent:sermant-agent.jar -jar Application.jar 然后访问controller方法 从而可以看到拦截的效果: 可以看到启动的过程中,完成了拦截的效果。 也即它走了拦截器的前置和后置方法。 五、动态配置验证 配置的动态配置里面配置的配...
- 下一篇
一文了解Spring Boot启动类SpringApplication
本文分享自华为云社区《【Spring Boot 源码学习】初识 SpringApplication》,作者: Huazie。 引言 往期的博文,Huazie围绕Spring Boot的核心功能,带大家从总整体上了解Spring Boot自动配置的原理以及自动配置核心组件的运作过程。这些内容大家需要重点关注,只有了解这些基础的组件和功能,我们在后续集成其他三方类库的Starters时,才能够更加清晰地了解它们都运用了自动配置的哪些功能。 在学习上述Spring Boot核心功能的过程中,相信大家可能都会尝试启动自己新建的Spring Boot的项目,并Debug看看具体的执行过程。本篇开始就将从Spring Boot的启动类SpringApplication上入手,带领大家了解Spring Boot启动过程中所涉及到的源码和知识点。 主要内容 1. Spring Boot 应用程序的启动 在 《【Spring Boot 源码学习】@SpringBootApplication 注解》这篇博文中,我们新建了一个基于Spring Boot的测试项目。 如上图中的DemoApplication就...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作