java项目规范

  1. 项目中必须存在dockerfile文件,可以存放项目根目录也可以在其他目录,点击查看模板
  2. 项目中必须存在deployment.yaml文件(kind: Deployment),点击查看模板
  3. 项目中必须存在service.yaml文件(kind: Service),点击查看模板
  4. 如果需要均衡负载项目中可以创建ingress.yaml(kind:Ingress)
  5. 如果需要存储项目中可以创建pvc.yaml(kind:PersistentVolumeClaim),点击查看模板
  6. maven编译方式pom.xml,点击查看模板
  7. 项目中必须存在就绪探针,可以是http协议,无需参数,返回状态码200

前期准备

  1. dockerhub中必须提前有对应的仓库地址或位置
  2. devops运维用户必须在devops项目中,并赋予 operator 角色(否则只能创建无法运行)

修改settings.xml使编译加速(非必须)

  1. 点击平台管理进入集群管理或者进入系统企业工作空间(system-workspace)进入kubesphere-devops-worker项目
  2. 在配置字典中搜索ks-devops-agent配置文件,该文件中包含maven的settings.xml配置修改保存即可

步骤1: 创建凭证

进入devops项目创建相关凭证

凭证名称

凭证类型

凭证用途

dockerhub-id

用户名和密码

登录docker镜像仓库,上传镜像使用

kubeconfig

kubeconfig

不需要修改内容,操作Kubernetes接口的凭证,最后要运行yaml创建相关资源对象使用

git-id

用户名和密码

访问源代码git仓库的账号密码,拉取源代码使用

kubeSphere部署seata kubesphere部署java项目_devops

步骤2: 创建流水线

  1. 点击创建填写基本信息,代码仓库不用选择,点击下一步。
  2. 高级设置中添加四个构建参数,参数可以传入到流水线中 $参数名称 的方式引用,添加完成后点击创建。

类型

名称


描述

字符串

REGISTRY

docker.io

docker镜像仓库地址,改为自己的地址带端口号

字符串

DOCKERHUB_NAMESPACE

javademo

docker镜像在dockerhub中的明明控件或位置 ,需要提前在dockerhub中创建

字符串

APP_NAME

devops-sample

java项目名称:用于docker镜像名称,配置文件名称,k8s的lable名称等

字符串

IMAGE_TAG

1.0.0

docker镜像的版本

字符串

STORAGE_CLASS_NAME

local

存储卷类型

kubeSphere部署seata kubesphere部署java项目_运维_02

步骤3: 创建java项目配置文件

  1. 在配置字典中创建项目配置文件:名称为 $APP_NAME-config点击下一步(如javademo-config,需要手动替换APP_NAME)
  2. 配置文件中添加数据:键:application-k8s.yml 值:java项目实际配置文件内容,将配置文件内容粘贴进来

步骤3:拉取源代码

  1. 编辑流水线时不选择流水线模板,选择自定义流水线
  2. 在图形编辑面板上,点击空白处,从类型下拉列表中选择 node,从 Label 下拉列表中选择 maven
  3. 点击➕图标,添加步骤,选择git



kubeSphere部署seata kubesphere部署java项目_docker_03


步骤4:编译java源代码

  1. 点击➕图标添加步骤,选择指定容器,将其命名为 maven(暂不可为其他,由podTemplate决定),然后点击确定
  2. kubeSphere部署seata kubesphere部署java项目_java_04


  3. 点击 maven 容器下的添加嵌套步骤添加一个嵌套步骤。在列表中选择 shell 并在弹出窗口中输入以下命令,点击确定完成操作。
//跳过单元测试,使用自定义settings.xml文件进行打包
mvn -Dmaven.test.skip=true -gs `pwd`/configuration/settings.xml clean package

kubeSphere部署seata kubesphere部署java项目_运维_05

  1. 点击 maven 容器下的添加嵌套步骤添加一个嵌套步骤。在列表中选择 shell 并在弹出窗口中输入以下命令,点击确定完成操作。
//替换dockerfile中的环境变量后生成新的dockerfile文件
envsubst < Dockerfile-online > Dockerfile-online-re

kubeSphere部署seata kubesphere部署java项目_java_06


4. 点击 maven 容器下的添加嵌套步骤添加一个嵌套步骤。在列表中选择 shell 并在弹出窗口中输入以下命令,点击确定完成操作。

//用新的dockerfile编译daocker镜像
docker build -f Dockerfile-online-re -t $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$IMAGE_TAG .

kubeSphere部署seata kubesphere部署java项目_运维_07



kubeSphere部署seata kubesphere部署java项目_devops_08