Rancher使用--后端流水线

前期准备  需要配置gitlab凭证

 

 

 

 

 

 

 

 

 

 

这里选择gitlab

然后去gitlab 生成ID和密钥   根据需要选择下面的内容

将这里的内容复制到rancher的流水线设置gitlab凭证

 

1.项目配置

项目根目录(与pom.xml同级)需要增加四个文件(.rancher-pipeline.yml、deployment.yaml、Dockerfile、settings.xml)

1.1  .rancher-pipeline.yml文件

stages:
- name: bulid
  steps:
  - runScriptConfig:
      image: maven:3.8.1-jdk-8-slim
      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: 192.168.xxx.xxx/zhiwu-config:latest #docker私服里镜像名称

      pushRemote: true
      registry: 192.168.xxx.xxx  #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: zhiwu-config    #:改为自己服务名称
spec:
  selector:
    app: zhiwu-config   #:改为自己服务名称
  type: NodePort
  ports:
    - protocol: TCP
      port: 33002        #:kubernetes中的服务之间访问的端口
      targetPort: 8090   #:容器的端口(最根本的端口),与制作容器时暴露的端口一致(DockerFile中EXPOSE)
      nodePort: 32002   #:外部机器可访问的端口,一个Web应用需要被其他用户访问,需要配置type=NodePort,而且配置nodePort=32002,那么其他机器就可以通过浏览器访问scheme://node:32002访问到该服务;有效端口范围:30000-32767
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: zhiwu-config #改为自己服务名称
  labels:
    app: zhiwu-config #改为自己服务名称
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zhiwu-config #改为自己服务名称
  template:
    metadata:
      labels:
        app: zhiwu-config #改为自己服务名称
    spec:
      imagePullSecrets:
        - name: private-repository
      containers:
        - name: zhiwu-config         #pod的名称,必须字段,名称唯一且对象创建后不可以被修改
          image: 192.168.xxx.xxx/zhiwu-config:latest  #:镜像仓库的路径/镜像的名称:镜像的标签
          imagePullPolicy: Always  #Always(总是去仓库下载),Never(从不去仓库下载),IfNotPresent(如果本地没有就去仓库下载),默认是"IfNotPresent"
          ports:
            - containerPort: 8090 #TODO:pod暴露的端口,此端口仅是额外的信息,对端口是否被暴露没有影响

1.3   Dockerfile文件

FROM openjdk:8u292-jre
ADD target/*SNAPSHOT.jar zhiwuBackend_prod.jar
EXPOSE 8090
ENTRYPOINT ["java","-jar","zhiwuBackend_prod.jar"]

1.4   settings.xml文件

settings.xml主要设置jenkins构建项目时Maven插件的配置信息,无需修改内容,直接复制到项目根目录即可。

 

2.rancher配置流水线

2.1 登录Rancher

2.2 设置代码库

点击设置代码库,配置gitlab登录账户,拉取gitlab账户相关项目,设置成功后,相关项目出现在流水线中:

2.3编辑配置

选择想要自动构建的分支,点击"完成",弹出选择“仅下载流水线配置”,点击“确定”。

之前添加的四个文件 rancher这里会自动识别

3.运行流水线

3.1 运行      

选中部署的流水线,点击“运行”,弹窗选择想要的部署分支,点击“运行”,启动流水线自动部署:

3.2 流水线运行

启动流水线运行,等待执行完成,此处编译部署需要较长时间:

3.3 流水线执行完毕

流水线执行完毕,会在相应的pipline命名空间下部署该应用:

猜你喜欢

转载自blog.csdn.net/qq_39071599/article/details/118071780