帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. Serverless应用引擎(新版)
  4. 操作指南
  5. 应用托管
  6. CICD
  7. 通过云效流水线使用K8s YAML文件部署应用至SAE

通过云效流水线使用K8s YAML文件部署应用至SAE

  • CICD
  • 发布于 2025-04-17
  • 0 次阅读
文档编辑
文档编辑

您可以通过云效流水线从源码仓库构建镜像,并使用K8s YAML文件自动部署SAE应用。本文将通过简单的示例演示上述流程,并引导您将其用于实际业务。

方案概览

image

实现本方案需要执行以下步骤:

  1. 上传源码

  2. 配置云效流水线

    1. 设置代码源

    2. 镜像构建与上传

    3. 部署SAE应用

  3. 运行云效流水线并验证结果

快速体验

1. 上传源码

您可以将示例代码spring-boot-demo.zip上传到源码仓库中(例如自建Gitlab、Codeup、Github),用于快速体验流程。

示例代码中相关文件的作用如下:

  • Dockerfile:用于从源码构建镜像。

  • manifests/dp.yaml:通过K8s YAML文件指定SAE部署应用时的配置信息。

2. 配置云效流水线

登录云效流水线控制台,单击新建流水线。

为了演示完整流程,本文使用空模板来创建流水线。选择空模板.空模板。单击创建。

2. 1 设置代码源

在流程配置页面,单击添加流水线源。选择代码源为示例代码所在的源码仓库类型,配置示例代码所在的代码仓库和使用的默认分支。

初次使用时,需要添加服务连接或企业公钥来授权云效流水线访问您的源码仓库。

image

2. 2 镜像构建与上传

在流水线的下个阶段,添加任务来执行镜像构建与上传:

  1. 单击系统默认创建的空任务节点,在编辑页面配置以下信息:

    • 选择构建集群为云效中国香港构建集群,因为示例代码的Dockerfile中包含海外的镜像依赖。

    • 选择构建节点,仅支持Linux/amd64。

  2. 单击添加步骤,在构建类别中根据实际情况选择镜像构建并推送至ACR(个人版)或镜像构建并推送至ACR(企业版)。

    本文假定您已开通容器镜像服务,且已创建个人版实例或创建企业版实例。

    镜像构建并推送至ACR(个人版)

    初次使用时,需要添加服务连接来授权云效流水线访问容器镜像服务。

    需要配置以下信息:

    • 选择镜像上传的目标地域、仓库。

    • 设置标签。可以为固定参数例如1.0,或者动态参数例如${DATETIME},表示镜像被推送到ACR后,将会以当前日期时间作为版本名称。

    • 设置Dockerfile路径。由于示例代码的Dockerfile文件位于代码库根目录,因此设置为Dockerfile。

    image

    镜像构建并推送至ACR(企业版)
    重要

    需要ACR企业版目标实例开启镜像仓库公网进行通信,再将Flow构建集群公网出口地址添加到ACR公网白名单里,详见配置公网的访问控制。查看Flow构建集群公网出口地址的方法,请参见构建集群。

    初次使用时,需要添加服务连接来授权云效流水线访问容器镜像服务。

    需要配置以下信息:

    • 选择镜像上传的目标地域、企业实例、命名空间、仓库。

    • 设置标签。可以为固定参数例如1.0,或者动态参数例如${DATETIME},表示镜像被推送到ACR后,将会以当前日期时间作为版本名称。

    • 设置Dockerfile路径。由于示例代码的Dockerfile文件位于代码库根目录,因此设置为Dockerfile。

    image

2. 3 部署SAE应用

在流水线的下个阶段,添加任务来部署SAE应用:

  1. 单击新的任务,选择空白任务模板创建一个任务,在编辑页面配置以下信息:

    • 选择构建节点,仅支持Linux/amd64。

  2. 单击添加步骤,在发布类别中选择Kubectl SAE 发布。

    初次使用时,需要添加服务连接来授权云效流水线访问SAE。

    需要配置以下信息:

    • 选择SAE目标应用所属的地域、命名空间。为简化流程,本示例设置命名空间为default,即默认命名空间。

    • 设置YAML路径。由于示例代码的YAML文件位于代码库manifests目录下,因此设置为manifests。

    • 设置变量。由于示例代码的YAML文件中引用了变量IMAGE,因此添加如下变量定义IMAGE = 镜像构建并推送至ACR(个人版/企业版).镜像公网地址。在部署应用时,会自动替换变量。

    image

3. 运行云效流水线并验证结果

  1. 保存并运行流水线。

  2. 运行完成后,可以点击各节点的日志,查看任务的执行过程和结果。部署SAE应用的节点日志中包含所有扫描到的YAML文件、通过K8s部署应用的标准输出、资源概要信息。

    image

  3. 登录SAE控制台,在左侧导航栏选择应用管理 > 应用列表,然后选择目标地域和目标命名空间。可以查看已部署的应用,应用名称为test-deployment。

4. 清理资源

单击已部署的应用,在基础信息页面,单击更多 > 删除应用。根据页面提示,完成应用的删除。

了解更多

工作原理

云效流水线利用kubectl-sae工具,根据代码源包含的YAML文件操作SAE应用底层的Kubernetes集群资源,实现 SAE 上的应用部署与资源管理。

如果您希望了解如何在本地或云服务器ECS中使用kubectl-sae工具,请参见saectl工具快速入门。

在您的生产环境中使用

编写YAML文件

如果您希望了解如何编写YAML文件,请参见saectl工具目录下的相关文档。

示例代码中使用manifests/dp.yaml指定SAE部署应用时的配置信息。生产环境中,您也可以在manifests路径下包含多个YAML文件,管理SAE的多种资源。根据多个YAML文件执行资源部署时不能保证执行顺序,如果您对执行顺序有要求,建议拆分成多个流水线按照您期望的顺序手动执行。

设置正确的文件路径

生产环境中,代码源的Dockerfile文件、YAML文件的路径可能与示例代码不同。配置云效流水线时,需要设置正确的路径。

  • 设置Dockerfile路径:Dockerfile相对于代码库根目录的路径,如META/config/Dockerfile或Dockerfile。

  • 设置YAML路径:YAML文件的父目录相对于代码库根目录的路径,例如manifests路径下包含YAML文件,则设置为manifests。

自定义流水线

根据业务需求,您可以在流水线中添加代码扫描、测试等任务节点。

代码源自动触发流水线

如果您希望上传代码等操作可以自动触发流水线的执行,请参见代码源触发。

相关文章

云效2020部署SAE应用与任务模板概览 2025-04-17 11:00

应用在不断迭代过程中,需要持续集成与部署,通过自动构建集成、测试和循环部署,高效顺畅地交付产品。云效2020支持不同语言的应用和任务模板的持续集成和部署。本文介绍云效2020部署应用和任务模板至Serverless 应用引擎 SAE(Serverless App Engine)的部署流程,以及不同语

部署Java应用至SAE 2025-04-17 11:00

本文介绍如何使用云效以JAR包或者WAR包的方式将Java语言的应用部署至Serverless 应用引擎 SAE(Serverless App Engine)。 前提条件

部署PHP应用至SAE 2025-04-17 11:00

本文介绍如何使用云效以镜像方式将PHP语言的应用部署至Serverless 应用引擎 SAE(Serverless App Engine)。 前提条件

部署PHP ZIP应用至SAE 2025-04-17 11:00

本文介绍如何使用云效以ZIP包方式将PHP语言的应用部署至Serverless 应用引擎 SAE(Serverless App Engine)。 前提条件

部署Golang应用至SAE 2025-04-17 11:00

本文介绍如何使用云效以镜像方式将Golang语言的应用部署至Serverless 应用引擎 SAE(Serverless App Engine)。 前提条件

部署Node.js应用至SAE 2025-04-17 11:00

本文介绍如何使用云效以镜像方式将Node.js语言的应用部署至SAE。 前提条件

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1