
# 创建NPU应用
#### 前提条件
- 如果您需要通过命令行创建，需要使用kubectl连接到集群，详情请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-ucs/ucs_01_0320.html)。
 
#### 约束与限制
- 当前不支持npu负载多容器能力。
 
#### 通过控制台创建NPU应用
本节以创建无状态工作负载(Deployment)为例，说明通过控制台创建npu资源应用的方法。
1. 登录[UCS控制台](https://console.huaweicloud.com/ucs/?#/aether/dashboard)，选择容器舰队，单击集群名称进入集群。
2. 左侧导航栏中选择"工作负载 \> 无状态负载"，右上角单击"镜像创建"。
3. 配置工作负载信息。在"容器配置\>基本信息"中，异构资源选择"NPU"，并设置NPU配额。 
   ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000002099205861.png "点击放大")
   
   
   
4. 配置其余信息，完成后，单击"创建工作负载"。返回无状态工作负载列表查看工作负载状态。 
   在工作负载列表中，待工作负载状态为"运行中"，工作负载创建成功。
   
   
 
#### 通过kubectl命令行创建NPU应用
本节以创建无状态工作负载(Deployment)为例，说明使用kubectl命令创建训练任务的方法。
```
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    description: ''
  labels:
    appgroup: ''
    version: v1
  name: demo
  namespace: default
spec:
  selector:
    matchLabels:
      app: demo
      version: v1
  template:
    metadata:
      labels:
        app: demo
        version: v1
    spec:
      containers:
        - name: container-1
          image: <your_image_address>         # 请替换为您的镜像地址
          imagePullPolicy: IfNotPresent
          env:
            - name: PAAS_APP_NAME
              value: demo
            - name: PAAS_NAMESPACE
              value: default
            - name: PAAS_PROJECT_ID
              value: 0aa612a71f80d4322fe0c010beb80e8a
          resources:
            requests:
              cpu: 250m
              memory: 512Mi
              huawei.com/ascend-1980: '1'          ##需要使用的npu卡数量
            limits:
              cpu: 250m
              memory: 512Mi
          huawei.com/ascend-1980: '1'   ##需要使用的npu卡数量
      terminationGracePeriodSeconds: 30
      schedulerName: volcano                           ## 使用的调度器指定为volcano
      tolerations:
        - key: node.kubernetes.io/not-ready
          operator: Exists
          effect: NoSchedule
        - key: node.kubernetes.io/unreachable
          operator: Exists
          effect: NoSchedule
      initContainers: []
      volumes: []
  replicas: 2
  revisionHistoryLimit: 10
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
```
