创建一个新的云容器实例 | 大装置帮助中心
跳到主要内容

创建一个新的云容器实例

名称

sco cci apps create - 创建一个新的云容器实例

说明

sco cci apps create [APP_NAME] --workspace-name=*WORKSPACE_NAME* --config=*CONFIG_FILE* [--ports=PORTS]

描述

使用 YAML 配置文件创建一个新的云容器实例。所有应用参数(显示名称、资源池、容器、调度等)必须在 YAML 配置文件中指定。

命令行标志

必要参数:

  • --workspace-name, -w: 指定云容器实例的workspace name。
  • --config: YAML 配置文件路径,描述应用及其资源配置。

可选参数:

  • [APP_NAME]: 应用名称。如果未提供,将自动生成一个随机名称。
  • --ports: 服务端口列表,逗号分隔(例如:1002,1003)。

配置文件示例

简单配置示例

display_name: simple-app
resource_pool:
name: production-cluster
available_zone: cn-sh-01z
replicas: 1
template:
containers:
- name: main-app
image_path: registry.sensecore.tech/example/ubuntu22.04-pytorch2.1.0-py310-cuda12.2:latest
resource_request:
cpu: '12'
nvidia.com/gpu: '1'
memory: 120GiB
command:
- sleep 60
volume_mounts: []
init_containers: []
resource_spec:
name: N2lS.Ie.I60.1

详细配置示例

# 必需:应用的显示名称
display_name: my-awesome-app

# 必需:资源池配置
resource_pool:
# 必需:资源池名称
name: production-cluster
# 公共集群必需:可用区
available_zone: cn-sh-01a
# 可选:VPC ID
vpc_id: 1ea621c2-75fc-11ed-a98c-221b47e4aadd

# 必需:副本数
replicas: 2

template:
# 必需:容器列表
containers:
- name: main-app
image_path: registry.sensecore.tech/example/ubuntu22.04-pytorch2.1.0-py310-cuda12.2:latest
resource_request:
nvidia.com/gpu: '1'
cpu: '12'
memory: 120GiB
# 存储挂载示例
volume_mounts:
- type: PV_AFS # 枚举:PV_AFS (AFS持久卷), CONFIGMAP (ConfigMap), SECRET (Secret)
id: 0197a0f6-2afc-71b3-aa3d-07a5d5035ac8
mount_path: /data
subdir: /
zone: cn-sh-01a
display_name: shared-storage-volume
command:
- sleep 60
- name: sidecar-app
image_path: registry.sensecore.tech/example/cambricon-base-pytorch:v0.0.1
resource_request:
nvidia.com/gpu: '1'
cpu: '12'
memory: 120GiB
volume_mounts: []
command:
- sleep 70
# 可选:初始化容器列表
init_containers:
- name: init-setup
image_path: registry.sensecore.tech/example/ubuntu22.04-pytorch2.1.0-py310-cuda12.2:latest
resource_request:
cpu: '2'
memory: 4GiB
env:
- name: INIT_DB_HOST
value: db.example.com
need_mosaic: false
- name: INIT_DB_PORT
value: '5432'
need_mosaic: false
- name: INIT_MODE
value: setup
need_mosaic: false
volume_mounts: []
command:
- echo "Initializing..." && sleep 10
# 必需:资源规格名称
resource_spec:
name: N3lS.Ii.I60.2

# 必需:调度选项
scheduling:
# 必需:优先级(枚举:NORMAL, HIGH, HIGHEST)
priority: HIGH
# 必需:配额类型(枚举:RESERVED, SPOT)
quota_type: RESERVED
# 必需:实例亲和性(枚举:POD_AFFINITY_TYPE_UNSPECIFIED, POD_AFFINITY, POD_ANITAFFINITY)
instance_affinity: POD_AFFINITY

# 可选:滚动更新策略
rolling_update_strategy:
max_unavailable: 1% # 字符串,百分比或数字
max_surge: 100% # 字符串,百分比或数字

# 可选:终止优雅期(秒)
termination_grace_period_seconds: 300

枚举选项参考

  • priority: NORMAL | HIGH | HIGHEST
  • quota_type: RESERVED | SPOT
  • instance_affinity: POD_AFFINITY_TYPE_UNSPECIFIED | POD_AFFINITY | POD_ANITAFFINITY
  • storage mount type: PV_AFS | CONFIGMAP | SECRET

示例

使用 YAML 配置文件创建应用:

sco cci apps create your-appname \
--workspace-name your-workspace-name \
--config ./config.yaml \
--ports 1002,1003

创建应用并指定名称:

sco cci apps create my-app \
--workspace-name fc05f98b-2196-4d41-9ea0-c85232e1defa \
--config ./config.yaml