创建团队

点击【仓库管理】-【团队管理】-【新增】图片.png

创建应用系统

点击【应用管理】-【应用系统】图片.png

创建代码仓库

点击【仓库管理】-【代码仓库】,是否新建选择否,这样可以自己输入git地址图片.png

创建代码仓库凭证

点击【流水线管理】-【凭证管理】,账号密码即你的git账号的账号和密码
图片.png

创建资源集

点击【资源管理】-【资源集管理】图片.png
创建完成后需要admin账号进行审批
图片.png

申请端口

资源集审核完成后,点击你创建的资源集,点击【操作】-【申请端口】,注意请输入端口范围内的数字:30000-32767
图片.png申请端口后,需要进行审批,直接使用自己的账号进行审批即可
图片.png

创建流水线

点击【流水线管理】-【流水线管理】这里就是研运一体舱的核心配置了,首先填写基本信息
图片.png
关联系统就是你创建的应用系统,点击【下一步】后进入【流程编辑】这里将分为前后端分离和前后端不分离的两种配置

前后端分离工程

Spring Boot工程

选择不使用模板,直接创建图片.png选择数据源。下拉选择之前创建的你所要部署的后端工程的代码仓库,然后选择凭证,输入代码分支。图片.png点击【提交】后,点击添加新的阶段。此后每个步骤都需要通过这个添加,也不再赘述了。图片.png图片.png
Maven打包

  • 如下图,首先点选Maven
  • 输入pom文件路径,这里的是相对路径,“.”即代表工程的根目录,一般pom文件就放在工程的根目录
  • 选择打包构建命令,如果是单模块工程,一般使用“package”就行了,但是有多模块互相依赖的工程,请务必在根目录下使用“install”进行打包

图片.pngDocker镜像构建

  • 如下图,点选Docker
  • 如果工程中有Dockerfile就输入文件的相对路径
  • 没有的话就在下面的Dockerfile中编写Dockerfile,下面是Dockerfile示例

    1. # 无需修改,jdk1.8基础镜像
    2. FROM tcloud.hub/library/openjdk:8-alpine
    3. # 无需修改
    4. MAINTAINER Devops
    5. # 将打好的jar包放入到/usr/local。请修改为自己的jar包名称,jar包的位置是相对于制品路径的相对路径
    6. ADD ./gc-starter-server.jar /usr/local/
    7. # 这个是给千行上传文件功能创建一个目录,请修改为自己的jar包名称,配合spring boot的静态资源映射使用
    8. ADD ./gc-starter-server.jar /usr/local/upload/
    9. # 工程启动的端口,这个只是注释作用,并不会真的影响工程的启动端口,主要还是看工程的配置文件
    10. EXPOSE 8081
    11. # 无需修改
    12. WORKDIR /usr/local
    13. # jar包启动命令
    14. CMD ["java", "-Duser.timezone=GMT+08", "-jar", "gc-starter-server.jar", "--spring.profiles.active=prod"]
  • 输入制品路径,这个制品就是指的上个阶段maven打包出的jar包路径,不精确到jar包

  • 输入镜像名称。镜像名称请保持唯一

图片.png
k8s容器配置

  • 点选K8S
  • 选择上一阶段创建的镜像,选择镜像版本:latest
  • 命名空间,即自己创建的资源集名称
  • 副本数保持为1,如果流量大,可以选择添加多个副本,k8S会自动进行负载均衡
  • 资源限制可以根据需要输入
  • 端口映射,内部端口即为工程的启动端口,暴露端口是在资源集中申请的端口,任选其一提交后保存流水线

图片.png

Vue前端

依赖安装

  • 选择不使用模板,直接创建
  • 选择数据源,下拉选择之前创建的你所要部署的前端工程的代码仓库,然后选择凭证,输入代码分支。
  • npm install,下载依赖

图片.png
打包配置

  • 点选Node.js
  • 输入工作目录,也就是运行npm install的目录,一般为根目录,同样的这里也是相对路径
  • 执行命令选择npm run build

图片.png
Docker镜像构建

  • 点选Docker
  • 如果工程中有Dockerfile就输入文件的相对路径
  • 没有的话就在下面的Dockerfile中编写Dockerfile,下面是Dockerfile示例

    # 无需修改,使用tomcat部署的话,tomcat的基础镜像
    FROM tcloud.hub/library/gcsave-tomcat:1.0
    MAINTAINER devops
    # 无需修改,tomcat的端口固定为9080
    EXPOSE 9080
    # 将打包后的文件夹拷贝到容器内的webapps目录下,请根据自己的实际文件夹名进行修改
    COPY ./dist /usr/local/tomcat/webapps/gc-starter-ui
    # 多环境部署的一种思路,将对应环境的配置文件覆盖容器内的默认配置文件即可
    COPY ./dist/config/index-demo.js /usr/local/tomcat/webapps/gc-starter-ui/config/index.js
    # 甚至可以通过这种思路,去覆盖容器内的tomcat配置文件进行配置,修改tomcat的一些参数
    ADD ./server.xml /usr/local/tomcat/conf/
    
    # 无需修改,使用nginx部署的话,nginx的基础镜像
    FROM tcloud.hub/tcloud/nginx :1.19.8-alpine
    MAINTAINER devops
    # nginx的默认监听端口
    EXPOSE 80
    # 将打包后的工程文件拷贝到容器内的webapps下
    COPY ./dist /usr/local/webapps/gc-starter-ui
    
  • 输入制品路径,这个制品就是指的上个阶段npm run build打包出的编译后的vue工程文件路径,不精确到工程文件夹,一般为根目录

  • 输入镜像名称。镜像名称请保持唯一。

k8s容器配置

前后端不分离

(1)选择不使用模板,直接创建
(2)选择数据源。下拉选择之前创建的你所要部署的工程的代码仓库,然后选择凭证,输入代码分支。
(3)Maven打包,详情查看前后端分离的Maven打包,不赘述
(4)Docker镜像构建

  • 点选Docker
  • 如果工程中有Dockerfile就输入文件的相对路径
  • 没有的话就在下面的Dockerfile中编写Dockerfile,下面是Dockerfile示例
    # 无需修改,war包放入tomcat中进行部署,tomcat的基础镜像
    FROM tcloud.hub/library/gcsave-tomcat:1.0
    MAINTAINER devops
    # 无需修改,tomcat的默认端口
    EXPOSE 9080
    # 修正时区,保证容器内时间与本地一致
    ENV TZ=Asia/Shanghai
    # 将打包好的war包放入容器中的webapps下
    ADD ./gc-starter.war /usr/local/tomcat/webapps/
    # 将工程中的tomcat文件添加到容器内的tomcat配置文件夹下,以覆盖容器内tomcat的配置文件
    ADD ./classes/server.xml /usr/local/tomcat/conf/
    
    (5)k8s容器配置

执行流水线

立即执行

image.png

指定执行部分阶段

点击执行后,可以自由勾选执行阶段
image.png

定时执行流水线

如果工程还处于开发阶段,每天有上传代码之类的场景,可以设置在下班时间定时执行流水线,实现自动更新
image.png
image.png

查看日志

流水线执行日志

流水线执行后就可以直接看日志,不过你也可以把它关掉。
关掉后日志查询:【详情】-【构建记录】-【构建日志】
image.png

  • 日志中这两个位置,一个code为200并且最后为succeess才算流水线真正执行成功
  • code为500的话,可能是端口被占用了导致,那就在流水线编辑中换一个端口吧

容器执行日志

流水线执行成功后并不代表你的工程真的执行成功了,这只是代表了k8s中的容器创建成功了,容器中需要去跑工程,所以可以去查看容器日志,查看是否工程真的启动成功了。

  • 容器状态为Running可以查看日志,如果为containercreate需要稍等一会后,刷新页面,等待状态变为Running

【容器管理】-【资源集管理】- 点击资源集名称 -【查看日志】
image.png

访问服务

k8s的容器并不能直接访问,而是通过service、ingress等网络服务进行代理,服务访问的url一般为:
192.168.59.117:暴露端口/context-path

Dockerfile参考

认证中心

前后端不分离工程
打包方式war包
git地址:http://192.168.52.88:8001/GC-STARTER/uc/gc-starter-ac.git

FROM tcloud.hub/library/gcsave-tomcat:1.0
MAINTAINER devops
EXPOSE 9080
ENV TZ=Asia/Shanghai
ADD ./classes/server.xml /usr/local/tomcat/conf/
ADD ./ac.war /usr/local/tomcat/webapps/

用户中心后端

基于千行框架的Spring boot工程
打包方式jar包
git地址:http://192.168.52.88:8001/GC-STARTER/uc/gc-starter-uc.git

FROM tcloud.hub/library/openjdk:8-alpine
MAINTAINER Devops
ADD ./gc-starter-uc-server.jar /usr/local/
ADD ./gc-starter-uc-server.jar /usr/local/upload/
EXPOSE 8081
WORKDIR /usr/local
CMD ["java", "-Duser.timezone=GMT+08", "-jar", "gc-starter-uc-server.jar", "--spring.profiles.active=demo"]

用户中心前端

基于千行框架的Vue工程
打包方式npm run build
git地址:http://192.168.52.88:8001/GC-STARTER/uc/gc-starter-uc-ui.git

FROM tcloud.hub/tcloud/nginx:1.19.8-alpine
MAINTAINER devops
EXPOSE 80
COPY ./dist /usr/local/tomcat/webapps/gc-starter-uc-ui
COPY ./dist/config/index-demo.js /usr/local/tomcat/webapps/gc-starter-uc-ui/config/index.js
COPY ./nginx.conf /etc/nginx/conf.d/default.conf

如果git地址无法打开,请联系千行团队799436026

联系我们

研运一体仓问题请联系任晓龙 QQ:1813351650