本文主要介绍如何实现Java构建部署到ACK或自建K8s集群。
场景介绍
研发应用场景:
-
使用 Java 语言进行开发。
-
需要将源代码构建成容器镜像形式进行交付。
-
镜像最终会运行在阿里云 ACK 或者其他 K8s 集群上。
那么本文档可以帮助您实现应用研发流程的协同自动化。
整体方案

通常应用研发场景:
-
需要对源代码进行一定的质量检测,比如单元测试、代码扫描。
-
需要将源代码构建成容器镜像。
-
使用镜像部署到测试环境,进行测试验证;然后依次部署到预发环境进行预发验证。
-
生产发布前提交审核流程,审核通过后使用验证完成的镜像进行生产发布。
上述方案依赖不同角色的协同合作:开发、测试、运维,涉及测试、预发、生产等多套环境的部署管理,如何保证不同参与者可以使用统一的交付流程来进行协作,有序按环境逐步推进需求发布上线,是云效 AppStack 应用交付解决的主要问题。
操作实践
步骤一:创建应用
进入应用交付AppStack首页,单击新建应用,选择「spring-boot应用体验模板」。您也可以自定义组织模板,定义组织专属应用架构和研发流程。
在 应用名 中输入 myapp,单击 创建应用。
步骤二:按需修改应用代码、流水线、部署YAML等相关配置
-
按需修改应用关联的代码仓库。
在应用的设置 > 关联代码和制品页面,找到已关联的代码仓库条目(如 spring_boot,默认分支 master),单击右侧的编辑图标进行修改。
-
按需修改应用部署 YAML 文件。体验模板预置一个 Deployment 和 Service。
在编排配置页面的Kubernetes 部署页签中,可查看部署编排的可视化流程:顺序1为 demo-service [Service],顺序2为 demo-deployment [Deployment],Service 先于 Deployment 按顺序部署。
-
按需修改应用各阶段流水线配置,如修改镜像推送地址为你自己的镜像仓库地址,以及相应的用户名密码。
在左侧导航栏选择研发流程配置,页面显示标准研发流程包含三个阶段:测试阶段(测试环境,含测试、构建、部署三步)、预发阶段(预发环境,含构建、部署两步)、生产阶段(生产环境,含发布审核、部署两步)。在各阶段对应的流水线步骤中修改镜像推送地址及凭据等配置。
在流程配置页签的构建阶段中,单击镜像构建并推送步骤打开编辑面板,将凭据类型设为用户名/密码。
步骤三:为环境关联部署资源
体验模板预置开发、测试、预发、生产四套环境,可按需使用。如使用测试环境,则为测试环境关联部署所需的 K8s 集群。若还未导入 Kubernetes 集群,可参考 Kubernetes 集群托管 导入 ACK 集群、或其他云平台或自建 K8s 集群。
在左侧导航栏单击环境,进入环境管理页面。测试环境卡片右上角显示未关联资源提示,表示该环境尚未关联部署所需的集群资源。
在环境设置弹窗中,单击部署设置 Tab,部署方式选择Kubernetes部署,在Kubernetes 资源下拉列表中选择目标集群,然后单击确定。
步骤四:代码提交,触发流水线构建部署
代码提交后,流水线自动触发运行。在标准研发流程页面中,流程阶段依次为测试阶段、预发阶段、生产阶段。流水线源显示 spring-boot 仓库 master 分支及对应 commit 信息。测试列包含Maven 单元测试和Java 代码扫描两个任务;构建列为镜像构建并推送任务;部署列为AppStack部署-测试环境任务。各任务按顺序依次执行,测试完成后进入构建,构建完成后进入部署。
步骤五:查看部署单,完成应用部署
部署单详情页显示部署状态为成功。组件名称为muyan-hpa-pre,组件类型为Deployment,部署策略为分2批发布不暂停,目标实例数为2,制品为nginx。部署进度显示第1批和第2批均已完成(1/1)。底部资源拓扑展示 Deployment → ReplicaSet(目标版本)→ 2 个 Pod,所有 Pod 均为绿色就绪状态。
步骤六:环境编排,部署发布
在研发流程页面选择生产阶段,可看到流水线运行记录处于等待中状态。流水线包含三个节点:流水线源(关联 spring-boot 仓库 master 分支)、发布审核(等待验证,可单击验证通过或验证不通过)、部署(AppStack 部署-生产环境)。单击验证通过后,流水线将继续执行生产环境部署。