Dies ist eine unveröffentlichte Dokumentation für SUSE® Virtual Clusters v1.2.0 (Dev).

Einschränkung von GPU-Ressourcen in SUSE Virtual Clusters

Dieser Leitfaden hilft Ihnen, GPU-Einschränkungen innerhalb Ihrer Mandanten mithilfe des Richtlinienkonzepts von SUSE Virtual Clusters zu definieren.

Dies gilt nur für den shared-Modus.

Erstellen Sie eine VirtualCluster-Richtlinie

Beginnen Sie damit, eine VirtualClusterPolicy in einer YAML-Datei (zum Beispiel gpu-policy.yaml) zu definieren und sie auf Ihren Cluster anzuwenden.

apiVersion: k3k.io/v1beta1
kind: VirtualClusterPolicy
metadata:
  name: quota-policy
spec:
  quota:
    hard:
      requests.nvidia.com/gpu: 4

Wenden Sie die Richtlinie mit kubectl an:

kubectl apply -f gpu-policy.yaml

Diese Richtlinie erlaubt den Verbrauch von 4 GPUs.

Fügen Sie die Richtlinie einem Mandanten hinzu

Wenden Sie die Richtlinie an, indem Sie den gewünschten Namespace annotieren:

kubectl label namespace <namespace-name> policy.k3k.io/policy-name="quota-policy"

Ein Ressourcen-Quota wird automatisch im Namespace erstellt.

Verfolgen Sie den GPU-Verbrauch

Sobald eine GPU-Arbeitslast in einem virtuellen Cluster (im gemeinsamen Modus) erstellt wird, verbraucht sie eine der zugewiesenen GPU-Ressourcen.

Sie können den Verbrauch mit dem quota-Befehl verfolgen:

kubectl get quota -n testgpu
NAME               REQUEST                        LIMIT   AGE
k3k-quota-policy   requests.nvidia.com/gpu: 0/4           4s

Wenn das Limit erreicht ist und ein Benutzer versucht, einen neuen Pod bereitzustellen, der eine GPU verbraucht, bleibt der Pod im Pending-Zustand mit dem folgenden Status:

Warning  ProviderCreateFailed  1s    ubuntu/pod-controller  pods "cuda-vectoradd-default-sharedclustergpu-637564612d7665637-865e4" is forbidden: exceeded quota: k3k-quota-policy, requested: requests.nvidia.com/gpu=1, used: requests.nvidia.com/gpu=4, limited: requests.nvidia.com/gpu=4