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

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

    Переход с GPU-manager на Hami

    Примечание

    1. GPU-manager и Hami не могут быть развернуты на одном и том же узле, но могут сосуществовать в одном кластере.
    2. Во время обновления приложения необходимо изменять по одному, и это приведет к перезапуску соответствующих pod рабочей нагрузки.
    3. Если у вас только один GPU-узел, перед установкой Hami необходимо удалить GPU-manager. Это можно сделать, переключив метку узла, пока развернуты оба плагина. Например, удалите метку узла 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.8.0)

    ВерсияДоступность параметровТребуемое действие после обновления
    Hami v2.5Nvidia Runtime Class Name и Create Nvidia Runtime Class не включены во всплывающую форму.N/A
    Hami v2.6Эти параметры должны быть настроены при развертывании экземпляра плагина на новом узле.Обновите параметры развертывания плагина:
    - Nvidia Runtime Class Name: hami-nvidia
    - Create Nvidia Runtime Class: true (включить переключатель)
    Hami v2.8Значение Helm devicePlugin.nvidianodeSelector переименовано в devicePlugin.nvidiaNodeSelector (заглавная N).Если вы переопределяли это значение, обновите имя ключа в значениях Helm.
    Hami v2.8Конфигурация ресурсов monitor перемещена из devicePlugin.vgpuMonitor.resources в devicePlugin.monitor.resources.Если вы настраивали ресурсы monitor, обновите путь к значению.
    Hami v2.8Alauda Build of Hami-WebUI v1.5.0 несовместима.Обновите Alauda Build of Hami-WebUI до v1.10.0. Эта версия совместима с Hami v2.7 и v2.8.

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


    Порядок действий

    1. При необходимости обновите версию ACP.
    2. Загрузите пакет плагина Hami v2.8.0 в ACP.
    3. Перейдите на страницу Administrator -> Clusters -> Target Cluster -> Functional Components, затем нажмите кнопку Upgrade, и вы увидите, что Alauda Build of HAMi можно обновить.
    4. Обновите некоторые ConfigMaps, которые определяют расширенные ресурсы и могут использоваться для настройки расширенных ресурсов в ACP. Выполните следующий сценарий в вашем gpu cluster:
    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
    

    Примечание

    Если в версиях до v2.7.1 вы настроили quota ресурсов для ресурсов HAMi, удалите ее и настройте заново. Если вы обновляетесь до Hami v2.8.0 и также используете Alauda Build of Hami-WebUI, убедитесь, что версия WebUI — v1.10.0. Более ранняя версия v1.5.0 несовместима с Hami v2.8.