云服务器内容精选

  • 数组 数组使用连字符和空格“- ”表示,合法的表示方法如下: animal:- Cat- Dog- Goldfish 也可使用行内表示法: animal: [Cat, Dog, Goldfish] 对象和数组可以嵌套使用,形成复合结构: languages: - Ruby - Perl - Pythonwebsites: YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org
  • 纯量 纯量的数据类型有字符串、布尔值、整数、浮点数、Null、时间、日期。 字符串表示: 字符串默认不使用引号表示: str: This_is_a_line 如果字符串之中包含空格或特殊字符,需要放在引号之中: str: 'content: a string’ 单引号和双引号都可以使用,两者区别是单引号可以识别转义字符:双引号不会对特殊字符转义:↵ s1: 'content:\n a string's2: "content:\n a string" 单引号之中如果还有单引号,必须连续使用两个单引号转义。 str: 'labor''s day' 字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。 str: This_is a_multi_line 整数表示: int_value: 314 浮点型表示: float_value: 3.14 Null表示: parent: ~ 时间表示: 时间采用ISO8601格式。 iso8601: 2018-12-14t21:59:43.10-05:00 日期表示: 日期采用复合ISO8601格式的年、月、日表示。 date: 1976-07-31
  • volumes配置样例 以下示例,使得每个任务容器会挂载5个共享存储,也就是所有的容器可以看到一样的共享目录。 volumes: genref: mount_path: '${volume-path-ref}' mount_from: pvc: '${BCE_REF_PVC}' #内置变量,基因容器提供的参考组OBS桶 genobs: mount_path: '${volume-path-obs}' mount_from: pvc: '${BCE_DATA_PVC}' #内置变量,环境关联的OBS桶 gensfs: mount_path: '${volume-path-sfs}' mount_from: pvc: '${BCE_SFS_PVC}' #内置变量,加速存储盘 other: mount_path: /home/mydata mount_from: pvc: '${my_k8s_pvc}' # 关联的Kubernetes集群中的任意共享存储(PVC)名字 subdir: mount_path: /home/subdir mount_from: pvc: '${my_k8s_pvc}' sub_path: '${path_var}' #仅挂载共享存储的某个子目录,可以使用inputs变量,如: path_var = abc/def
  • 创建Argo作业 登录BCE控制台,左侧导航栏中选择“作业管理”。 在“Argo”页签下,单击“创建作业”。 配置参数,具体如表1所示。 表1 创建作业 参数 说明 作业名称 输入作业名称。要求如下: 长度范围为4~32个字符。 名称由小写字母、数字、中划线(-)组成。 以小写字母开头。 以小写字母或数字结尾。 队列 选择队列,如果还未创建队列,可单击“创建队列”创建,具体操作请参见队列管理。 任务组件 可将“AI任务”或“HPC任务”用鼠标拖动至画布中。 在画布中,双击“AI任务”或“HPC任务”,编辑任务,编辑完成后,单击“确定”。 编辑AI任务 表2 编辑AI任务 参数 说明 基本信息 任务名称 输入任务名称。 队列 选择队列,如未创建队列,可单击“创建队列”。 任务实例配置 资源类型 默认为Tensorflow,不可修改。 Tensorflow任务是一种基于Tensorflow开源框架的kubernetes自定义资源类型,多种角色可以配置,可更简单地实现Tensorflow的单机或分布式训练 任务实例组合 可根据实际需求选择对应的任务实例组合。 Worker+Evaluator:单节点进行训练,只有Worker角色,可以搭配Evaluator角色使用。 PS+Worker+Evaluator:多节点进行训练,有PS和Worker角色,可以搭配Evaluator角色使用。 PS+Chief+Worker+Evaluator:多节点进行训练,有PS、Chief和Worker角色,可以搭配Evaluator角色使用。 任务实例 角色名称 角色名称此处为默认值,不用输入。 实例数量 输入实例数量。 PS、Worker:这两个角色根据实际情况输入实例数量。 Chief、Evaluator:这两个角色默认实例数量为1,无法输入。 容器配置 容器配置参数,请参见表3。可单击“添加容器”,添加多个容器。 高级配置 失败重试次数 任务的失败重试次数,仅适用于重启策略为OnFailure或Always的pod。 最大存活时长 最大存活时长,从创建任务开始,若超过此时间任务没有执行完成,则任务会视为失败。 结束后保留时长(s) 此处指定时间删除执行完成的任务,可以选择“0~永久”之间的任意时间。 0:表示执行完成后立刻删除。 永久:表示执行完成后永久保留,不删除。 如果不配置,默认为“永久”。 清理策略 任务结束之后,清理pod策略。可根据实际需求选择“清理运行中的Pod”、“清理全部实例”和“不清理”。 表3 容器配置参数说明 参数 说明 基本信息 镜像名称 单击“选择镜像”,从我的镜像、开源镜像中心或共享镜像中选择需要的镜像。 我的镜像:展示了您创建的所有镜像仓库。 开源镜像中心:展示了开源镜像中心仓库中的官方镜像。 共享镜像:其他租户通过“ 容器镜像服务 ”共享给您的镜像将在此处展示,您可以基于共享镜像创建工作负载。 导入的镜像,您可单击“更换镜像”进行更换。 * 镜像版本 选择需要部署的镜像版本。 * 容器名称 容器的名称,可修改。 特权容器 特权容器是指容器里面的程序具有一定的特权。 若选中,容器将获得超级权限,例如可以操作宿主机上面的网络设备、修改内核参数等。 CPU配额 容器需要使用的最小CPU值,默认0.5 核。 内存配额 容器需要使用的内存最小值,默认1 GB。 生命周期 启动命令 设置容器启动时执行的命令。 启动后处理 设置容器成功运行后执行的命令,详细配置方法请参见设置容器生命周期。 停止前处理 设置容器结束前执行的命令,通常用于删除日志/临时文件等,详细配置方法请参见设置容器生命周期。 容器端口 端口名称 输入端口名称,默认为port-1。 容器端口 输入端口,默认为22。 端口协议 选择端口协议,默认为TCP。 环境变量 手动添加 输入变量名称、变量/变量引用。 对于已设置的环境变量,可以进行修改或者删除。 容器存储 手动添加 可选参数,如果要挂载使用 对象存储服务 提供的并行文件系统,则单击“添加存储挂载”。 文件系统名称:在下拉列表中根据名称选择要使用的并行文件系统。 挂载路径:根据实际情况填入挂载目录,例如/dir/test。 编辑HPC任务 表4 编辑HPC任务 参数 说明 任务名称 输入任务名称。 最小实例 输入最小实例个数。 任务实例配置 添加角色 可单击“添加角色”,添加多个角色。 角色名称 输入角色名称。要求如下: 长度范围为1~10个字符。 名称由小写字母、数字、中划线(-)和点(.)组成。 中划线(-)和点(.)必须以字母或数字隔开。 以小写字母开头和结尾。 实例数量 输入实例数量。 容器配置 容器配置参数,请参见表5。 可单击“添加容器”,添加多个容器。 表5 容器配置参数说明 参数 说明 基本信息 镜像名称 单击“选择镜像”,从我的镜像、开源镜像中心或共享镜像中选择需要的镜像。 我的镜像:展示了您创建的所有镜像仓库。 开源镜像中心:展示了开源镜像中心仓库中的官方镜像。 共享镜像:其他租户通过“容器 镜像服务 ”共享给您的镜像将在此处展示,您可以基于共享镜像创建工作负载。 导入的镜像,您可单击“更换镜像”进行更换。 镜像版本 选择需要部署的镜像版本。 容器名称 容器的名称,可修改。 CPU配额 容器需要使用的最小CPU值,默认0.5 核。 内存配额 容器需要使用的内存最小值,默认1 GB。 生命周期 启动命令 设置容器启动时执行的命令。 启动后处理 设置容器成功运行后执行的命令,详细配置方法请参见设置容器生命周期。 停止前处理 设置容器结束前执行的命令,通常用于删除日志/临时文件等,详细配置方法请参见设置容器生命周期。 容器端口 端口名称 输入端口名称,默认为port-1。 容器端口 输入端口,默认为22。 端口协议 选择端口协议,默认为TCP。 环境变量 手动添加 输入变量名称、变量/变量引用。 对于已设置的环境变量,可以进行修改或者删除。 容器存储 手动添加 可选参数,如果要挂载使用对象存储服务提供的并行文件系统,则单击“添加存储挂载”。 文件系统名称:在下拉列表中根据名称选择要使用的并行文件系统。 挂载路径:根据实际情况填入挂载目录,例如/dir/test 单击“下一步:规格确认”,确认任务规格。 单击“创建任务”,任务创建成功。
  • 模板示例 version: genecontainer_0_1inputs: #设置流程变量 sample: #变量名 default: sample1 type: string description: 变量描述,支持中文 label: basicworkflow: #设置流程顺序 test-job-a: tool: busybox:latest type: G CS .Job resources: memory: 4G commands_iter: # {item} 为GCS内置变量,表示并发任务的 index,需要的时候选用 command: sleep 10; touch /obs/test-job/${sample}.${item}.${1}.txt vars_iter: - [0,1] test-job-b: tool: busybox:latest type: GCS.Job resources: memory: 4G commands: - sleep 10; touch /obs/test-job/${sample}.job-b.txt depends: - target: test-job-a #表示依赖另一个步骤,默认依赖类型: wholevolumes: #设置挂载共享存储 genobs: mount_path: /obs mount_from: pvc: '${GCS_DATA_PVC}' #OBS数据桶outputs: #设置最终结果 result-txt: #结果文件 paths_iter: path: /obs/test-job/${sample}.${item}.${1}.txt vars_iter: - [0,1]
  • 模板结构 基因容器语法结构请参见表1。 表1 模板组成元素 参数 是否必选 参数类型 参数描述 version 是 string 流程文件的版本。当前支持为 genecontainer_0_1。 inputs 否 Map 整个流程的可变量。可以定义多个,在执行的时候设置这些变量的实际值。 workflow 是 Map 定义完整流程包含的各个步骤,以及步骤之间的依赖关系。 volumes 否 Map 定义任务挂载共享存储的挂载路径。 outputs 否 Map 定义流程最终生成的文件列表。用于界面展示使用。
  • 示例流程 图1 给用户授予BCE权限流程 创建用户组并授权 在 IAM 控制台创建用户组,并授予容器批量计算只读权限“BCE ReadOnlyAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限(假设当前权限仅包含BCE ReadOnlyAccess)。 在“服务列表”中选择容器批量计算,进入BCE主界面,执行除查询以外的其他操作,如:创建、修改、删除等。 示例:单击右上角“创建作业”,若提示权限不足,表示“BCE ReadOnlyAccess”已生效。 在“服务列表”中选择除容器批量计算外的任意一个服务,如“虚拟私有云”,若提示权限不足,表示“BCE ReadOnlyAccess”已生效。
  • BCE自定义策略样例 示例1:配置BCE FullAccess策略,该策略有依赖,具体说明请参见权限管理。 { "Version": "1.1", "Statement": [ { "Action": [ "swr:repository:getTag", "swr:repository:getRepository", "swr:repository:getNamespace", "swr:repository:listNamespaces", "swr:repository:listTags", "swr:repository:listRepositories" ], "Effect": "Allow" }, { "Action": [ "bce:*:*", "cce:cluster:get", "cce:cluster:list", "cce:node:get", "cce:node:list", "cce:storage:create", "cce:storage:list", "CCI:namespace:get", "CCI:namespace:list", "CCI:namespaceSubResource:Create", "CCI:namespaceSubResource:Delete", "CCI:namespaceSubResource:Get", "CCI:namespaceSubResource:List", "CCI:namespaceSubResource:Update", "CCI:network:get", "CCI:network:list", "rds:database:list", "rds:instance:list", "vpc:vpcs:get", "vpc:subnets:get", "vpc:vpcs:list", "evs:volumes:list", "sfs:shares:getAllSharesDetail", "sfs:shares:ShareAction", "evs:volumes:get" ], "Effect": "Allow" } ]} 示例2:配置BCE ReadOnlyAccess策略,该策略有依赖,具体说明请参见权限管理。 { "Version": "1.1", "Statement": [ { "Action": [ "swr:repository:getTag", "swr:repository:getRepository", "swr:repository:getNamespace", "swr:repository:listNamespaces", "swr:repository:listTags", "swr:repository:listRepositories" ], "Effect": "Allow" }, { "Action": [ "bce:*:list", "bce:*:get", "cce:cluster:get", "cce:cluster:list", "cce:node:get", "cce:node:list", "cce:storage:list", "CCI:namespace:get", "CCI:namespace:list", "CCI:namespaceSubResource:Get", "CCI:namespaceSubResource:List", "CCI:network:get", "CCI:network:list", "rds:database:list", "rds:instance:list", "vpc:vpcs:get", "vpc:subnets:get", "vpc:vpcs:list", "evs:volumes:list", "sfs:shares:getAllSharesDetail", "sfs:shares:ShareAction", "evs:volumes:get" ], "Effect": "Allow" } ]} 示例3:配置BCE CommonOperations策略,该策略有依赖,具体说明请参见权限管理。 { "Version": "1.1", "Statement": [ { "Action": [ "swr:repository:getTag", "swr:repository:getRepository", "swr:repository:getNamespace", "swr:repository:listNamespaces", "swr:repository:listTags", "swr:repository:listRepositories" ], "Effect": "Allow" }, { "Action": [ "bce:*:get", "bce:*:list", "bce:commonWorkflows:*", "bce:commonWorkflowTemplates:*", "bce:executions:*", "bce:executionsExtend:*", "bce:hpcJobs:*", "bce:tfjobs:*", "bce:queues:*", "bce:workflowsExtend:*", "bce:workflows:*", "cce:cluster:get", "cce:cluster:list", "cce:node:get", "cce:node:list", "cce:storage:create", "cce:storage:list", "CCI:namespace:get", "CCI:namespace:list", "CCI:namespaceSubResource:Create", "CCI:namespaceSubResource:Delete", "CCI:namespaceSubResource:Get", "CCI:namespaceSubResource:List", "CCI:namespaceSubResource:Update", "CCI:network:get", "CCI:network:list", "rds:database:list", "rds:instance:list", "vpc:vpcs:get", "vpc:subnets:get", "vpc:vpcs:list", "evs:volumes:list", "sfs:shares:getAllSharesDetail", "sfs:shares:ShareAction", "evs:volumes:get" ], "Effect": "Allow" } ]} 示例4:查询队列列表 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ " bce:queues:list " ] } ]} 示例5:拒绝用户删除GCS作业 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则。 如果您给用户授予BCE FullAccess的系统策略,但不希望用户拥有BCE FullAccess中定义的删除GCS作业权限,您可以创建一条拒绝删除GCS作业的自定义策略,然后同时将BCE FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对BCE执行除了删除GCS作业外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Action": [ "bce:executions:delete" ], "Effect": "Deny" } ]}
  • 通过模板创建WDL作业 登录BCE控制台,左侧导航栏中选择“作业模板”。 在“WDL作业模板”页签下,在已创建的模板列中,单击“以此版本创建作业”,进入到创建作业的界面。 配置参数,具体如表2所示。 表2 创建作业 参数 说明 作业名称 输入作业名称。要求如下: 长度范围为1~63个字符。 名称由小写字母、数字、中划线(-)组成。 以小写字母开头。 以小写字母或数字结尾。 模板文件 此处默认为2中的模板文件,如果需要更换模板文件,可以单击删除当前模板,重新添加所需的模板。 依赖文件 单击“添加文件”,上传所需的依赖文件。 作业配置 作业配置可以用来定义模板文件中工作流区域的变量值,取值如下: 默认配置:如果您需要修改默认的变量值,则选择“默认配置”,单击“添加文件”,上传JSON文件,执行作业时会读取JSON文件中定义的变量值。示例如下: 模板中定义了Int case = 1 workflow gcs_grammar {... # 选择执行分支,可用分支为 1/2/3,填写其他数字则跳过所有步骤 Int case = 1... JSON文件中可以重新定义Int case = 3 { "gcs_grammar.case": 3} 不启用:选择“不启用”,则执行模板中定义的变量值。 须知: 如果模板中存在未定义的变量值,则后续执行作业的过程中会报错。 执行参数 执行参数为执行作业时为引擎配置的执行指令,取值如下: 默认配置: 执行结果写缓存:如果开启,则执行作业时会将执行结果的输入和输出写入缓存中。 执行任务检查缓存:如果开启,则执行作业时接到输入指令,会优先去缓存中读取输出结果,如果存在结果,则不会重复执行该指令。 该功能使您可以通过管理控制台快速定义“执行结果写缓存”和“执行任务检查缓存”的取值,可以选择默认、开启、关闭。 如果选择开启,JSON示例如下: { "write_to_cache": true, "read_from_cache": true} 自定义配置:如果您需要定义更多引擎的执行指令,可以选择“自定义配置”,单击“添加文件”,上传JSON文件,执行作业时会读取JSON文件中定义的指令。更多指令请参见Workflow Options Overview。 不启用:选择“不启用”,则执行引擎默认的指令。 单击“创建”,即可创建作业。
  • 创建WDL作业 登录BCE控制台,左侧导航栏中选择“作业管理”。 在“WDL”页签下,单击“创建作业”。 配置参数,具体如表1所示。 表1 创建作业 参数 说明 作业名称 输入作业名称。要求如下: 长度范围为4~64个字符。 名称由小写字母、数字、中划线(-)组成。 以小写字母开头。 以小写字母或数字结尾。 模板文件 是一种遵循GCS流程或者WDL流程描述语法规范的文本文件,用于控制流程的详细步骤。GCS流程的语法规则请参见流程语法参考,WDL的语法规则请参见1.0 specification。 依赖文件 创建WDL作业模板时,单击“添加文件”,可添加依赖文件。 作业配置 可根据实际需求选择“默认配置”或“不启用”。 若选择“默认配置”,可输入配置文件或者单击“添加文件”,上传配置文件。 执行参数 可根据实际需求选择配置执行参数: 默认配置 执行结果写缓存:可根据实际需求选择“默认”、“开启”和“关闭”。 执行任务检查缓存:可根据实际需求选择“默认”、“开启”和“关闭”。 自定义配置:可输入配置文件或者单击“添加文件”,上传配置文件。 不启用:不配置执行参数。 单击“创建”,作业创建成功。
  • 创建WDL作业模板 登录BCE控制台,左侧导航栏中选择“作业模板”。 在“WDL作业模板”页签下,单击“创建WDL作业模板”,进入到创建作业模板的界面。 填写模板名称、版本、发布者、描述的字段,并单击“添加文件”上传作业模板文件。 表2 创建作业模板 参数 说明 模板名称 输入流程名称,默认为wdl-{Time+Nnumber},需要保证该值唯一。 版本 输入版本号,支持多版本(在流程管理界面可以添加版本)。 模板文件 是一种遵循GCS流程或者WDL流程描述语法规范的文本文件,用于控制流程的详细步骤。GCS流程的语法规则请参见流程语法参考,WDL的语法规则请参见1.0 specification。 依赖文件 单击“添加文件”,可添加依赖文件。 发布者 输入发布者名称。 描述 输入流程描述信息。 单击“创建”。
  • 创建GCS作业模板 登录BCE控制台,左侧导航栏中选择“作业模板”,在页面的右端有两个选项卡和“WDL作业模板”可以选择。 选择页面右上角的创建GCS作业模板或者创建WDL作业模板,进入到创建作业模板的界面。 登录BCE控制台,左侧导航栏中选择“作业模板”。 在“GCS作业模板”页签下,单击“创建GCS作业模板”,进入到创建作业模板的界面。 填写模板名称、版本、发布者、描述的字段,并单击“添加文件”上传作业模板文件。 表1 创建作业模板 参数 说明 模板名称 输入流程名称,默认为gcs-{Time+Nnumber},需要保证该值唯一。 版本 输入版本号,支持多版本(在流程管理界面可以添加版本)。 模板文件 是一种遵循GCS流程或者WDL流程描述语法规范的文本文件,用于控制流程的详细步骤。GCS流程的语法规则请参见流程语法参考,WDL的语法规则请参见1.0 specification。 发布者 输入发布者名称。 描述 输入流程描述信息。 单击“创建”。
  • 通过模板创建GCS作业 登录BCE控制台,左侧导航栏中选择“作业模板”。 在“GCS作业模板”页签下,在已创建的模板列中,单击“以此版本创建作业”,进入到创建作业的界面。 配置参数,具体如表1所示。 表1 创建作业 参数 说明 作业名称 输入作业名称。要求如下: 长度范围为1~63个字符。 名称由小写字母、数字、中划线(-)组成。 以小写字母开头。 以小写字母或数字结尾。 资源池 选择已创建的资源池,若未创建,单击“创建资源池”。 高速共享存储 选择已创建的高速共享存储,若未创建,单击“创建高速共享存储”。 关联OBS存储 选择关联OBS存储,若未创建,单击“创建OBS存储”。 作业配置 配置“通用配置”和“高级配置”,可单击“添加作业”,添加多个作业。 通用配置 通用配置区域显示模板中inputs区域下的指令,指令的label为basic。 例如: inputs: command: default: "sleep 100000" description: 在容器内执行的命令 type: string label: basic ... 高级配置 高级配置区域显示模板中inputs区域下的指令,指令的label为advanced。 例如: inputs: ... memory: default: 1G description: 容器申请的内存 type: string label: advanced ... 优先级 设置当前任务优先级,优先级范围为[0-999],数值大的优先执行。 重试次数 任务失败重试次数,重试次数范围为[0-9],共享资源池默认重试0次。 批次名称 设置当前任务的批次,在执行结果页面可对批次进行过滤和筛选,便于批量操作同一个批次的任务。 超时时间 设置一个可接受的作业模板执行成功的时间,如果到这个时间作业模板没有执行成功,就会停止并且报执行失败。 单击“创建”,即可创建作业。
  • 添加版本 登录BCE控制台,左侧导航栏中选择“作业模板”。 在“GCS作业模板”或“WDL作业模板”页签下,在已创建的模板列中,单击“添加版本”。 配置参数,具体如表1所示。 表1 创建作业模板 参数 说明 模板名称 保持默认值,不可修改。 版本 输入版本号。 模板文件 是一种遵循GCS流程或者WDL流程描述语法规范的文本文件,用于控制流程的详细步骤。GCS流程的语法规则请参见流程语法参考,WDL的语法规则请参见1.0 specification。 依赖文件 WDL作业模板才显示此参数。 单击“添加文件”,可添加依赖文件。 发布者 输入发布者名称。 描述 输入描述信息。 单击“添加”。
  • 作业执行状况 图1 作业执行状况 此卡片主要展示各个作业状态的个数,作业的状态包括执行中、删除中、成功、失败、等待中和其他。 从作业执行状态可以确定当前任务所属阶段,具体说明如表1所示。 表1 任务状态说明 状态 说明 执行中 任务正在执行中。 删除中 任务正在删除中。 成功 任务执行成功,可删除任务。 失败 任务执行失败。 等待中 任务准备执行中。 其他 不同的作业存在不重合的状态,将这些状态统一归类在其他中,例如:已提交任务。