用户指南
文档版本 01
发布日期 2020-09-22
版权所有 © 华为技术有限公司 2020。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声 明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
目 录
1 约束与限制... 1
2 权限管理...2
2.1 创建用户并授权使用 ContainerOps... 2
3 流水线管理... 4
3.1 快速创建流水线...4
3.2 使用示例模板创建流水线... 10
3.3 创建自定义流水线... 11
3.3.1 基于源码构建镜像进行灰度发布... 11
3.3.2 使用 helm 模板部署镜像... 20
3.3.3 使用 AOS 模板部署镜像...24
3.3.4 使用多任务部署组件构建流水线... 27
3.3.5 使用性能测试组件构建流水线...29
3.3.6 使用单元测试组件构建流水线...31
3.4 流水线基本操作... 36
4 流水线组管理...41
5 模板管理...43
6 授权管理...46
7 代码源配置...48
7.1 绑定代码源账号... 48
7.2 构建节点与私有 GitLab 之间的访问... 51
8 软件中心...53
1 约束与限制
因业务调整,容器交付流水线(ContainerOps)功能暂停开通,如您在2020-06-25之 前已经开通了流水线功能,则可以继续使用。为您带来不便,敬请谅解。
2 权限管理
2.1 创建用户并授权使用 ContainerOps
如果您需要对您所拥有的容器交付流水线(ContainerOps)进行精细的权限管理,您 可以使用统一身份认证服务(Identity and Access Management,简称IAM),通过 IAM,您可以:
● 根据企业的业务组织,在您的华为云账号中,给企业中不同职能部门的员工创建 IAM用户,让员工拥有唯一安全凭证,并使用ContainerOps资源。
● 根据企业用户的职能,设置不同的访问权限,以达到用户之间的权限隔离。
● 将ContainerOps资源委托给更专业、高效的其他华为云账号或者云服务,这些账 号或者云服务可以根据权限进行代运维。
如果华为云账号已经能满足您的要求,不需要创建独立的IAM用户,您可以跳过本章 节,不影响您使用ContainerOps服务的其它功能。
本章节为您介绍对用户授权的方法,操作流程如图2-1所示。
前提条件
给用户组授权之前,请您了解用户组可以添加的ContainerOps权限,并结合实际需求 进行选择,ContainerOps支持的系统权限,请参见:ContainerOps系统权限。若您 需要对除ContainerOps之外的其它服务授权,IAM支持服务的所有权限请参见权限策 略。
示例流程
图2-1 给用户授权 ContainerOps 权限流程
1. 创建用户组并授权
在IAM控制台创建用户组,并授予容器交付流水线的管理员权限“SWR Admin”。
2. 创建用户并加入用户组
在IAM控制台创建用户,并将其加入1中创建的用户组。
3. 用户登录并验证权限
新创建的用户登录控制台,切换至授权区域,验证权限:
– 在“服务列表”中选择容器流水线,进入ContainerOps界面,选择左侧导航 栏的“流水线”,在右侧页面单击“快速创建流水线(推荐)”,如果能创 建流水线,说明权限设置成功。
3 流水线管理
3.1 快速创建流水线
ContainerOps提供了快速创建流水线的界面操作方法,您可以在流水线中设置代码获 取、代码编译、镜像构建和镜像部署等任务。
操作步骤
步骤1 登录ContainerOps控制台。
步骤2 选择左侧导航栏的“流水线”,在右侧页面单击“快速创建流水线(推荐)”。
步骤3 设置创建流水线信息,单击“确定”进入流水线配置页面。
图3-1 创建流水线
● 流水线名称:设置流水线名称。
● 流水线组:选择流水线组,如果没有流水线组,可单击“新建一个组”创建流水 线组。
● 镜像语言:可选择“JAVA”、“GO”、“NodeJs”或“其他”。
● 构建源:“源码仓库”或“软件包”。
– 源码仓库:从代码库获取的源码进行编译后,将所生成的二进制文件构建成 镜像。
– 软件包:用所指定的软件仓库中的文件构建成镜像,并自动上传到指定的镜 像仓库中。
● 部署:可选项,开启后支持“CCE部署”或“CCI部署”。镜像部署的配置方法参 见8。
须知
● 镜像语言选择“JAVA”、“GO”或“NodeJs”时,构建源可选择“源码仓库”或
“软件包”。构建源选择“源码仓库”时,源代码仓库、Jenkins构建-云上和镜像 构建的配置方法参见5、6、7。构建源选择“软件包”时,镜像构建的配置方法参 见7。
● 镜像语言选择“其他”时,构建源只可选择“源码仓库”,源代码仓库和镜像构建 的配置方法参见5、7。
步骤4 配置流水线基本信息。
● 流水线名称:自定义流水线名称。
● 流水线组:选择流水线组。
● 流水线描述:输入描述信息。
● 执行结果通知:有“异常时通知”和“成功时通知”两种方式可选。勾选后,单 击“添加用户”,可选择需要通知的用户,设置邮箱和手机号。
● 全局变量:已默认设置了SYS_TIMESTAMP(时间戳)和SYS_INCREMENT(自增 量)全局变量,如需添加新的全局变量,可单击“添加全局变量”。设置的全局 变量通过${变量名}的方式,在流水线的配置、脚本中使用。例如:在此处配置环 境变量名reponame,则在上传软件包时,可通过${reponame}来获取值。
● 拓扑图:展示当前流水线的拓扑图,单击对应图标,可在下方进行阶段配置。
步骤5 单击拓扑图中的阶段图标,配置“代码获取”信息,单击“下一步”。
阶段类型默认为“源代码仓库”。
● 代码来源:选择代码来源,您需要先绑定代码源账号,具体操作请参见绑定代码 源账号。
说明
当前版本代码来源支持DevCloud、Gitee、Github、GitLab。
绑定账号后,需要配置以下信息:
– 命名空间:配置为代码仓库所属的命名空间。
– 仓库名称:配置为代码仓库的名称。
– 分支:选择“分支”,可配置代码所属的分支。
– 标签:选择“标签”,可配置代码对应的标签。
● 自动构建:当满足勾选的条件(添加新tag时触发流水线、提交代码到分支时触发 流水线)时,即触发构建。
– Webhook挂载:选择“自动挂载”或“手动挂载”。若选择自动挂载,则会 在您选择自动构建以后自动将webhook挂载到对应的源码仓库,若选择手动 挂载,则需要您手动复制信息并在对应的源码仓库下创建一个webhook。当 您绑定的账号没有创建webhook权限时,建议您选择手动挂载方式,再由高 权限的用户手动创建webhook。
● 高级选项:添加该阶段的错误处理机制、触发条件和消息通知,实现流水线间的 协同联动。
须知
流水线各阶段均可设置高级选项,添加对应阶段的错误处理机制、触发条件和消 息通知。
– 错误处理机制:可选“错误时退回初始节点”、“错误时停止,超时退出”
(您可指定超时时间)、“忽略错误继续执行”。
– 触发条件:支持“webhook”和“内部调用”两种方式。选择webhook,使 用webhook类型的URL触发该阶段,该url已默认生成。选择内部调用,使用 指定频道触发该阶段。
如需为触发条件添加传入参数,可单击“添加传入参数”,设置参数名称,
选择全局变量,该参数的值将传递给选择的全局变量。
触发模式可选择“全部触发视为触发”或“任意一个触发即触发”。
图3-2 触发条件
– 消息通知:支持“webhook”和“内部调用”两种方式。执行结果通知可勾 选“成功时通知”和“异常时通知”。
▪
选择webhook,使用通知URL进行消息通知,支持POST和GET类型,可 添加头域、请求体和参数。图3-3 webhook 消息通知
▪
选择内部调用,使用指定频道进行消息通知。如需为消息通知添加传出 参数,可单击“添加传出参数”,设置参数名称,选择全局变量,选择 的全局变量值将传递给该参数。图3-4 内部调用消息通知
步骤6 单击拓扑图中的阶段图标,配置“代码编译”信息,单击“下一步”。
阶段类型默认为“Jenkins构建-云上”。
● 输入资源:支持“代码来源”、“软件包”。
软件包格式为:组织(必选)/软件仓库(必选)/软件包(必选)/软件包版本
(必选)/文件(可选)。如需创建软件包,可单击左侧导航栏的“软件中心”,
创建方法请参见软件中心。
● 编译环境:对源码进行编译的环境,支持Java、Go、Node.js或自定义。
● 构建脚本:对源码进行编译的脚本。
– Java:默认为mvn package;
– Go:默认为go build -o myBuild;
– Node.js:默认为npm install && npm run build;
– 自定义:自定义编译环境镜像,只支持通过公开镜像镜像构建,暂不支持私 有镜像。
● 启动缓存构建:选择是否启用构建缓存。勾选后则启动maven、go、nodejs缓存 加速构建任务。
● 归档软件包:填写脚本编译出来的软件包,如:test.jar。
● 归档资源:选择软件包归档地址,格式为:组织(必选)/软件仓库(必选)/软件 包(必选)/软件包版本(必选)/文件(可选,如不填就默认为归档软件包的名 称)。建议您定期清理不再使用的软件包,以免超出您的软件仓库配额,导致归 档失败。
步骤7 单击拓扑图中的阶段图标,配置“镜像构建”信息,单击“提交”(如步骤3中开启了 部署,则单击“下一步”,配置部署阶段的信息)。
阶段类型默认为“镜像构建”。
● 输入资源:支持“代码来源”、“镜像”、“软件包”。
镜像格式为:组织(必选)/镜像仓库(必选)/Tag(必选)。如需添加镜像,可 单击左侧导航栏的“镜像仓库”,前往容器镜像服务上传镜像,上传方法请参见 客户端上传镜像。
软件包格式为:组织(必选)/软件仓库(必选)/软件包(必选)/软件包版本
(必选)/文件(可选)。如需创建软件包,可单击左侧导航栏的“软件中心”,
创建方法请参见软件中心。
● 构建方式:系统默认或自定义Dockerfile。选择“系统默认”时,需要配置“基础 镜像”、“基础镜像版本”和“对外服务端口”。选择“自定义Dockerfile”时,
需要配置“基础镜像”、“Dockerfile”。
● 基础镜像:Tomcat、Golang、Java。
– Tomcat: 使用最新的Tomcat版本作为基础镜像,用于war包的镜像构建 。 – Golang:使用最新的Golang版本作为基础镜像,用于go语言二进制的镜像构
建 。
– Java:使用最新的Java版本作为基础镜像,用于jar包的镜像构建 。
● Dockerfile:填写Dockerfile路径或在网页填写Dockerfile内容。
说明
Dockerfile路径默认为./Dockerfile,表示当前目录下的文件。填写的Dockerfile路径为相对 路径,输入资源中的代码或软件包将被下载到构建目录,然后在构建目录执行镜像构建。
● 归档资源:选择镜像归档地址,格式为:组织(必选)/镜像仓库(必选)/Tag
(必选)。其中,Tag参数建议通过全局变量的配置和引用来管理版本号,若存在 具体版本号,可选择已有版本号进行管理。
步骤8 (可选,当3中部署开启后执行该步骤)单击拓扑图中的阶段图标,配置“部署”信 息,单击“提交”。
阶段类型默认为“正式发布”。
● 输入资源:支持“镜像”。
镜像格式为:组织(必选)/镜像仓库(必选)/Tag(必选)。如需添加镜像,可 单击左侧导航栏的“镜像仓库”,前往容器镜像服务上传镜像,上传方法请参见 客户端上传镜像。
● 部署工具:选择“云容器引擎CCE”或“云容器实例CCI”。
a. 选择“云容器引擎CCE”,设置以下参数:
▪
集群:选择镜像对应的集群。若无可用的集群,可单击“创建集群”跳 转到CCE控制台创建集群。▪
命名空间:配置为集群所对应的命名空间。若无可用的命名空间,可单 击“创建命名空间”跳转到CCE控制台创建命名空间。▪
工作负载:选择镜像对应的工作负载,若无可用的工作负载,可单击“新建”创建工作负载。
▪
创建方式:“标准”或“YAML”。▪
镜像更新策略:当“创建方式”配置为“标准”才显示。支持“始终更 新”和“版本变化时更新”。▪
实例数量:当“创建方式”配置为“标准”才显示。添加实例数量,最 多添加300个。▪
升级方式:当“创建方式”配置为“标准”才显示。创建应用时设置,并且创建后无法修改。
○ 滚动升级:逐步用新版本实例替换旧版本实例。升级过程中,业务 会同时均衡分布到新老实例上,因此业务不会中断。
○ 替换升级:替换升级将先把您工作负载的老版本实例删除,再安装 指定的新版本。
▪
最大无效实例数:每次滚动升级允许的最大无效实例数,如果等于实例 数有断服风险(最小存活实例数 = 实例数 - 最大无效实例数)。▪
CPU配额:当“创建方式”配置为“标准”才显示。CPU申请值,指需 要预留给容器的CPU值,依据此值选择有足够CPU资源的节点进行配 置。CPU限制值,指允许容器使用的CPU最大值。▪
内存配额:当“创建方式”配置为“标准”才显示。内存申请值,需要 预留给容器的内存值,依据此值选择有足够内存资源的节点进行调度。内存限制值,指允许容器使用的内存最大值。
▪
Manifest:当“创建方式”配置为“YAML”才显示。编辑时需要按照 kubernetes的yaml语法编辑Manifest。b. 选择“云容器实例CCI”,设置以下参数:
▪
命名空间:选择镜像对应的命名空间。若无可用的命名空间,可单击“创建命名空间”跳转到CCI控制台创建命名空间。
▪
工作负载:选择镜像对应的工作负载,若无可用的工作负载,可单击“新建”创建工作负载。
▪
创建方式:“标准”或“YAML”。▪
实例数量:当“创建方式”配置为“标准”才显示。添加实例数量,最 多添加300个。▪
GPU加速:当“命名空间”配置为GPU加速型命名空间才显示。勾选“使用GPU加速型”后可选择GPU规格和驱动规格。选择使用GPU加速 型后,CPU配额和内存配额将无法设置。
▪
CPU配额:当“创建方式”配置为“标准”才显示。CPU限制值,指允 许容器使用的CPU最大值。▪
内存配额:当“创建方式”配置为“标准”才显示。内存限制值,指允 许容器使用的内存最大值。▪
Manifest:当“创建方式”配置为“YAML”才显示。编辑时需要按照 kubernetes的yaml语法编辑Manifest。● 应用服务配置:选择“工作负载”后才可配置该项。单击“添加服务”,可设置 服务名称、访问类型和端口配置。
说明
使用CCI部署时,新建工作负载才可添加服务,选择现有应用不可配置应用服务。使用CCE 部署时,新建和选择现有工作负载都可配置应用服务。
● 高级设置:可选项,包括“健康检查”、“容器日志”、“数据存储”、“环境 变量”、“生命周期”和“性能管理配置”。
说明
使用CCI部署时,不支持性能管理配置。
– 健康检查:健康检查是指容器运行过程中根据用户需要定时检查容器健康状 况或是容器中应用的健康状况,可设置“工作负载存活探针”和“工作负载 业务探针”。健康检查的配置方法请参见容器健康检查。
– 容器日志:设置容器日志存储路径,便于统一管理与分析。若不设置将采用 默认标准输出,容器日志配置方法请参见如何设置日志策略。
– 数据存储:支持挂载云硬盘到容器中,以实现数据文件的持久化存储。系统 会默认设置使用含云硬盘存储卷部署的无状态工作负载为单实例。数据存储 的配置方法请参见存储概述。
– 环境变量:容器运行环境中设定的一个变量。可以在负载部署后修改,为负 载提供极大的灵活性。环境变量的配置方法请参见设置环境变量。
– 生命周期:生命周期脚本定义,主要针对容器类应用的生命周期事件应用采 取的动作。启动命令的配置方法请参见设置容器启动命令。
– 性能管理配置:性能管理服务协助您快速进行工作负载问题定位与性能瓶颈 分析,改善用户体验。
----结束
3.2 使用示例模板创建流水线
ContainerOps的模板市场中提供了多个流水线模板,当前模板市场中提供流水线模板 如表5-1。您可以基于这些示例模板来创建流水线。
操作步骤
以“将源码直接构建成镜像(不部署)”为例介绍使用示例模板创建流水线。
步骤1 登录ContainerOps控制台。
步骤2 选择左侧导航栏的“流水线”,在右侧页面单击“使用示例模板创建”。
步骤3 单击左侧导航栏的“镜像构建”,在“将源码直接构建成镜像(不部署)”卡片内单 击“创建流水线”。
图3-5 将源码直接构建成镜像(不部署)
步骤4 在弹出的对话框中,设置流水线名称,选择流水线组,如果没有流水线组,可单击
“新建一个组”创建流水线组,单击“确定”进入流水线配置页面。
步骤5 设置流水线信息及各阶段配置,请参考快速创建流水线。
----结束
3.3 创建自定义流水线
3.3.1 基于源码构建镜像进行灰度发布
ContainerOps通过“灰度发布”组件和“正式发布”组件实现灰度发布,并且提供了 Istio、金丝雀发布、蓝绿发布三种灰度发布策略,如表3-1所示。
表3-1 灰度发布策略
策略名称 描述 特点
Istio 应用服务网格是华为云基于开源Istio推出的 服务网格平台,它深度、无缝对接了华为云 的企业级Kubernetes集群服务云容器引 擎。启用Istio将为您的服务以无侵入的方式 提供灵活的服务治理能力。
镜像部署的CCE集群需要 已启用Istio,才可以使用 Istio灰度发布策略。
第一次使用应用服务网格 进行灰度升级时会断服。
策略名称 描述 特点 金丝雀发
布
在生产环境上引一部分实际流量对一个新版 本进行测试,测试新版本的性能和表现,在 保证系统整体稳定运行的前提下,尽早发现 新版本在实际环境上的问题。
通过在线上运行的服务 中,新加入少量的新版本 的服务,然后从这少量的 新版本中快速获得反馈,
根据反馈决定最后的交付 形态。
蓝绿发布 蓝绿发布提供了一种零宕机的部署方式。不 停老版本,部署新版本进行测试,确认 OK,将流量切到新版本,然后老版本同时 也升级到新版本。始终有两个版本同时在 线,有问题可以快速切换。
在部署应用的过程中,应 用始终在线。并且新版本 上线过程中,不会修改老 版本的任何内容,在部署 期间老版本状态不受影 响。只要老版本的资源不 被删除,可以在任何时间 回滚到老版本。
本章将以“基于源码构建镜像进行灰度发布”为例介绍ContainerOps进行灰度发布的 方法。
操作步骤
步骤1 登录ContainerOps控制台。
步骤2 在左侧菜单栏选择“流水线”,单击右侧“自定义模板创建”。
步骤3 配置流水线基本信息。
● 流水线名称:自定义流水线名称。
● 流水线组:选择流水线组。
● 流水线描述:输入描述信息。
● 执行结果通知:有“异常时通知”和“成功时通知”两种方式可选。勾选后,单 击“添加用户”,可选择需要通知的用户,设置邮箱和手机号。
● 全局变量:已默认设置了SYS_TIMESTAMP(时间戳)和SYS_INCREMENT(自增 量)全局变量,如需添加新的全局变量,可单击“添加全局变量”。设置的全局 变量通过${变量名}的方式,在流水线的配置、脚本中使用。例如:在此处配置环 境变量名reponame,则在上传软件包时,可以使用${reponame}来获取值。
● 拓扑图:展示当前流水线的拓扑图,单击对应图标,可在下方进行阶段配置。
步骤4 单击拓扑图中的阶段图标,添加阶段,阶段类型为“源代码仓库”,阶段名称可自定 义。
配置源代码仓库信息。
● 代码来源:选择代码来源,您需要先绑定代码源账号,具体操作请参见绑定代码 源账号。
说明
当前版本代码来源支持DevCloud、Gitee、Github、GitLab。
绑定账号后,需要配置以下信息:
– 命名空间:配置为代码仓库所属的命名空间。
– 仓库名称:配置为代码仓库的名称。
– 分支:选择“分支”,可配置代码所属的分支。
– 标签:选择“标签”,可配置代码对应的标签。
● 自动构建:当满足勾选的条件(添加新tag时触发流水线、提交代码到分支时触发 流水线)时,即触发构建。
– Webhook挂载:选择“自动挂载”或“手动挂载”。若选择自动挂载,则会 在您选择自动构建以后自动将webhook挂载到对应的源码仓库,若选择手动 挂载,则需要您手动复制信息并在对应的源码仓库下创建一个webhook。当 您绑定的账号没有创建webhook权限时,建议您选择手动挂载方式,再由高 权限的用户手动创建webhook。
● 高级选项:添加该阶段的错误处理机制、触发条件和消息通知,实现流水线间的 协同联动。
须知
流水线各阶段均可设置高级选项,添加对应阶段的错误处理机制、触发条件和消 息通知。
– 错误处理机制:可选“错误时退回初始节点”、“错误时停止,超时退出”
(您可指定超时时间)、“忽略错误继续执行”。
– 触发条件:支持“webhook”和“内部调用”两种方式。选择webhook,使 用webhook类型的URL触发该阶段,该url已默认生成。选择内部调用,使用 指定频道触发该阶段。
如需为触发条件添加传入参数,可单击“添加传入参数”,设置参数名称,
选择全局变量,该参数的值将传递给选择的全局变量。
触发模式可选择“全部触发视为触发”或“任意一个触发即触发”。
图3-6 触发条件
– 消息通知:支持“webhook”和“内部调用”两种方式。执行结果通知可勾 选“成功时通知”和“异常时通知”。
▪
选择webhook,使用通知URL进行消息通知,支持POST和GET类型,可 添加头域、请求体和参数。图3-7 webhook 消息通知
▪
选择内部调用,使用指定频道进行消息通知。如需为消息通知添加传出 参数,可单击“添加传出参数”,设置参数名称,选择全局变量,选择 的全局变量值将传递给该参数。图3-8 内部调用消息通知
步骤5 单击拓扑图中上一阶段旁的 ,添加阶段,阶段类型为“镜像构建”,阶段名称可 自定义。
配置镜像构建信息。
● 输入资源:支持“代码来源”、“镜像”、“软件包”。
镜像格式为:组织(必选)/镜像仓库(必选)/Tag(必选)。如需添加镜像,可 单击左侧导航栏的“镜像仓库”,前往容器镜像服务上传镜像,上传方法请参见 客户端上传镜像。
软件包格式为:组织(必选)/软件仓库(必选)/软件包(必选)/软件包版本
(必选)/文件(可选)。如需创建软件包,可单击左侧导航栏的“软件中心”,
创建方法请参见软件中心。
● 构建方式:默认为“自定义Dockerfile”。
● 基础镜像:默认为“自定义”。
● Dockerfile:填写Dockerfile路径或在网页填写Dockerfile内容。
说明
Dockerfile路径默认为./Dockerfile,表示当前目录下的文件。填写的Dockerfile路径为相对 路径,输入资源中的代码或软件包将被下载到构建目录,然后在构建目录执行镜像构建。
● 归档资源:选择镜像归档地址,格式为:组织(必选)/镜像仓库(必选)/Tag
(必选)。其中,Tag参数建议通过全局变量的配置和引用来管理版本号,若存在 具体版本号,可选择已有版本号进行管理。
步骤6 单击拓扑图中上一阶段旁的 ,添加阶段,阶段类型为“灰度发布”,阶段名称可 自定义。
配置灰度发布信息。
● 输入资源:单击“添加输入资源”可添加输入资源。镜像格式为:组织(必选)/
镜像仓库(必选)/Tag(必选)。如需添加镜像,可单击左侧导航栏的“镜像仓 库”,前往容器镜像服务上传镜像,上传方法请参见客户端上传镜像。
● 部署工具:选择“云容器引擎CCE”,设置以下参数:
– 集群:若无可用的集群,可单击“创建集群”跳转到CCE控制台创建集群。
若当前所选集群已启用Istio时,灰度发布策略默认选择“Istio”。若当前所 选集群未启用Istio时,灰度发布策略可选择“金丝雀”或“蓝绿发布”。
– 命名空间:配置为集群所对应的命名空间。若无可用的命名空间,可单击
“创建命名空间”跳转到CCE控制台创建命名空间。
– 工作负载:选择镜像对应的工作负载。
– 灰度发布策略:支持“Istio”、“金丝雀”、“蓝绿发布”。
i. Istio:
○ 灰度版本实例数:添加灰度版本实例数量,最多添加300个。
○ 正式版本实例数:当“创建方式”配置为“标准”才显示。添加正 式版本实例数量,最多添加300个。
○ 最大无效实例数:当“创建方式”配置为“标准”才显示。每次滚 动升级允许的最大无效实例数,如果等于实例数有断服风险(最小 存活实例数 = 实例数 - 最大无效实例数)。勾选“百分比”,可设 置最大无效实例数占总实例数量的百分比。
ii. 金丝雀
○ 灰度版本实例数:添加灰度版本实例数量,最多添加300个。勾选
“百分比”,可设置灰度版本实例数占总实例数量的百分比。
○ 实例数量:当“创建方式”配置为“标准”才显示。添加实例数 量,最少添加2个,最多添加300个。
○ 最大无效实例数:当“创建方式”配置为“标准”才显示。每次滚 动升级允许的最大无效实例数,如果等于实例数有断服风险(最小 存活实例数 = 实例数 - 最大无效实例数)。勾选“百分比”,可设 置最大无效实例数占总实例数量的百分比。
iii. 蓝绿发布
○ 实例数量:当“创建方式”配置为“标准”才显示。添加实例数 量,最多添加300个。
○ 最大无效实例数:当“创建方式”配置为“标准”才显示。每次滚 动升级允许的最大无效实例数,如果等于实例数有断服风险(最小 存活实例数 = 实例数 - 最大无效实例数)。勾选“百分比”,可设 置最大无效实例数占总实例数量的百分比。
– 创建方式:选择“标准”或“YAML”。
– 镜像更新策略:当“创建方式”配置为“标准”才显示。支持“始终更新”
和“版本变化时更新”。
– 升级方式:当“创建方式”配置为“标准”才显示。创建应用时设置,并且 创建后无法修改。
▪
滚动升级:逐步用新版本实例替换旧版本实例。升级过程中,业务会同 时均衡分布到新老实例上,因此业务不会中断。▪
替换升级:替换升级将先把您工作负载的老版本实例删除,再安装指定 的新版本。– CPU配额:当“创建方式”配置为“标准”才显示。CPU申请值,指需要预 留给容器的CPU值,依据此值选择有足够CPU资源的节点进行配置。CPU限制 值,指允许容器使用的CPU最大值。
– 内存配额:当“创建方式”配置为“标准”才显示。内存申请值,指需要预 留给容器的内存值,依据此值选择有足够内存资源的节点进行调度。内存限 制值,指允许容器使用的内存最大值。
– Manifest:当“创建方式”配置为“YAML”才显示。编辑时需要按照 kubernetes的yaml语法编辑Manifest。
● 应用服务配置:服务名称、内部域名访问地址、服务访问方式、访问端口/协议、
容器端口/协议已默认设置。单击“编辑”,在“添加服务”对话框中可修改访问 协议,目前公网访问应用使用的协议支持TCP和UDP。
须知
灰度发布只能使用一个service,不可添加其他应用服务配置。
已生效的访问协议不可修改。
● 高级设置:可选项,包括“健康检查”、“容器日志”、“数据存储”、“环境 变量”、“生命周期”和“性能管理配置”。详细设置方法请参见快速创建流水 线。
● 灰度策略配置:
– 访问端口:选择访问端口,例如:9080。
须知
部署成功之后访问端口不可修改。
– 策略类型:支持“基于流量比例”和“基于请求内容”两种类型。
▪
基于流量比例:对灰度版本配置相应的流量权重,服务流量将会按照权 重比率以对应的概率分发当前版本。例如20%的流量走灰度版本,80%的流量走正式版本。
▪
基于请求内容:对灰度版本配置相应的请求内容规则,服务流量在满足 此规则的情况下,会走灰度版本。表3-2 基于请求内容设置
参数 参数说明
Cookie内容 ○ 完全匹配:当且仅当表达式完全符合此情况 时,流量才会走到这个版本。
○ 正则匹配:此处需要您使用正则表达式来匹 配相应的规则。
自定义Header 可以自定义请求头的key和value,value支持完 全匹配和正则匹配。
○ 完全匹配:当且仅当表达式完全符合此情况 时,流量才会走到这个版本。
○ 正则匹配:此处需要您使用正则表达式来匹 配相应的规则。
允许访问的操作系
统 选择允许访问的操作系统,包括iOS、
android、windows、MacOS、linux。
允许访问的浏览器 选择允许访问的浏览器,包括Chrome、360、
IE、Safari、Sogou、Edge。
规则描述 灰度策略的规则描述信息。
已生效规则描述 已生效规则的描述信息。
配置文件 展示策略YAML文件。
步骤7 单击拓扑图中上一阶段旁的 ,添加阶段,阶段类型为“人工审核”,阶段名称可 自定义。
配置人工审核信息。
图3-9 审核模式
● 全部通过:所有审核人员全部通过才可以。
● 单人通过:审核人员只要有一人通过就可以。
单击“添加审核”,添加审核人员、选择审核方式,单击“确定”。
图3-10 添加审核
步骤8 单击拓扑图中上一阶段旁的 ,添加阶段,阶段类型为“正式发布”,阶段名称可 自定义。
正式发布信息无需设置,直接单击“提交”。
须知
正式发布配置同步于正式发布配置,如需修改请至灰度发布处修改。
----结束
相关操作
1. 流水线运行时,“灰度发布”执行成功后,进入“人工审核”阶段,如图3-11。
图3-11 审核流水线
– 审核用户单击“通过”,则执行下一步“正式发布”。
– 审核用户单击“不通过”,则下一步“正式发布”将不会执行。
2. 流水线运行时,“灰度发布”阶段和“正式发布”阶段执行成功后,支持回退操 作,具体请参见回退流水线。
说明
灰度发布策略为“Istio”和“蓝绿发布”时,仅支持灰度发布阶段回退,正式发布阶段不 支持回退。
3.3.2 使用 helm 模板部署镜像
Helm是Kubernetes应用的一个包管理工具。Helm通过软件打包的形式,支持发布的 版本管理和控制,很大程度上简化了Kubernetes应用部署和管理的复杂性。
ContainerOps中可通过“模板部署”组件实现使用helm模板部署镜像。
本章将介绍使用helm模板部署镜像的方法。
操作步骤
步骤1 登录ContainerOps控制台。
步骤2 在左侧菜单栏选择“流水线”,单击右侧“自定义模板创建”。
步骤3 配置流水线基本信息。
● 流水线名称:自定义流水线名称。
● 流水线组:选择流水线组。
● 流水线描述:输入描述信息。
● 执行结果通知:有“异常时通知”和“成功时通知”两种方式可选。勾选后,单 击“添加用户”,可选择需要通知的用户,设置邮箱和手机号。
● 全局变量:已默认设置了SYS_TIMESTAMP(时间戳)和SYS_INCREMENT(自增 量)全局变量,如需添加新的全局变量,可单击“添加全局变量”。设置的全局
变量通过${变量名}的方式,在流水线的配置、脚本中使用。例如:在此处配置环 境变量名reponame,则在上传软件包时,可以使用${reponame}来获取值。
● 拓扑图:展示当前流水线的拓扑图,单击对应图标,可在下方进行阶段配置。
步骤4 单击拓扑图中的阶段图标,添加阶段,阶段类型为“模板部署”,阶段名称可自定 义。
步骤5 配置helm模板部署信息,单击“提交”,可以保存流水线。
● 输入资源:单击“添加输入资源”可添加输入资源。镜像格式为:组织(必选)/
镜像仓库(必选)/Tag(必选)。如需添加镜像,可单击左侧导航栏的“镜像仓 库”,前往容器镜像服务上传镜像,上传方法请参见客户端上传镜像。
● 部署工具:选择“helm模板”。
● 集群:选择镜像对应的集群。若无可用的集群,可单击“创建集群”跳转到CCE 控制台创建集群。
● 命名空间:选择集群所对应的命名空间。
● 模板实例名称:选择模板实例。若无可用的模板实例,可单击“新建”创建模板 实例。
● helm模板:选择helm模板,包括“官方模板”和“我的模板”。
– 官方模板:指官方提供的供用户部署的应用模板。当前CCE支持redis、
etcd、mysql-ndb、mongodb等官方模板。选择官方模板及版本,设置部署 工作负载规格等。
图3-12 使用官方模板
– 我的模板:指自定义模板。若无可用的自定义模板,可单击“创建模板”上 传模板。
图3-13 上传模板
上传成功后,选择刚上传的自定义模板及版本。在“高级设置”中可修改配 置信息,也可以导入配置文件。所导入的配置项内容需要与所选模板内 values.yaml保持一致。
图3-14 使用自定义模板
● 描述:填写对部署的描述。
● 高级选项:添加该阶段的错误处理机制、触发条件和消息通知,实现流水线间的 协同联动。
须知
流水线各阶段均可设置高级选项,添加对应阶段的错误处理机制、触发条件和消 息通知。
– 错误处理机制:可选“错误时退回初始节点”、“错误时停止,超时退出”
(您可指定超时时间)、“忽略错误继续执行”。
– 触发条件:支持“webhook”和“内部调用”两种方式。选择webhook,使 用webhook类型的URL触发该阶段,该url已默认生成。选择内部调用,使用 指定频道触发该阶段。
如需为触发条件添加传入参数,可单击“添加传入参数”,设置参数名称,
选择全局变量,该参数的值将传递给选择的全局变量。
触发模式可选择“全部触发视为触发”或“任意一个触发即触发”。
图3-15 触发条件
– 消息通知:支持“webhook”和“内部调用”两种方式。执行结果通知可勾 选“成功时通知”和“异常时通知”。
▪
选择webhook,使用通知URL进行消息通知,支持POST和GET类型,可 添加头域、请求体和参数。图3-16 webhook 消息通知
▪
选择内部调用,使用指定频道进行消息通知。如需为消息通知添加传出 参数,可单击“添加传出参数”,设置参数名称,选择全局变量,选择 的全局变量值将传递给该参数。图3-17 内部调用消息通知
----结束
3.3.3 使用 AOS 模板部署镜像
应用编排服务(Application Orchestration Service,简称AOS)为企业提供应用上云 的自动化能力,支持编排华为云上的主流云服务,实现在华为云上一键式的应用创建 及云服务资源开通,提供高效的一键式云上应用复制和迁移能力。使用AOS,您只需 要创建一个描述自己所需的云资源和应用的模板,在模板中自行定义云资源和应用的 依赖关系、引用关系等,AOS将根据模板来创建和配置这些云资源和应用。
ContainerOps中可通过“模板部署”组件实现使用AOS模板部署镜像。
本章将介绍使用AOS模板部署镜像的方法。
操作步骤
步骤1 登录ContainerOps控制台。
步骤2 在左侧菜单栏选择“流水线”,单击右侧“自定义模板创建”。
步骤3 配置流水线基本信息。
● 流水线名称:自定义流水线名称。
● 流水线组:选择流水线组。
● 流水线描述:输入描述信息。
● 执行结果通知:有“异常时通知”和“成功时通知”两种方式可选。勾选后,单 击“添加用户”,可选择需要通知的用户,设置邮箱和手机号。
● 全局变量:已默认设置了SYS_TIMESTAMP(时间戳)和SYS_INCREMENT(自增 量)全局变量,如需添加新的全局变量,可单击“添加全局变量”。设置的全局 变量通过${变量名}的方式,在流水线的配置、脚本中使用。例如:在此处配置环 境变量名reponame,则在上传软件包时,可以使用${reponame}来获取值。
● 拓扑图:展示当前流水线的拓扑图,单击对应图标,可在下方进行阶段配置。
步骤4 单击拓扑图中的阶段图标,添加阶段,阶段类型为“模板部署”,阶段名称可自定 义。
步骤5 配置AOS模板部署信息,单击“提交”,可以保存流水线。
● 输入资源:单击“添加输入资源”可添加输入资源。镜像格式为:组织(必选)/
镜像仓库(必选)/Tag(必选)。如需添加镜像,可单击左侧导航栏的“镜像仓 库”,前往容器镜像服务上传镜像,上传方法请参见客户端上传镜像。
● 部署工具:选择“AOS模板”。
● 堆栈:选择AOS中已创建成功的堆栈。若无可用的堆栈,可单击“新建”,输入 堆栈名创建新的堆栈。
● AOS模板:选择堆栈使用的模板及版本。若堆栈在AOS中已创建成功,AOS模板 将默认为堆栈使用的模板。若无可用的模板,可单击“创建模板”跳转到AOS控 制台新建模板。
● 配置:显示模板中各参数的配置,包括参数名称、类型、参数值和参数描述。
– 超时时间:您可以自己设置任务最大时间,超过时间后任务会自动停止并判 定为错误。
● 高级选项:添加该阶段的错误处理机制、触发条件和消息通知,实现流水线间的 协同联动。
须知
流水线各阶段均可设置高级选项,添加对应阶段的错误处理机制、触发条件和消 息通知。
– 错误处理机制:可选“错误时退回初始节点”、“错误时停止,超时退出”
(您可指定超时时间)、“忽略错误继续执行”。
– 触发条件:支持“webhook”和“内部调用”两种方式。选择webhook,使 用webhook类型的URL触发该阶段,该url已默认生成。选择内部调用,使用 指定频道触发该阶段。
如需为触发条件添加传入参数,可单击“添加传入参数”,设置参数名称,
选择全局变量,该参数的值将传递给选择的全局变量。
触发模式可选择“全部触发视为触发”或“任意一个触发即触发”。
图3-18 触发条件
– 消息通知:支持“webhook”和“内部调用”两种方式。执行结果通知可勾 选“成功时通知”和“异常时通知”。
▪
选择webhook,使用通知URL进行消息通知,支持POST和GET类型,可 添加头域、请求体和参数。图3-19 webhook 消息通知
▪
选择内部调用,使用指定频道进行消息通知。如需为消息通知添加传出 参数,可单击“添加传出参数”,设置参数名称,选择全局变量,选择 的全局变量值将传递给该参数。图3-20 内部调用消息通知
----结束
3.3.4 使用多任务部署组件构建流水线
本章将介绍使用多任务部署组件构建流水线的方法。
使用须知
多任务部署不支持灰度发布。
操作步骤
步骤1 登录ContainerOps控制台。
步骤2 在左侧菜单栏选择“流水线”,单击右侧“自定义模板创建”。
步骤3 配置流水线基本信息。
● 流水线名称:自定义流水线名称。
● 流水线组:选择流水线组。
● 流水线描述:输入描述信息。
● 执行结果通知:有“异常时通知”和“成功时通知”两种方式可选。勾选后,单 击“添加用户”,可选择需要通知的用户,设置邮箱和手机号。
● 全局变量:已默认设置了SYS_TIMESTAMP(时间戳)和SYS_INCREMENT(自增 量)全局变量,如需添加新的全局变量,可单击“添加全局变量”。设置的全局 变量通过${变量名}的方式,在流水线的配置、脚本中使用。例如:在此处配置环 境变量名reponame,则在上传软件包时,可以使用${reponame}来获取值。
● 拓扑图:展示当前流水线的拓扑图,单击对应图标,可在下方进行阶段配置。
步骤4 单击拓扑图中的阶段图标,添加阶段,阶段类型为“多任务部署”,阶段名称可自定 义。
当前支持“串行”和“并行”两种多任务执行方式。
● 串行:多个任务按顺序部署,一个任务部署完成后再执行下一个任务。
● 并行:多个任务同时部署。
步骤5 单击单组件部署上方的 ,可添加其他单组件部署任务,如图3-21。
图3-21 添加单组件部署任务
分别单击拓扑图中的“单组件部署”阶段,配置部署信息,方法请参见配置“部署”
信息。
----结束
3.3.5 使用性能测试组件构建流水线
云性能测试服务(Cloud Performance Test Service,简称CPTS)是一项为基于HTTP/
HTTPS/TCP/UDP/WEBSOCKET/RTMP/HLS等协议构建的云应用提供性能测试的服 务,具备强大的分布式压测能力。ContainerOps中可通过“性能测试”组件为云应用 提供性能测试。
本章将介绍使用性能测试组件构建流水线的方法。
操作步骤
步骤1 登录ContainerOps控制台。
步骤2 在左侧菜单栏选择“流水线”,单击右侧“自定义模板创建”。
步骤3 配置流水线基本信息。
● 流水线名称:自定义流水线名称。
● 流水线组:选择流水线组。
● 流水线描述:输入描述信息。
● 执行结果通知:有“异常时通知”和“成功时通知”两种方式可选。勾选后,单 击“添加用户”,可选择需要通知的用户,设置邮箱和手机号。
● 全局变量:已默认设置了SYS_TIMESTAMP(时间戳)和SYS_INCREMENT(自增 量)全局变量,如需添加新的全局变量,可单击“添加全局变量”。设置的全局 变量通过${变量名}的方式,在流水线的配置、脚本中使用。例如:在此处配置环 境变量名reponame,则在上传软件包时,可以使用${reponame}来获取值。
● 拓扑图:展示当前流水线的拓扑图,单击对应图标,可在下方进行阶段配置。
步骤4 单击拓扑图中的阶段图标,添加阶段,阶段类型为“性能测试”,阶段名称可自定 义。
步骤5 配置性能测试信息,单击“提交”,可以保存流水线。
● 测试工程:选择测试工程。如需定义更丰富的测试场景,请到云性能测试服务进 行操作,完成后刷新测试工程和测试任务再选择。
● 测试任务:选择测试任务。如需定义更丰富的测试场景,请到云性能测试服务进 行操作,完成后刷新测试工程和测试任务再选择。
● 测试资源组:选择测试资源组。
– 共享资源组:共有资源组,无需创建即可使用;共享资源组(外网)支持外 网地址压测;共享资源组(内网)支持华为云内网应用地址压测。
– 云容器CCE资源组:本机创建的云容器CCE资源组。选择虚拟私有云和所在子 网。
– 云容器实例CCI资源组:基于CCI的云容器实例CCI资源组。
● 预期成功率:当成功率低于预期成功率时,流水线阶段认定为失败。
● 高级选项:添加该阶段的错误处理机制、触发条件和消息通知,实现流水线间的 协同联动。
须知
流水线各阶段均可设置高级选项,添加对应阶段的错误处理机制、触发条件和消 息通知。
– 错误处理机制:可选“错误时退回初始节点”、“错误时停止,超时退出”
(您可指定超时时间)、“忽略错误继续执行”。
– 触发条件:支持“webhook”和“内部调用”两种方式。选择webhook,使 用webhook类型的URL触发该阶段,该url已默认生成。选择内部调用,使用 指定频道触发该阶段。
如需为触发条件添加传入参数,可单击“添加传入参数”,设置参数名称,
选择全局变量,该参数的值将传递给选择的全局变量。
触发模式可选择“全部触发视为触发”或“任意一个触发即触发”。
图3-22 触发条件
– 消息通知:支持“webhook”和“内部调用”两种方式。执行结果通知可勾 选“成功时通知”和“异常时通知”。
▪
选择webhook,使用通知URL进行消息通知,支持POST和GET类型,可 添加头域、请求体和参数。图3-23 webhook 消息通知
▪
选择内部调用,使用指定频道进行消息通知。如需为消息通知添加传出 参数,可单击“添加传出参数”,设置参数名称,选择全局变量,选择 的全局变量值将传递给该参数。图3-24 内部调用消息通知
----结束
3.3.6 使用单元测试组件构建流水线
本章将介绍使用单元测试组件构建流水线的方法。
使用须知
● 测试结果的统计要求测试脚本必须符合编码规范。其中,java测试用例需要用 maven执行,go测试用例需要在go test后加-v参数。
● 自定义测试环境暂不支持测试结果统计。
前提条件
● 构建流水线需要从源代码库中拉取测试用例,请确保测试用例已上传到源代码库 中。
● 测试报告会归档到软件包中,请提前创建组织和软件包。
操作步骤
步骤1 登录ContainerOps控制台。
步骤2 在左侧菜单栏选择“流水线”,单击右侧“自定义模板创建”。
步骤3 配置流水线基本信息。
● 流水线名称:自定义流水线名称。
● 流水线组:选择流水线组。
● 流水线描述:输入描述信息。
● 执行结果通知:有“异常时通知”和“成功时通知”两种方式可选。勾选后,单 击“添加用户”,可选择需要通知的用户,设置邮箱和手机号。
● 全局变量:已默认设置了SYS_TIMESTAMP(时间戳)和SYS_INCREMENT(自增 量)全局变量,如需添加新的全局变量,可单击“添加全局变量”。设置的全局 变量通过${变量名}的方式,在流水线的配置、脚本中使用。例如:在此处配置环 境变量名reponame,则在上传软件包时,可以使用${reponame}来获取值。
● 拓扑图:展示当前流水线的拓扑图,单击对应图标,可在下方进行阶段配置。
步骤4 单击拓扑图中的阶段图标,添加阶段,阶段类型为“源代码仓库”,阶段名称可自定 义。
配置源代码仓库信息。
● 代码来源:选择代码来源,您需要先绑定代码源账号,具体操作请参见绑定代码 源账号。
说明
当前版本代码来源支持DevCloud、Gitee、Github、GitLab。
绑定账号后,需要配置以下信息:
– 命名空间:配置为代码仓库所属的命名空间。
– 仓库名称:配置为代码仓库的名称。
– 分支:选择“分支”,可配置代码所属的分支。
– 标签:选择“标签”,可配置代码对应的标签。
● 自动构建:当满足勾选的条件(添加新tag时触发流水线、提交代码到分支时触发 流水线)时,即触发构建。
– Webhook挂载:选择“自动挂载”或“手动挂载”。若选择自动挂载,则会 在您选择自动构建以后自动将webhook挂载到对应的源码仓库,若选择手动 挂载,则需要您手动复制信息并在对应的源码仓库下创建一个webhook。当 您绑定的账号没有创建webhook权限时,建议您选择手动挂载方式,再由高 权限的用户手动创建webhook。
● 高级选项:添加该阶段的错误处理机制、触发条件和消息通知,实现流水线间的 协同联动。
须知
流水线各阶段均可设置高级选项,添加对应阶段的错误处理机制、触发条件和消 息通知。
– 错误处理机制:可选“错误时退回初始节点”、“错误时停止,超时退出”
(您可指定超时时间)、“忽略错误继续执行”。
– 触发条件:支持“webhook”和“内部调用”两种方式。选择webhook,使 用webhook类型的URL触发该阶段,该url已默认生成。选择内部调用,使用 指定频道触发该阶段。
如需为触发条件添加传入参数,可单击“添加传入参数”,设置参数名称,
选择全局变量,该参数的值将传递给选择的全局变量。
触发模式可选择“全部触发视为触发”或“任意一个触发即触发”。
图3-25 触发条件
– 消息通知:支持“webhook”和“内部调用”两种方式。执行结果通知可勾 选“成功时通知”和“异常时通知”。
▪
选择webhook,使用通知URL进行消息通知,支持POST和GET类型,可 添加头域、请求体和参数。图3-26 webhook 消息通知
▪
选择内部调用,使用指定频道进行消息通知。如需为消息通知添加传出 参数,可单击“添加传出参数”,设置参数名称,选择全局变量,选择 的全局变量值将传递给该参数。图3-27 内部调用消息通知
步骤5 单击拓扑图中的阶段图标,添加阶段,阶段类型为“单元测试”,阶段名称可自定 义。
步骤6 配置单元测试信息,单击“提交”,可以保存流水线。
● 输入资源:单击“添加输入资源”可添加代码来源。
● 测试环境:支持Java、Go和自定义。
● 测试脚本:根据所选择的测试环境自行编写脚本。选择Java或Go时,可使用默认 脚本执行。
说明
您可以在测试脚本中指定静态扫描命令,ContainerOps集成了golint、goimports、
gofmt、findbugs等工具供您使用。
● 期望用例通过率:设置您期望的用例通过率。例如,设置为80%,用例执行通过 率大于等于80%时,流水线构建成功,否则流水线构建失败。
说明
测试环境选择“Java”时,才显示该配置项。
● 测试报告文件:输入测试报告文件归档名称,如cover.out。
● 测试报告归档路径:设置测试报告归档路径。
----结束
后续操作
单元测试流水线执行成功后,您可以查看测试用例执行情况、流水线执行日志等。
步骤1 登录ContainerOps控制台。
步骤2 选择左侧导航栏的“流水线”,单击单元测试的流水线名称,进入流水线详情页面。
步骤3 在流水线详情页面,可查看流水线执行情况。
● 查看测试用例执行情况
在“测试日志”页签下,查看测试用例执行情况。若需下载报告,可单击“下 载”。
● 查看流水线执行日志
单击“查看日志”,可查看流水线执行日志。
----结束
3.4 流水线基本操作
流水线创建后,您可以对其进行查看、启动、删除等操作。
查看流水线
创建流水线后,可以通过查看流水线确认流水线的状态和信息。
步骤1 登录ContainerOps控制台。
步骤2 选择左侧导航栏的“流水线”,在流水线页面您可执行启动流水线、停止流水线、删 除流水线等操作。
● 启动流水线:单击“启动流水线”,可启动流水线,具体操作请参见启动/停止流 水线。
● 停止流水线:执行中的流水线,单击“停止流水线”,可停止流水线,具体操作 请参见启动/停止流水线。
● 删除流水线:单击“删除”,可删除流水线,具体操作请参见删除流水线。
步骤3 单击流水线名称,进入流水线详情页面。在流水线详情页面还可查看流水线的拓扑 图、各阶段日志、通知信息和触发信息等,单击“编辑”可修改流水线配置信息。
说明
当前支持查看最近的20条执行日志。
图3-28 流水线详情页面
当流水线中有正式发布阶段,在流水线详情页面的“部署日志”页签下可查看部署时 使用的YAML。
图3-29 查看 YAML
----结束
启动/停止流水线
流水线创建成功后,您可以启动流水线。流水线执行过程中,您可以停止流水线。
步骤1 登录ContainerOps控制台。
步骤2 选择左侧导航栏的“流水线”。
步骤3 在需要启动的流水线中单击“启动流水线”。如流水线设置了全局变量,还需在弹出 的对话框中确认本次执行流水线的全局变量参数是否正确后,单击“启动”。
说明
因业务调整,暂时停止套餐包购买功能,如需继续使用,请通过工单系统,申请开通流水线套餐 包购买功能,为您带来不便,敬请谅解。
图3-30 确认全局变量参数
当流水线状态为“执行中”时,流水线已启动成功,您可以单击流水线名称查看执行 过程。
步骤4 流水线执行过程中,如需停止流水线,单击“停止流水线”,则流水线停止执行,进 入取消状态。
----结束
删除流水线
当您不需要使用流水线时,您可以删除流水线。
步骤1 登录ContainerOps控制台。
步骤2 选择左侧导航栏的“流水线”。
步骤3 在需要删除的流水线中单击“删除”。在弹出的对话框中输入DELETE,然后单击“确 认”。
图3-31 删除流水线
----结束
回退流水线
ContainerOps当前仅灰度发布阶段和正式发布阶段支持回退,包括两种回退方式:回 退到上一次部署的状态、回退到指定版本。
1. 回退到上一次部署的状态
灰度发布阶段执行成功后,在“实例列表”页签中单击“回退”,在弹出的对话 框中单击“确认”后,负载将回退到上一次部署的状态,并且无法取消回退。
图3-32 灰度发布阶段回退
说明
灰度阶段的回滚按钮只有在还没运行到正式发布阶段时,才会显示。
正式发布阶段执行成功后,在“实例列表”页签中单击“回退”,在弹出的对话 框中单击“确认”后,负载将回退到上一次部署的状态,并且无法取消回退。
图3-33 正式发布阶段回退
说明
灰度发布策略为“Istio”和“蓝绿发布”时,仅支持灰度发布阶段回退,正式发布阶段不 支持回退。
2. 回退到指定版本
当前仅正式发布阶段支持回退到指定版本,并且流水线中不存在灰度发布阶段时 才支持。
正式发布阶段执行成功后,在“部署日志”页签中指定版本所在行单击“回退至 该版本”,负载将回退到该版本部署的状态,并且无法取消回退。
图3-34 回退到指定版本
4 流水线组管理
ContainerOps为您提供流水线组管理功能,方便您管理流水线。您可以建立流水线 组,将流水线进行分类管理。ContainerOps还支持为租户下不同用户分配相应的流水 线访问权限(读取、编辑、管理),具体请参见授权管理。
创建流水线组
为了更方便的管理流水线,您可以建立流水线分组,将流水线进行分类管理。
步骤1 登录ContainerOps控制台。
步骤2 在左侧菜单栏选择“流水线组”,单击右侧“创建流水线组”。
步骤3 根据页面提示输入“流水线组名称”,租户内名称需要唯一。
图4-1 创建流水线组
步骤4 单击“确定”,完成流水线组的创建。
----结束
删除流水线组
当您不需要使用流水线组时,您可以删除流水线组。
步骤1 登录ContainerOps控制台。
步骤2 选择左侧导航栏的“流水线组”,在待删除的流水线组后,单击“详情”。
步骤3 在流水线组详情页面,单击“删除”。在弹出的对话框中输入DELETE,然后单击“确 认”。
图4-2 删除流水线组
----结束
查看流水线组
创建流水线组后,可以查看当前流水线组中的流水线和用户。
步骤1 登录ContainerOps控制台。
步骤2 选择左侧导航栏的“流水线组”,在待查看的流水线组后,单击“详情”。
步骤3 在“流水线”页签下,可以查看当前流水线组中的所有流水线。
在“用户”页签下,可以查看当前流水线组已授权的用户名称和权限、修改和删除已 有用户的授权,如图4-3,也可以给其他用户添加授权,添加方法请参见为用户添加授 权。
图4-3 查看、修改和删除授权
----结束
5 模板管理
您可以使用“模板市场”和“我的模板”中的模板创建流水线,模板市场是华为 ContainerOps团队提供的流水线示例模板,我的模板存放的是导出的流水线模板。
模板市场
ContainerOps的模板市场中提供了多个流水线模板,如表5-1所示。使用模板市场中的 示例模板创建流水线的方法请参见使用示例模板创建流水线。
表5-1 模板市场流水线模板
模板类型 模板功能 示例模板
镜像构建 支持对接Github等源码托管网站 构建镜像,代码更新时自动触发 镜像构建。
● 将源码直接构建成镜像(不部 署)
● 基于源码进行编译后构建镜像
● 基于源码和二进制混合构建镜 像(不部署)
● 基于二进制文件构建镜像(不 部署)
镜像部署 支持将镜像部署到云容器集群。 ● 基于源码编译并构建镜像进行 灰度发布
● 基于源码进行编译后构建镜像 并部署
● 基于源码构建镜像部署后进行 性能压测
● 基于源码直接构建镜像(无代 码编译)
● 基于二进制文件构建镜像并审 核部署
● 基于二进制文件构建镜像并部 署
模板类型 模板功能 示例模板 灰度发布 支持Istio、金丝雀发布和蓝绿发
布模式。 ● 基于源码编译并构建镜像进行
灰度发布 多环境部
署 支持“研发-测试-预发布-生产”
等多环境协同部署,实现研发-交 付全流程自动化,确保部署版本 的一致性,提升持续交付效率。
-
我的模板
流水线创建成功后,可以将流水线模板导出到“我的模板”中,并使用“我的模板”
中的模板创建流水线。
步骤1 登录ContainerOps控制台。
步骤2 选择左侧导航栏的“流水线”,单击流水线名称,进入流水线详情页面。
步骤3 单击右上角“导出模板”,可以将该流水线保存并导出到“我的模板”。
图5-1 导出模板
步骤4 在左侧菜单栏选择“我的模板”查看导出的模板。单击“创建流水线”可使用该模板 创建流水线。
图5-2 查看导出的模板
----结束
6 授权管理
ContainerOps中用户权限分为三类:
● 读取:只能查看和启动流水线。
● 编辑:查看、启动、创建流水线、管理自定义模板。
● 管理:查看、启动、创建、删除、修改流水线、管理自定义模板。
图6-1 用户权限
为用户添加授权
您可以在流水线组中为用户添加授权,使用户对该流水线组内所有流水线享有读取/编 辑/管理的权限。只有具备“管理”权限的用户才能添加授权。
步骤1 登录ContainerOps控制台。
步骤2 在左侧菜单栏选择“流水线组”,单击右侧流水线组名称后的“详情”。
步骤3 在“用户”页签下单击“添加授权”,在弹出的窗口中为用户选择权限,然后单击
“确定”。
步骤4 您还可以修改该用户权限及删除该用户权限。
● 修改授权:在“用户”页签下用户所在行单击“修改”,在“权限”所在列选择 新的权限,然后单击“保存”。
● 删除权限:在“用户”页签下用户所在行单击“删除”。在弹出的对话框中根据 提示输入“DELETE”,单击“确定”。
图6-2 删除授权
----结束
7 代码源配置
7.1 绑定代码源账号
ContainerOps支持对接Github等源码托管网站构建镜像,您可以将代码源的账户信息 托管给ContainerOps,以实现自动拉取源码,自动构建镜像功能。
构建镜像前,您需要绑定源码托管仓库的账号,授权ContainerOps下载源代码。当前 ContainerOps支持DevCloud、Gitee、Github、GitLab。其中DevCloud已默认绑定当 前华为云账号。
绑定 GitHub 帐号
步骤1 登录ContainerOps控制台,选择左侧导航栏的“代码源配置”。
步骤2 在GitHub所在行,单击“绑定”。
步骤3 输入用户名和密码,登录GitHub。
图7-1 绑定 GitHub 帐号
步骤4 在弹出的对话框中单击“确定”,完成绑定。
说明
如果不再需要使用此账号,在GitHub所在行单击“解绑”,在弹出的对话框中单击“确定”,
账号即解绑成功。
----结束
绑定 GitLab 账号
步骤1 获取GitLab Access Token。
1. 登录GitLab:https://gitlab.com/users/sign_in。
2. 单击右上角图标,选择 “Settings”。
图7-2 选择 Settings
3. 在左侧菜单栏选择“Access Tokens”,填写名称,勾选“read_registry”选项,
单击“Create personal access token”,创建token。
图7-3 创建 token
4. 复制并保存token。
步骤2 (可选)如果您想绑定私有GitLab,您需要把构建节点的相关IP段放入私有GitLab服务 的白名单内,具体方法请参见构建节点与私有GitLab之间的访问。
步骤3 登录ContainerOps控制台,选择左侧导航栏的“代码源配置”。
步骤4 在GitLab所在行,单击“绑定”,在绑定对话框中输入代码源地址和私有Token后单击
“确定”。
● 代码源地址:默认设置为https://gitlab.com,如果需要绑定私有GitLab,则输入 私有GitLab的IP地址。
● 私有Token:输入步骤1获取的token。
图7-4 绑定 GitLab 帐号
步骤5 在弹出的对话框中单击“确定”,完成绑定。
说明
如果不再需要使用此账号,在GitLab所在行单击“解绑”,在弹出的对话框中单击“确定”,账 号即解绑成功。
----结束
绑定 Gitee 账号
步骤1 登录ContainerOps控制台,选择左侧导航栏的“代码源配置”。
步骤2 在Gitee所在行,单击“绑定”。
步骤3 输入用户名和密码,登录Gitee。
步骤4 单击“授权”。
步骤5 在弹出的对话框中单击“确定”,完成绑定。
说明
如果不再需要使用此账号,在Gitee所在行单击“解绑”,在弹出的对话框中单击“确定”,账 号即解绑成功。
----结束
7.2 构建节点与私有 GitLab 之间的访问
如果是在您的内部网络搭建的私有GitLab,希望使用ContainerOps的源码构建功能,
则需要把构建节点的相关IP段放入私有GitLab服务的白名单内,允许这些节点从私有 GitLab上下载源码(即构建节点与私有GitLab之间能访问)。
当前构建节点的IP为: