• Русский
  • Обновление

    В этой статье описывается, как выполнить обновление с GPU-manager или старой версии Hami (версия 2.5) до самой новой версии Hami.

    Содержание

    GPU-manager на Hami

    Примечание

    1. GPU-manager и Hami не могут быть развернуты на одном и том же узле, но могут быть развернуты в одном кластере.
    2. При начале обновления приложения необходимо изменять по одному, что приведет к перезапуску бизнес-подов.
    3. Если у вас только один gpu-узел, необходимо сначала удалить GPU-manager, а затем установить Hami. Это можно сделать, изменив метку узла при развертывании обоих плагинов. Например, можно удалить метку узла nvidia-device-enable=vgpu, чтобы удалить экземпляр gpu-manager на этом узле, а затем добавить метку gpu=on для развертывания плагина hami на этом узле.

    Процедура

    Измените ваши приложения по одному, пример:

    Ваш старый экземпляр GPU-manager:

    spec:
      containers:
        - image: your-image
          imagePullPolicy: IfNotPresent
          name: gpu
          resources:
            limits:
              cpu: '2'
              memory: 4Gi
              tencent.com/vcuda-core: "50"
              tencent.com/vcuda-memory: "8000"

    Миграция на Hami:

    spec:
      containers:
        - image: your-image
          imagePullPolicy: IfNotPresent
          name: gpu
          resources:
            limits:
              cpu: '2'
              memory: 4Gi
              nvidia.com/gpualloc: 1     # Запрос 1 физического GPU (обязательно)
              nvidia.com/gpucores: "50"  # Запрос 50% вычислительных ресурсов на GPU (необязательно)
              nvidia.com/gpumem: 8000    # Запрос 8000 МБ видеопамяти на GPU (необязательно)

    Hami на Hami

    Важные изменения (v2.5.0 → v2.7.1)

    ВерсияДоступность параметровНеобходимые действия после обновления
    Hami v2.5Nvidia Runtime Class Name и Create Nvidia Runtime Class не включены в всплывающую форму.Не требуется
    Hami v2.6Эти параметры обязательно должны быть настроены при развертывании экземпляра плагина на новом узле.Обновите параметры развертывания плагина:
    - Nvidia Runtime Class Name: hami-nvidia
    - Create Nvidia Runtime Class: true (включить переключатель)

    ⚠️ Обновление с v2.5 до v2.7.1 не должно повлиять на существующие приложения. ✅ Рекомендуется выполнить перезапуск приложений с помощью rolling update, чтобы избежать неожиданных проблем.


    Процедура

    1. При необходимости обновите версию ACP.
    2. Загрузите пакет плагина Hami v2.7.1 в ACP.
    3. Перейдите на страницу Administrator -> Clusters -> Tartget Cluster -> Functional Components, затем нажмите кнопку Updrade, и вы увидите, что Alauda Build of HAMi можно обновить.
    4. Обновите некоторые ConfigMaps, которые определяют расширенные ресурсы, используемые для настройки расширенных ресурсов в ACP. Выполните следующий скрипт в вашем gpu-кластере:
    Click to expand code
    kubectl apply -f - <<EOF
    apiVersion: v1
    data:
      dataType: integer
      defaultValue: "1"
      descriptionEn: Number of GPU jobs for resource quota. When create workload, declare how many physical GPUs needs and the requests of gpu core and gpu memory are the usage of per physical GPU
      descriptionZh: 资源配额代表 GPU 任务数。创建负载时代表申请的物理 gpu 个数, 申请的算力和显存都是每个物理 GPU 的使用量
      group: hami-nvidia
      groupI18n: '{"zh": "HAMi NVIDIA", "en": "HAMi NVIDIA"}'
      key: nvidia.com/gpualloc
      labelEn: gpu number
      labelZh: gpu 个数
      limits: optional
      requests: disabled
      resourceUnit: "count"
      relatedResources: "nvidia.com/gpucores,nvidia.com/gpumem"
      excludeResources: "nvidia.com/mps-core,nvidia.com/mps-memory,tencent.com/vcuda-core,tencent.com/vcuda-memory"
      runtimeClassName: ""
    kind: ConfigMap
    metadata:
      labels:
        features.cpaas.io/enabled: "true"
        features.cpaas.io/group: hami-nvidia
        features.cpaas.io/type: CustomResourceLimitation
      name: cf-crl-hami-nvidia-gpualloc
      namespace: kube-public
    ---
    apiVersion: v1
    data:
      dataType: integer
      defaultValue: "20"
      descriptionEn: vgpu cores, 100 cores represents the all computing power of a physical GPU
      descriptionZh: vgpu 算力, 100 算力代表一个物理 GPU 的全部算力
      group: hami-nvidia
      groupI18n: '{"zh": "HAMi NVIDIA", "en": "HAMi NVIDIA"}'
      key: nvidia.com/gpucores
      prefix: limits
      labelEn: vgpu cores
      labelZh: vgpu 算力
      limits: optional
      requests: disabled
      relatedResources: "nvidia.com/gpualloc,nvidia.com/gpumem"
      excludeResources: "nvidia.com/mps-core,nvidia.com/mps-memory,tencent.com/vcuda-core,tencent.com/vcuda-memory"
      runtimeClassName: ""
      ignoreNodeCheck: "true"
    kind: ConfigMap
    metadata:
      labels:
        features.cpaas.io/enabled: "true"
        features.cpaas.io/group: hami-nvidia
        features.cpaas.io/type: CustomResourceLimitation
      name: cf-crl-hami-nvidia-gpucores
      namespace: kube-public
    ---
    apiVersion: v1
    data:
      dataType: integer
      defaultValue: "4000"
      group: hami-nvidia
      groupI18n: '{"zh": "HAMi NVIDIA", "en": "HAMi NVIDIA"}'
      key: nvidia.com/gpumem
      prefix: limits
      labelEn: vgpu memory
      labelZh: vgpu 显存
      limits: optional
      requests: disabled
      resourceUnit: "Mi"
      relatedResources: "nvidia.com/gpualloc,nvidia.com/gpucores"
      excludeResources: "nvidia.com/mps-core,nvidia.com/mps-memory,tencent.com/vcuda-core,tencent.com/vcuda-memory"
      runtimeClassName: ""
      ignoreNodeCheck: "true"
    kind: ConfigMap
    metadata:
      labels:
        features.cpaas.io/enabled: "true"
        features.cpaas.io/group: hami-nvidia
        features.cpaas.io/type: CustomResourceLimitation
      name: cf-crl-hami-nvidia-gpumem
      namespace: kube-public
    ---
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cf-crl-hami-config
      namespace: kube-public
      labels:
        device-plugin.cpaas.io/config: "true"
    data:
      deviceName: "HAMi"
      nodeLabelKey: "gpu"
      nodeLabelValue: "on"
    EOF
    

    Примечание

    Если вы настраивали квоту ресурсов для ресурса hami в версиях до 2.7.1, пожалуйста, удалите её и настройте заново.