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
Все 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

