Rancher流水线配置文档
一、概述
Rancher流水线从逻辑上可以分为两部分,即CI和CD。
CI,可分化为克隆代码、代码打包、发布镜像三部分。
CD,可分为部署镜像。
二、配置
完整的流水线脚本,类似如下:
stages:
- name: build
steps:
- runScriptConfig:
image: maven:3.6.0-jdk-8-alpine
shellScript: mvn clean package
- name: push-image
steps:
- publishImageConfig:
dockerfilePath: ./Dockerfile
buildContext: .
tag: scc/hyperloop-baseapi:${CICD_EXECUTION_SEQUENCE}
pushRemote: true
registry: registry.cn-hangzhou.aliyuncs.com
- name: deploy
steps:
- applyYamlConfig:
path: ./deployment.yaml
timeout: 60
2.1克隆代码
此部分为Rancher强制默认,不可操作。
2.2代码打包
一般根据代码语言执行对应的脚本,比如java+maven是
mvn clean package
2.3发布镜像
在代码根路径下创建Dockerfile文件,内容如下:
# 基于java8
FROM openjdk:8-jdk-slim
# 切换到 /opt目录
WORKDIR /opt
# 将编译的jar拷贝的当前目录
ADD target/baseapi.jar .
# 配置启动命令(两种方式,一种是写死在dockerfile,一种是在rancher上配置,相比前者,后者更灵活)
#CMD java -Dlog.kafka.address=$kafka_address -Dlog.kafka.topic=$kafka_topic -Ddisconf.conf_server_host=$conf_server -Ddisconf.env=$Env -jar /opt/webapps/$jar_file
#CMD java -server -DlogRedisAddress=192.168.1.97 -Dpinpoint.applicationName=baseapi -Dspring.cloud.consul.enabled=true -Dspring.profiles.active=test -Xms512m -Xmx512m -jar /opt/apps/baseapi.jar
注意创建页面配置镜像版本号时,使用环境变量${CICD_EXECUTION_SEQUENCE}
2.4部署镜像
在代码根路径下创建deployment.yaml文件,内容如下:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: baseapi
namespace: myapps
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
workload.user.cattle.io/workloadselector: deployment-myapps-baseapi
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
annotations:
cattle.io/timestamp: 2019-01-08T10:18:34Z
creationTimestamp: null
labels:
workload.user.cattle.io/workloadselector: deployment-myapps-baseapi
spec:
containers:
- args:
- java
- -server
- -DlogRedisAddress=192.168.1.97
- -Dspring.cloud.consul.enabled=true
- -Dspring.profiles.active=test
- -jar
- baseapi.jar
image: ${CICD_IMAGE}:${CICD_EXECUTION_SEQUENCE}
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /health
port: 9700
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 2
successThreshold: 1
timeoutSeconds: 2
name: baseapi
readinessProbe:
failureThreshold: 3
httpGet:
path: /health
port: 9700
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 2
successThreshold: 2
timeoutSeconds: 2
resources: {}
securityContext:
allowPrivilegeEscalation: false
capabilities: {}
privileged: false
readOnlyRootFilesystem: false
runAsNonRoot: false
stdin: true
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
tty: true
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: ali
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
一个快捷的方法就是先手动在Rancher上部署镜像,然后复制yml文件,最后把文件里不必要的信息剔除即可。
最后建议触发方式选择默认的手动,避免因触发导致的镜像更新引发的版本不一致问题(针对测试同学)。
转载于:https://my.oschina.net/shyloveliyi/blog/2999380
Rancher流水线配置文档的更多相关文章
- MYSQL服务器my.cnf配置文档详解
MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...
- 转!!Java代码规范、格式化和checkstyle检查配置文档
为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...
- Hibernate配置文档详解
Hibernate配置文档有框架总部署文档hibernate.cfg.xml 和映射类的配置文档 ***.hbm.xml hibernate.cfg.xml(文件位置直接放在src源文件夹即可) (在 ...
- Java代码规范、格式化和checkstyle检查配置文档
http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...
- Spring Hibernate4 整合配置文档
1 applicationContext.xml配置文档 <?xml version="1.0" encoding="UTF-8"?><bea ...
- Kerberos主从配置文档
Kerberos主从配置文档 1. Kerberos主从同步机制 在Master上通过以下命令同步数据: kdb5_util dump /var/kerberos/krb5kdc/slave_db ...
- python常用模块-配置文档模块(configparser)
python常用模块-配置文档模块(configparser) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. ConfigParser模块用于生成和修改常见配置文档,当前模块的名称 ...
- azkaban编译安装配置文档
azkaban编译安装配置文档 参考官方文档: http://azkaban.github.io/azkaban/docs/latest/ azkaban的配置文件说明:http://azkaban. ...
- Python学习 :常用模块(四)----- 配置文档
常用模块(四) 八.configparser 模块 官方介绍:A configuration file consists of sections, lead by a "[section]& ...
随机推荐
- 手动搭建I/O网络通信框架2:Socket和ServerSocket入门实战,实现单聊
第一章:手动搭建I/O网络通信框架1:Socket和ServerSocket入门实战,实现单聊 在第一章中运用Socket和ServerSocket简单的实现了网络通信.这一章,利用BIO编程模型进行 ...
- 并发——深入分析CountDownLatch的实现原理
一.前言 最近在研究java.util.concurrent包下的一些的常用类,之前写了AQS.ReentrantLock.ArrayBlockingQueue以及LinkedBlockingQu ...
- 29.1 collection层次结构 中的根接口
/* * Collection * boolean add(E e) * void clear() * boolean contains(Object o) * boolean isEmpty() * ...
- mysql> 12 simple but staple commands
Edit at: 2019-12-28 16:52:42 1.mysql -u+username -p+password --> connect mysql 2.use databasena ...
- spring 管理事务配置时,结果 报错: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here这个异常
java.lang.IllegalStateException: No Hibernate Session bound to thread, and configuration does not al ...
- Netty服务端接收的新连接是如何绑定到worker线程池的?
更多技术分享可关注我 前言 原文:Netty服务端接收的新连接是如何绑定到worker线程池的? 前面分析Netty服务端检测新连接的过程提到了NioServerSocketChannel读完新连接后 ...
- PHP 5.6连接MySQL 8.0版本遇到的坑
一.数据库失败Warning: mysqli_connect(): The server requested authentication method unknown to t... <?ph ...
- Java成长第三集--基础重点详细说明
接上篇文章,继续阐述相关的重点基础知识,话不多说! 一.Java中equals()和“==”区别 1.对于8种基础数据类型,使用“=="比较值是否相等: 2.对于复合数据类型(类),使用eq ...
- AJ学IOS 之微博项目实战(10)微博cell中图片的显示以及各种填充模式简介
AJ分享,必须精品 :一效果 如果直接设置会有拉伸等等的状况,这里主要介绍图片显示的一些细节 二:代码 代码实现其实很简单,微博当中用了一个photos来存放九宫格这些图片,然后用了一个photo类来 ...
- iNeuOS工业互联平台,部署在智能硬件网关,实现了从边缘端到云端的一体化部署
目 录 1. 概述... 2 2. 平台演示... 3 3. 智能硬件网关配置(参考)... 3 4. iNeuOS在网关中的部署步骤... 5 4 ...
