Node.js 应用构建并部署到 ACK 集群

通过使用流水线Flow,自动化构建Node.js应用镜像,并推送到ACR镜像仓库,由ACK集群发布YAML对象资源应用部署,完成整条自动化流水线任务。

前提条件

  • 本示例使用GitHub代码托管仓库,根据需求可以选择合适的项目代码托管仓库,项目代码托管仓库需要包含构建镜像的指令文件Dockerfile和部署应用的资源文件YAML。

  • 根据需求选择合适的镜像仓库,本示例使用容器镜像服务ACR个人版实例,建议选择ACR企业版(并发速度性能有保障),具体操作请参阅创建个人版实例

  • 请确保完成创建ACK集群,具体操作请参阅创建ACK托管集群

背景信息

关于示例项目代码仓库涉及到Dockerfile指令文件和YAML对象资源文件,为了更顺利的完成Node.js构建镜像并部署ACK集群流水线任务,针对YAML对象资源配置做进一步说明,YAML文件:配置三个对象资源分别为Secret、Deployment、Service,因为本文使用了ACR镜像仓库个人版实例并且有访问凭据设置,所以在YAML文件里配置了secret资源镜像仓库地址、账号和密码信息,请根据自定义的环境进行操作。

步骤一:新建流水线

  1. 登录流水线Flow服务控制台,在控制台界面,请单击右侧上方新建流水线按钮

  2. 在弹出的对话框,根据需求选择合适的流水线模板,选择好流水线模板后,单击创建按钮。image

步骤二:配置流水线-代码源

  1. 当您创建完成流水线后,将会跳转到流程配置任务节点操作界面,单击任务节点添加流水线源按钮。

    说明

    关于添加流水线源,您可以选择多种代码源的托管仓库平台,如:自建Gitlab、Codeup、Github等,根据需求选择合适的代码源。

  2. 选择代码源选中Github,单击添加服务链接,进行流水线Flow服务访问Github授权,选择仓库和分支,提供示例图参考。image

步骤三:配置流水线-镜像构建

  1. 当代码源任务添加完成后,单击任务节点Docker 镜像构建按钮,在弹出编辑页面,完成参数配置。

    参数

    说明

    任务名称

    自定义任务名称。

    构建集群

    根据需求选择合适的构建集群地区。

    说明

    本示例选择使用云效中国香港构建集群,为了快速的访问Github,请根据需求选择合适构建集群。

    构建环境

    根据需求选择合适的构建环境。

    说明

    任务执行期间,流水线任务构建环境分配给用户使用,构建环境使用权限归属用户,任务执行脚本由用户自定义。

    下载流水线源

    根据需求选择合适的方式。

  2. 任务步骤配置项,配置任务镜像构建并推送阿里云

    参数

    说明

    步骤名称

    自定义步骤名称。

    选择服务连接

    添加容器镜像服务ACR连接。

    地域

    根据ACR实例所属地域选择。

    仓库

    选择ACR实例目标自定义仓库。

    私有构建集群使用 VPC 地址推送镜像

    如果勾选此项,镜像构建完成后将使用 VPC 地址进行镜像推送,仅在私有构建集群场景生效。

    标签

    标签为Docker镜像Tag。支持固定参数例如1.0,或者动态参数例如${DATETIME}。

    Dockerfile路径

    配置自定义Dockerfile文件所在项目的路径地址。

    image

步骤四:配置流水线-ACK部署

  1. 完成上述镜像构建任务后,单击任务节点Kubernetes 发布按钮,在弹出编辑页面,请选择构建集群为云效中国香港构建集群,保持与镜像构建任务同一个构建集群。

  2. 任务步骤配置项,开始配置Kubectl 发布任务。

    参数

    说明

    步骤名称

    自定义步骤名称。

    集群连接

    新建集群连接,连接到自定义Kubernetes或者阿里云容器服务集群。

    说明

    关于集群连接,具体操作请参阅Kubernetes 服务连接

    Kubectl 版本

    根据需求选择与集群适配的Kubectl版本,Kubectl版本为当前步骤中使用的kubectl客户端版本。

    命名空间

    资源命名空间为Kubernetes集群下的命名空间。例如"default"。

    YAML 路径

    设置资源部署文件YAML或者目录路径。

    说明

    选择YAML文件或者目录在源码中的相对路径。例如"manifests"。

    变量

    参数变量为需要动态替换的占位符。在YAML中您可以使用占位符为了获得上游镜像构建后镜像地址,如${IMAGE},并在发布时自动替换。

    image

步骤五:运行并查看流水线

  1. 完成流水线任务节点配置后,请单击右侧上方保存并运行按钮,下图是流水线运行完成成功状态。image

  2. 在构建任务节点中,单击日志查看流水线任务执行的过程日志,如图可以观察到ACK集群通过YAML资源文件部署的对象资源。image

  3. 查看ACK集群节点部署的Node.js应用信息,至此Node.js应用构建并部署到ACK自动化流水线完成。image