目录
- 1.项目配置
- 1.1 .rancher-pipeline.yml
- 1.2 deployment.yaml
- 1.3 Dockerfile
- 1.4 settings.xml
- 2.Rancher配置流水线
- 2.1 登录Rancher
- 2.2 设置代码库
- 2.3 编辑配置
- 2.4 通知
- 2.4.1 添加通知
- 2.4.2 添加通知
- 2.4.3 启用通知
- 2.4.4 样例
- 3.运行流水线
- 3.1 运行
- 3.2 流水线运行
- 3.3 流水线执行完毕
1.项目配置
项目根目录(与pom.xml同级)需要增加四个文件(.rancher-pipeline.yml、deployment.yaml、Dockerfile、settings.xml)
TODO内容需要根据项目进行更改:
1.1 .rancher-pipeline.yml
stages: - name: bulid steps: - runScriptConfig: image: maven shellScript: |- LOG_TAG="CHIP-INFO" MVN_SETTINGS_PATH="/root/.m2" if [ -d "${MVN_SETTINGS_PATH}" ];then mv ./settings.xml ${MVN_SETTINGS_PATH} if [ $? -eq 0 ];then echo "[$LOG_TAG]Copy settings.xml to ${MVN_SETTINGS_PATH} success!" else echo "[$LOG_TAG]Copy settings.xml to ${MVN_SETTINGS_PATH} fail!" fi else mkdir -p ${MVN_SETTINGS_PATH} && mv ./settings.xml ${MVN_SETTINGS_PATH} echo "[$LOG_TAG]Create path:${MVN_SETTINGS_PATH} and copy settings.xml to ${MVN_SETTINGS_PATH}!" fi echo "[$LOG_TAG]Current pwd:`pwd`" ls -l echo "[$LOG_TAG]===========Execute Maven CMD Build Project Start===========" mvn clean package -Dmaven.test.skip=true echo "[$LOG_TAG]===========Execute Maven CMD Build Project End===========" echo "[$LOG_TAG]Dir:target ls -l:`pwd`" ls -l ./target - name: publish steps: - publishImageConfig: dockerfilePath: ./Dockerfile buildContext: . tag: 172.18.0.117:31134/zkxy-config:latest #TODO:zkxy-config改为配置的镜像名称 pushRemote: true registry: 172.18.0.117:31134 #Docker私仓地址 env: PLUGIN_DEBUG: "true" PLUGIN_INSECURE: "true" - name: deploy steps: - applyYamlConfig: path: ./deployment.yaml timeout: 60 notification: {}
1.2 deployment.yaml
kind: Service apiVersion: v1 metadata: name: zkxy-config #TODO:zkxy-config改为服务名称 spec: selector: app: zkxy-config #TODO:zkxy-config改为服务名称 type: NodePort ports: - protocol: TCP port: 33002 #TODO:kubernetes中的服务之间访问的端口 targetPort: 32002 #TODO:容器的端口(最根本的端口),与制作容器时暴露的端口一致(DockerFile中EXPOSE) nodePort: 32002 #TODO:外部机器可访问的端口,一个Web应用需要被其他用户访问,需要配置type=NodePort,而且配置nodePort=32002,那么其他机器就可以通过浏览器访问scheme://node:32002访问到该服务;有效端口范围:30000-32767 --- apiVersion: apps/v1 kind: Deployment metadata: name: zkxy-config #TODO:zkxy-config改为服务名称 labels: app: zkxy-config #TODO:zkxy-config改为服务名称 spec: replicas: 1 selector: matchLabels: app: zkxy-config #TODO:zkxy-config改为服务名称 template: metadata: labels: app: zkxy-config #TODO:zkxy-config改为服务名称 spec: imagePullSecrets: - name: private-repository containers: - name: zkxy-config #TODO:pod的名称,必须字段,名称唯一且对象创建后不可以被修改 image: 172.18.0.116:31134/zkxy-config:latest #TODO:镜像仓库的路径/镜像的名称:镜像的标签 imagePullPolicy: Always #Always(总是去仓库下载),Never(从不去仓库下载),IfNotPresent(如果本地没有就去仓库下载),默认是"IfNotPresent" ports: - containerPort: 32002 #TODO:pod暴露的端口,此端口仅是额外的信息,对端口是否被暴露没有影响
点击下载→deployment.yaml
1.3 Dockerfile
Dockerfile的配置跟Jenkins中配置脚本时一样,根据项目信息进行配置,包括jar包名称和服务端口:
FROM java:8-jre MAINTAINER zouxd@chip-cloud.com ADD target/zkxy-config-0.0.1-SNAPSHOT.jar /zkxy-config-0.0.1-SNAPSHOT.jar EXPOSE 32002 ENTRYPOINT ["/usr/bin/java","-jar","zkxy-config-0.0.1-SNAPSHOT.jar"]
点击下载→Dockerfile
1.4 settings.xml
settings.xml主要设置jenkins构建项目时Maven插件的配置信息,无需修改内容,直接复制到项目根目录即可。
点击下载→settings.xml
2.Rancher配置流水线
2.1 登录Rancher
Rancher:https://172.18.0.115/
2.2 设置代码库
点击设置代码库,配置gitlab登录账户,拉取gitlab账户相关项目,设置成功后,相关项目出现在流水线中:
2.3 编辑配置
"编辑配置"想要自动构建的流水线:
选择想要自动构建的分支,点击"完成",弹出选择“仅下载流水线配置”,点击“确定”。
2.4 通知
2.4.1 添加通知
选择集群,进入通知页面
2.4.2 添加通知
2.4.3 启用通知
设置流水线中选择启用通知,根据需要进行配置即可:
2.4.4 样例
3.运行流水线
3.1 运行
选中部署的流水线,点击“运行”,弹窗选择想要的部署分支,点击“运行”,启动流水线自动部署:
3.2 流水线运行
启动流水线运行,等待执行完成,此处编译部署需要较长时间:
3.3 流水线执行完毕
流水线执行完毕,会在相应的pipline命名空间下部署该应用: