zoukankan      html  css  js  c++  java
  • Rancher自动构建部署服务

    目录

    • 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.ymldeployment.yamlDockerfilesettings.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: {}

    点击下载→.rancher-pipeline.yml

    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命名空间下部署该应用:

  • 相关阅读:
    2017-2018-1 20179215《Linux内核原理与分析》第九周作业
    2017-2018-1 20179215 速读《构建之法》
    2017-2018-1 20179215 速读《从问题到程序》
    2017-2018-1 20179215《Linux内核原理与分析》第八周作业
    2017-2018-1 20179215《Linux内核原理与分析》第七周作业
    2017-2018-1 20179215 课堂测试
    2017-2018-1 20179215《Linux内核原理与分析》第六周作业
    2017-2018-1 20179215《Linux内核原理与分析》第五周作业
    20179215 第二周课堂测试
    2017-2018-1 20179215《Linux内核原理与分析》第三周作业
  • 原文地址:https://www.cnblogs.com/Java-Script/p/13902170.html
Copyright © 2011-2022 走看看