基于弹性伸缩和云效实现容器服务的发布部署管理

对于容器服务构建的应用场景,例如不依赖K8s、OpenShift等容器编排的场景,您可以通过基于弹性伸缩和云效来实现容器服务发布部署管理。

前提条件

背景信息

您可以通过弹性伸缩和云效对容器服务进行发布部署管理。其中,弹性伸缩和云效产品分别提供以下不同能力,具体说明如下:

  • 弹性伸缩提供了弹性管理能力。

    例如,使用该产品可以实现容器实例的分组管理、弹性伸缩、滚动升级等功能,方便您弹性管理容器服务场景的应用。

  • 云效提供了一站式管理服务能力。

    例如,使用该产品可以一键进行代码编译、测试、镜像构建、镜像上传、伸缩配置镜像更新等,方便您快捷地管理容器服务场景的应用。

概念介绍

概念

说明

云效

是云原生时代一站式BizDevOps平台,产研数字化同行者,支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力数字化转型企业快速实现产研数字化能力。

云效流水线

是一款企业级、自动化的持续集成和持续交付工具,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线的CI/CD全流程。

弹性容器实例ECI

是敏捷安全的Serverless容器运行服务。您无需管理底层服务器,也无需关心运行过程中的容量规划,只需要提供打包好的Docker镜像,即可运行容器,并仅为容器实际运行消耗的资源付费。

容器镜像服务ACR

是面向容器镜像、Helm Chart等符合OCI标准的云原生制品安全托管及高效分发平台。

步骤一:创建阿里云容器镜像仓库

  1. 登录容器镜像服务控制台

  2. 创建容器镜像实例。

    1. 在顶部菜单栏,选择地域。

    2. 实例列表页面,单击创建企业版实例

      说明

      本步骤以创建企业版实例为例,关于企业版实例与个人版实例的区别,更多信息,请参见个人版实例与企业版实例差异化说明

    3. 容器镜像服务页面,完成参数配置,然后单击立即购买

      主要配置项参数说明如下所示,其他参数保持默认值。

      配置项

      说明

      示例

      实例规格

      选择实例规格。

      基础版

      实例名称

      输入实例名称。

      eci-autoscaling

      购买时长

      目前支持选择1个月、2个月、3个月、6个月和1~5年。

      说明

      您还可以设置是否到期自动续费。

      1个月

    4. 确认订单页面,确认订单并选中我已阅读并同意容器镜像服务服务协议,单击去支付

    5. 支付页面底部查看实例的总费用,如无疑问,根据提示完成支付。

      返回管理控制台后,在实例列表页面,您可以看到新建企业版实例的运行状态为启动中

      说明

      首次购买企业版实例时,请您耐心等待大约2到3分钟后,待企业版实例启动完成(即状态变为运行中)后,再进行后续操作。

  3. 单击已创建的企业版实例(eci-autoscaling),进入实例概览页面。

  4. 在左侧导航栏,选择仓库管理 > 镜像仓库,然后单击创建镜像仓库

  5. 创建镜像仓库页面的仓库信息区域,完成相关参数配置,单击下一步

    主要参数配置项说明如下所示,其余参数项保持默认即可。

    配置项

    说明

    示例

    命名空间

    如果未创建命名空间,先创建后再选择该命名空间。具体操作,请参见步骤二:创建命名空间

    eci_autoscaling_namespace

    仓库名称

    长度为2~120个字符,由小写英文字母、数字、分隔符、下划线(_)、短划线(-)、半角句号(.)、正斜线(/)组成。

    eci_autoscaling_repo

    仓库类型

    支持公开私有两种仓库类型。

    私有

    摘要

    简要描述创建镜像仓库的用途即可。

    test

  6. 代码源区域,代码源选择本地仓库,然后单击创建镜像仓库

  7. 在镜像仓库的基本信息页面,单击公网地址后的请先开启访问控制的网络入口

  8. 在实例的访问控制页面,单击公网页签,开启访问入口,然后单击确定

    开启公网访问入口默认会添加一条白名单,且仅白名单内地址能够访问实例的公网域名。访问入口生效

  9. 在默认添加的白名单的操作列,单击删除

    删除该默认白名单后,公网下的服务器均可以通过凭证访问企业版实例。例如,后续云效通过访问该地址来构建上传镜像。

步骤二:通过云效服务创建流水线

  1. 登录云效流水线控制台

    首次登录控制台时,根据页面提示创建企业(企业名称以eci_autoscaling_example为例)。

  2. 我的流水线页面,单击新建流水线

    说明

    首次登录云效流水线控制台时,您也可以在弹出的流水线对话框,单击立即新建来新创建流水线。

  3. 选择流水线模板页面,根据您的开发语言和部署场景,选择合适的流水线模板,单击创建完成一条流水线创建。

    本步骤以选择Java · 测试、构建镜像为例。

    java、测试.png

  4. 在页面左上方,设置流水线名称为构建镜像流水线,再单击添加流水线源并完成代码源相关参数,然后单击添加

    本步骤以代码源选择示例代码源,代码类型选择JAVA为例。

    示例代码源.png

  5. 构建镜像区域,单击阿里云镜像构建,单击编辑面板中的delete图标,然后单击确定

    构建镜像区域,阿里云镜像构建默认为阿里云镜像构建个人版。因为步骤一:创建阿里云容器镜像仓库中创建的镜像为企业版,所以您需要先删除阿里云镜像构建个人版,然后再创建阿里云镜像构建企业版。

  6. 新阶段区域,单击新的任务,在弹出的面板左侧,选择镜像构建 > 阿里云镜像构建企业版,在编辑面板的任务步骤区域,单击镜像构建并推送至阿里云镜像仓库企业版,配置如下参数。

    参数示例如下图所示:

    编辑.png

  7. 单击保存并运行,在弹出的运行配置对话框,单击运行

    运行大约需要2~3分钟时间,请您耐心等待。阿里云镜像企业版构建完成后,如下图所示:镜像构建

  8. 进入已创建的企业版实例(eci-autoscaling)页面,选择仓库管理 > 镜像仓库,单击镜像仓库(eci_autoscaling_repo)对应操作列的管理

  9. 在左侧导航栏,单击镜像版本,确认镜像已构建成功。

步骤三:基于构建镜像创建ECI类型伸缩组

  1. 登录弹性伸缩控制台
  2. 创建ECI类型伸缩组。

    具体操作,请参见创建伸缩组

    本步骤中主要配置参数说明如下:

    配置项

    说明

    示例

    伸缩组名称

    无。

    eci_scaling_group

    伸缩组类型

    支持ECSECI两种类型。

    ECI

    组内实例配置信息来源

    伸缩组创建完成后,您需要继续创建伸缩配置。

    从零开始创建

    组内最小实例数

    当前实例数量低于下限时,伸缩组会自动添加实例,使得伸缩组内的实例数量等于下限。

    1

    组内最大实例数

    当前实例数量超过上限时,伸缩组会自动移出实例,使得伸缩组内的实例数量等于上限。

    2

    专有网络

    选择已创建的专有网络。

    vpc-bp1jmxxau0lur929p****

    选择交换机

    选择专有网络后必须选择交换机。

    vsw-bp155oak33mqngov2****

  3. 创建并启动伸缩配置。

    具体操作,请参见创建伸缩配置(ECI实例)

    本步骤中主要配置参数说明如下:

    配置项

    说明

    示例

    容器配置 > 镜像

    选择容器上运行的镜像。

    容器镜像:单击选择容器镜像,然后单击企业镜像页签,选择步骤二:通过云效服务创建流水线中构建的企业镜像。

    eci-autoscaling-***_repo

    选择容器上运行的镜像版本。

    eci_autoscaling_****_01

  4. 启用ECI类型伸缩组。

    具体操作,请参见启用或停用伸缩组

  5. 查看ECI实例的镜像信息。

    实例列表下的自动创建页签中,单击已创建的ECI实例ID进入ECI实例页面,您可以在该ECI实例对应的镜像列下查看ECI实例的镜像信息。

    说明

    因为步骤2中伸缩组设置的最小实例数为1,所以伸缩组启用后系统会自动创建1台ECI实例。

    镜像信息

步骤四:通过云效实现伸缩组发布部署

  1. 登录云效流水线控制台

  2. 我的流水线页面,找到已创建的镜像流水线,选择... > 复制流水线,然后单击确定复制原有构建的镜像。

  3. 单击复制后的镜像流水线,并单击右上角的编辑,然后修改镜像流水线名称为构建镜像并发布伸缩组流水线

  4. 新阶段区域,单击新的任务

  5. 在弹出的左侧面板,选择部署 > ESS ECI部署

  6. 编辑面板,选择新创建的伸缩组(eci_scaling_group),选择对应的容器名称和部署镜像地址。

    具体参数示例如下图所示:

    镜像不是.png

  7. 单击保存并运行,在弹出的运行配置对话框,单击运行

  8. 部署区域下,单击发布单详情,查看执行结果。

  9. 查看ECI实例镜像和伸缩组镜像配置已更新。

    • 在弹性容器实例页面的事件页签下,您可以查看到ECI实例镜像已更新。镜像更新

    • 在伸缩配置页面的容器配置区域,您可以查看到伸缩组镜像配置已更新。镜像结果