云服务器内容精选

  • 操作步骤 登录容器镜像服务控制台。 在左侧菜单栏选择“我的镜像”,单击右侧要编辑镜像的名称。 在镜像详情页面,单击右上角“编辑”,在弹出的窗口中根据需要编辑类型(“公开”或“私有”)、分类及描述,然后单击“确定”。 图1 编辑镜像属性 表1 编辑镜像 参数 说明 所属组织 镜像所属组织。 镜像名称 镜像名称。 类型 镜像类型,可选择: 公开 私有 说明: 公开镜像所有用户都可以下载使用。 如果您的机器与镜像仓库在同一区域,访问仓库是通过内网访问。 如果您的机器与镜像仓库在不同区域,通过公网才能访问仓库,下载跨区域仓库的镜像需要机器可以访问公网。 类别 镜像分类,可选择: 应用服务器 Linux Arm 框架与应用 数据库 语言 其他 描述 输入镜像仓库描述,0-30000个字符。
  • 示例流程 图1 给用户授予SWR权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予容器镜像服务的管理员权限“SWR Administrator”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限(如果能顺利完成如下操作,说明权限设置成功): 在“服务列表”中选择容器镜像服务,进入SWR主界面。 在左侧导航栏选择“组织管理”,单击右上角“创建组织”,输入组织名称,能够成功创建组织。 在左侧导航栏选择“我的镜像”,单击右上角“页面上传”,选择上一步创建的组织,以及一个本地的镜像文件,能够成功上传镜像。
  • 创建组织 容器镜像服务为您提供组织管理功能,方便您根据自身组织架构来构建镜像的资源管理。上传镜像前,请先创建组织。 登录容器镜像服务控制台。 单击控制台左上角的,选择区域和项目。 在左侧导航栏单击“组织管理”,进入组织管理页面。 单击页面右上角的“创建组织”按钮,在弹框中填写“组织名称”,然后单击“确定”。 组织名称全局唯一,即当前区域下,组织名称唯一。创建组织时如果提示组织已存在,可能该组织名称已被其他用户使用,请重新设置一个组织名称。 用户在IAM中被授予SWR Admin或Tenant Administrator策略才有创建组织的权限。
  • 操作步骤 登录容器镜像服务控制台。 在左侧导航栏选择“我的镜像”,单击右侧镜像名称,进入镜像详情页。 在执行镜像安全扫描任务前,请确保“我的镜像”中已经有1个以上的私有镜像。如果您当前账户下没有私有镜像,请参考客户端上传镜像,上传一个镜像到您的镜像仓库中。 在“镜像版本”页签,选择待操作的镜像版本并单击右侧的“镜像扫描”。 图1 我的镜像 单击“重新扫描”,触发镜像的安全扫描,稍等片刻将展示镜像的漏洞扫描结果。 图2 镜像安全扫描结果 漏洞名称:显示该镜像上扫描出的漏洞名称。 修复紧急程度:提示您是否需要立刻处理该漏洞。 软件信息:显示该镜像上受此漏洞影响的软件及版本信息。 解决方案:针对该漏洞给出的解决方案。单击“解决方案”列的链接,查看修复意见。
  • 示例1:触发条件为“全部触发” 假设有一个欢迎页面为“Hello, SWR!”的Nginx镜像(版本号为v1),使用该镜像创建了名称为“nginx”的无状态负载,该负载提供对外访问。 为Nginx镜像添加触发器。 触发器名称填写“All_tags”,触发条件选择“全部触发”,选择使用了Nginx镜像的无状态负载及容器。 Nginx镜像新增一个v2版本,该版本的欢迎页面为“Hello, SoftWare Repository for Container!”。 图2 镜像版本v2 确认是否触发成功。 在“触发器”页签,单击触发器对应的行的“触发历史”,查看触发结果为“成功”。 图3 触发结果 工作负载的访问页面已变更为“Hello, SoftWare Repository for Container!”。
  • 示例2:触发条件为“正则触发” 假设有一个欢迎页面为“Hello, SWR!”的Nginx镜像(版本号为v0),使用该镜像创建了名称为“nginx”的无状态负载,该负载提供对外访问。 为Nginx镜像添加触发器。 触发器名称填写“Tags_regular_expression”,触发条件选择“正则触发”,输入正则表达式:^v2.*(匹配以v2开头的版本号),选择使用了Nginx镜像的无状态负载及容器。 Nginx镜像新增一个v1版本,该版本的欢迎页面为“Hello, SWR! (v1)”。 Nginx镜像新增一个v2版本,该版本的欢迎页面为“Hello, SWR! (v2)”。 确认是否触发成功。 在“触发器”页签,单击图标,查看触发结果。从图4中可以看出,只有v2版本被触发了,符合设置的正则表达式规则。 图4 触发结果示例 工作负载的访问页面已变更为“Hello, SWR! (v2)”。
  • 操作步骤 登录容器镜像服务控制台。 在左侧导航栏选择“我的镜像”,单击右侧镜像名称,进入镜像详情页。 选择“触发器”页签,单击“添加触发器”,根据表1填写相关参数,然后单击“确定”。 图1 添加触发器 表1 触发器 参数 说明 触发器名称 自定义触发器的名称。 字母开头,由字母、数字、下划线_、中划线-组成,下划线、中划线不能连续且不能作为结尾,1-64个字符。 触发条件 支持如下三种触发条件,当镜像有新版本时,触发部署应用。 全部触发:有新的镜像版本生成或镜像版本号不变,镜像内容发生变化重新推送时,触发部署。 指定版本号触发:有指定镜像版本生成或更新时,触发部署。 正则触发:有符合正则表达式的镜像版本生成或更新时,触发部署。正则表达式规则如下: *:匹配不包含路径分隔符“/”的任何字段。 **:匹配包含路径分隔符“/”的任何字段。 ?:匹配任何单个非“/”的字符。 {选项1, 选项2, ...}:同时匹配多个选项。 触发动作 当前仅支持更新容器的镜像,需指定更新的应用,以及该应用下的容器。 触发器状态 选择“启用”。 触发器类型 选择“云容器引擎CCE”或“云容器实例CCI”。 说明: 当前仅“华北-北京四”区域支持“云容器实例CCI”的触发器类型。 选择应用 选择要更新镜像的容器。
  • 操作场景 如果您需要对容器镜像服务进行权限管理,您可以使用统一身份认证服务IAM,设置权限的方法请参见创建用户并授权使用SWR。当您具有SWR Admin或者Tenant Administrator系统权限时,您就拥有了SWR的管理员权限,可以在SWR中为其他IAM用户进行授权。 拥有SWR管理员权限的用户,默认拥有所有组织下的镜像管理权限,即使该用户不在组织的授权用户列表中。 如果您没有SWR的管理员权限,就需要已拥有SWR管理员权限的用户在SWR中进行授权管理,为您添加对某个镜像的权限或对某个组织中所有镜像的权限。 场景示例: 示例一:我是拥有ServiceStage Developer权限(SWR只读权限)的IAM用户,想要下载SWR管理员所创建的“group”组织下的“nginx”镜像。 策略:SWR管理员在“nginx”镜像详情中为您授予“读取”权限,授权完成后,您将享有下载该镜像的权限。 示例二:我是SWR管理员,需要给公司外部员工授权一个组织的镜像上传权限,但是不允许他登录控制台,只能通过Docker客户端push镜像。 策略:您在组织详情“用户”页签下为该员工授予“编辑”权限,并且在IAM中设置访问方式为“编程访问”。 图1 修改访问方式示例
  • 授权方法 容器镜像服务中给IAM用户添加权限有如下两种方法: 在镜像详情中添加授权,授权完成后,IAM用户享有读取/编辑/管理该镜像的权限。 在组织中添加授权,使IAM用户对组织内所有镜像享有读取/编辑/管理的权限。 图2 用户权限 容器镜像服务中为用户添加的权限有如下三种类型: 读取:只能下载镜像,不能上传。 编辑:下载镜像、上传镜像、编辑镜像属性以及添加触发器。 管理:下载镜像、上传镜像、删除镜像或版本、编辑镜像属性、添加授权、添加触发器以及共享镜像。 页面上传镜像功能要求具备组织的编辑或管理权限,在镜像详情中添加的编辑或管理权限不支持页面上传镜像。
  • 示例2:规则类型为“版本数目”,且设置“过滤正则” 假设“nginx”镜像包含四个版本:v1、v2、v1.0.0、v2.0.0,如下图: 图6 nginx镜像版本 添加老化规则。 规则类型为“版本数目”,保留数目为“1”,过滤正则为:^v2.*(匹配以v2开头的版本号)。 图7 创建老化规则-版本数目 确认规则是否生效。 因为v2和v2.0.0版本匹配设置的正则表达式,在应用老化规则前会被过滤掉,v1和v1.0.0版本只会保留一个,v1更老旧,因此会被清除掉。 查看“老化日志”和“镜像版本”,v1版本被清除,说明老化规则已生效。 图8 镜像版本示例 这里给出几个过滤正则表达式以供参考: 匹配版本号为数字的版本:^[0-9]*$ 匹配版本号长度为2-5的所有版本:^.{2,5}$ 匹配由26个小写英文字母组成的版本号:^[a-z]+$ 匹配版本号为英文和数字的版本:^[A-Za-z0-9]+$ 在写正则表达式"或"(“|”)的时候请加上括号,如果不加括号会导致老化删除掉该镜像下所有版本。 例如:镜像版本只需要保留包含a或者包含s的版本,此时正则表达式可写成:(.*a.*|.*s.*)。
  • 示例1:规则类型为“存活时间” 假设“nginx”镜像包含两个版本:v1和v2,更新时间如下图: 图3 镜像版本 添加老化规则。 规则类型为“存活时间”,保留天数为“3”。 图4 创建老化规则示例 确认规则是否生效。 查看“老化日志”,v1版本的镜像留存时间超过3天(当前时间为2021/09/01 16:00:00),因此被自动清除。 查看“镜像版本”,v1版本已被清除,只剩v2版本。 图5 镜像版本V2 以上现象说明老化规则已生效。
  • 操作步骤 登录容器镜像服务控制台。 在左侧导航栏选择“我的镜像”,单击右侧镜像名称,进入镜像详情页。 选择“镜像老化”页签,单击“添加规则”,根据表1填写相关参数,然后单击“确定”。 图1 创建老化规则 表1 添加镜像老化规则 参数 说明 规则类型 分为存活时间和版本数目。 存活时间:设置该类型的老化规则后,留存时间超过指定时间的老旧镜像将被删除。 版本数目:设置该类型的老化规则后,留存镜像超过指定值时,老旧镜像将被删除。 保留天数 镜像留存的最大天数,可设置为1~365的整数。规则类型设置为“存活时间”时,需要配置此参数。 保留数目 镜像留存的最大数目,可设置为1~1000的整数。规则类型设置为“版本数目”时,需要配置此参数。 过滤标签 输入将被过滤的镜像版本,在应用老化规则前指定版本的镜像将被过滤掉。 过滤正则 输入将被过滤的版本正则式,在应用老化规则前所有版本号满足正则表达式的镜像将被过滤掉。 镜像老化规则添加成功后,系统会立即进行一次查询,清理掉符合老化规则的镜像,且在“老化日志”中显示清理结果。 图2 查看规则列表和老化日志
  • 操作步骤 登录容器镜像服务控制台。 在左侧导航栏选择“我的镜像”,单击右侧镜像名称。 在镜像详情页面单击右上角“镜像自动同步”。 单击图标,选择目标区域和目标组织,然后单击“确定”完成添加。 图1 添加镜像自动同步 目标区域:选择同步的目标区域,例如“华北-北京一”。 目标组织:选择同步的目标组织。 覆盖: 勾选则表示覆盖,同步相同名称相同版本的镜像时,同步后会替换已有的镜像版本。 不勾选则表示不覆盖,同步相同名称相同版本的镜像时,会取消同步并提示已存在相同版本镜像。 在镜像详情页面的“镜像同步记录”页签下,可查看镜像同步启动时间、镜像版本、状态、同步类型、同步耗时等。
  • 迁移方案 表1 迁移方案及适用场景对比 方案类型 适用场景 注意事项 使用docker命令迁移镜像至SWR 待迁移的镜像数量较少 依赖磁盘存储,需要及时进行本地镜像的清理,而且落盘形成多余的时间开销,难以胜任生产场景中大量镜像的迁移。 依赖docker程序,docker daemon对pull/push的并发数进行了严格的限制,没法进行高并发同步。 一些功能只能经过HTTP api进行操作,单纯使用docker cli 没法做到,使脚本变得复杂。 使用image-syncer迁移镜像至SWR 待迁移的镜像数量庞大 支持多对多镜像仓库同步。 支持基于Docker Registry V2搭建的docker镜像仓库服务 (如Docker Hub、Quay、Harbor等)。 同步只通过内存和网络,不依赖磁盘存储,同步速度快。 增量同步, 经过对同步过的镜像blob信息落盘,不重复同步已同步的镜像。 并发同步,能够经过配置文件调整并发数。 自动重试失败的同步任务,能够解决大部分镜像同步中的网络抖动问题。 不依赖 docker 以及其余程序。 使用image-migrator迁移镜像至SWR 待迁移的镜像数量庞大 支持将基于Docker Registry v2搭建的Docker镜像仓库中的镜像迁移到华为云SWR中。 跨云harbor同步镜像至华为云SWR 部分客户存在多云场景,并且使用某一家云上的自建Harbor作为镜像仓库 仅支持 Harbor V1.10.5 及以上版本
  • 应用现状 随着容器化技术的发展,越来越多的企业使用容器代替了虚拟机完成应用的运行部署。目前许多企业选择自建Kubernetes集群,但是自建集群往往有着沉重的运维负担,需要运维人员自己配置管理系统和监控解决方案。企业自运维大批镜像资源,意味着要付出高昂的运维、人力、管理成本,且效率不高。 容器镜像服务支持Linux、ARM等多架构容器镜像托管。企业可以将镜像仓库迁移到容器镜像服务,节省运维成本。 如何把已有的镜像仓库平滑地迁移到容器镜像服务?这里将介绍3种常见的方案,用户可以根据自己的实际使用场景来选择。