Перейти к содержанию

Metax GPU Operator

Описание

Аддон MetaX GPU Operator автоматизирует управление всеми необходимыми компонентами для работы GPU, отвечает за установку и обновление драйверов GPU, настройку контейнерного рантайма с поддержкой GPU, автоматическое проставление меток и taint-ов на GPU-узлах, а также интеграцию с системой мониторинга и метрик для отслеживания состояния и загрузки видеокарт.

Подключение модуля Metax GPU Operator

Описание Yaml

Ниже представлен манифест конфигурации аддона

apiVersion: addon.bootsman.tech/v1alpha1
kind: Config
metadata:
  name: CLUSTER_NAME-metax-gpu-operator
  namespace: CLUSTER_NAMESPACE
spec:
  enabled: true
  values: |
    registry: [% .General.HarborURL %]
    controller:
      image:
        name: metax-operator-controller
    gpuLabel:
      image:
        name: metax-gpu-label
    driver:
      image:
        name: metax-driver-manager
      payload:
        name: "metax-driver-image"
        version: "3.5.3.11"
    maca:
      image:
        name: metax-driver-manager
      payload:
        registry: [% .General.HarborURL %]
        images:
          - "metax-maca-native:3.5.3.6"
    runtime:
      image:
        name: metax-container-runtime
    gpuDevice:
      image:
        name: metax-gpu-device
    dataExporter:
      image:
        name: metax-mx-exporter
    topoDiscovery:
      master:
        image:
          name: metax-topo-master
      worker:
        image:
          name: metax-topo-worker
    gpuScheduler:
      gpuAware:
        image:
          name: metax-gpu-aware

Заметка

Для отключения аддона измените параметр enabled с true на false

Настройка в UI

Image Image

Все Values

Продвинутые настройки

Ниже представлены тонкие настройки модуля.

Используйте их для расширения конфигурации модуля, если потребуется.

Metax GPU Operator Values
controller:
  affinity:
    nodeAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
        - preference:
            matchExpressions:
              - key: node-role.kubernetes.io/master
                operator: In
                values:
                  - ""
          weight: 1
        - preference:
            matchExpressions:
              - key: node-role.kubernetes.io/control-plane
                operator: In
                values:
                  - ""
          weight: 1
  fullnameOverride: ""
  image:
    name: metax-operator-controller
  imagePullSecrets: []
  name: operator-controller
  nameOverride: ""
  nodeSelector: {}
  podAnnotations: {}
  podSecurityContext: {}
  replicaCount: 1
  securityContext: {}
  # capabilities:
  #   drop:
  #   - ALL
  # readOnlyRootFilesystem: true
  # runAsNonRoot: true
  tolerations:
    - effect: NoSchedule
      key: node-role.kubernetes.io/master
      operator: Equal
      value: ""
    - effect: NoSchedule
      key: node-role.kubernetes.io/control-plane
      operator: Equal
      value: ""
# data exporter config
dataExporter:
  deploy: false
  image:
    name: metax-mx-exporter
  service:
    port: 30445
    type: ClusterIP
# kernel module driver config
driver:
  deployPolicy: PreferCloud
  deviceAsRootGroup: false
  driverConfig: null
  fwEnableVirt: false
  # fw upgrade
  fwUpgradePolicy: Never
  image:
    name: metax-driver-manager
  log: null
  moduleParams: null
  nodeModuleParams: null
  # payload contains the KMD package
  payload:
    name: metax-driver-image
    version: 3.5.3.11
  upgradePolicy:
    Fallback: pause
    enableRollout: false
    maxFailureThreshold: 5
    maxParallel: 100%
    maxUnavailable: 0%
    pause: false
    upgradeSteps:
      - pauseDuration: 30000
        replicas: 1
      - replicas: 100%
  # please modify vfio config before using
  vfioConfig:
    - gpus: ""
      nodeName: worker-node1
  vfnumsConfig:
    nodes:
      sample-node:
        vfnum: 4
      sample-node2:
        vfnum: 2
# device plugin config
gpuDevice:
  connectDetectPeriod: 0s
  healthyInterval: 5
  image:
    name: metax-gpu-device
  log: null
  sGPUHybridMode: false
# label generator config
gpuLabel:
  image:
    name: metax-gpu-label
  log: null
gpuScheduler:
  deploy: false
  gpuAware:
    image:
      name: metax-gpu-aware
  kubeScheduler:
    image:
      registry: registry.k8s.io
log:
  dir: /var/log/metax
  format: json
  level: info
  maxAge: 26w
  rotationTime: 1w
# maca config
maca:
  cleanupConfig:
    #policy: Never/OlderVersionFirst/OlderTimestampFirst
    cleanupPolicy: Never
    threshold: 5
  image:
    name: metax-driver-manager
  log: null
  # payload contains the UMD package
  payload:
    images:
      - metax-maca-native:3.5.3.6
    registry: harbor.bootsman.host/bootsman-nimbus/common-artifacts
pullPolicy: IfNotPresent
registry: harbor.bootsman.host/bootsman-nimbus/common-artifacts
# container runtime config
runtime:
  image:
    name: metax-container-runtime
  log: null
serviceAccount:
  # Specifies whether a service account should be created
  create: true
  # Annotations to add to the service account
  annotations: {}
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name: "metax-operator"
topoDiscovery:
  deploy: false
  dragonfly:
    enableTraining: false
    nodeNumber: 2
  master:
    env: null
    image:
      name: metax-topo-master
    log: null
    podTemplateSpec:
      spec:
        affinity:
          nodeAffinity:
            preferredDuringSchedulingIgnoredDuringExecution:
              - preference:
                  matchExpressions:
                    - key: node-role.kubernetes.io/master
                      operator: In
                      values:
                        - ""
                weight: 1
              - preference:
                  matchExpressions:
                    - key: node-role.kubernetes.io/control-plane
                      operator: In
                      values:
                        - ""
                weight: 1
        tolerations:
          - effect: NoSchedule
            key: node-role.kubernetes.io/master
            operator: Equal
            value: ""
          - effect: NoSchedule
            key: node-role.kubernetes.io/control-plane
            operator: Equal
            value: ""
    serverPort: 9001
  # config/dragonfly/switchbox
  mode: config
  rpcServerPort: 10001
  switchbox:
    clusterManagerAddress: null
    clusterManagerPassword: null
    clusterManagerPollEventPeriod: 10
    clusterManagerPollTopoPeriod: 30
    clusterManagerUser: null
    enableTraining: false
    # internal dragonfly
    nodeNumber: 2
  worker:
    image:
      name: metax-topo-worker
    log: null
    metricsPort: 9002