

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konfiguration benutzerdefinierter Kubernetes-Labels und -Taints in Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints"></a>

 SageMaker HyperPod Amazon-Cluster mit dem Orchestrator Amazon Elastic Kubernetes Service (Amazon EKS) unterstützen benutzerdefinierte Kubernetes-Labels und -Taints für Knoten innerhalb von Instanzgruppen. Labels and Taints sind grundlegende Planungs- und Organisationsmechanismen in Kubernetes, mit denen Sie die Pod-Platzierung und die Ressourcennutzung genau steuern können.

Labels sind Schlüssel-Wert-Paare, die an Kubernetes-Objekte angehängt werden können, sodass Sie Ressourcen anhand von Attributen organisieren und auswählen können. Bei Taints handelt es sich in Verbindung mit Toleranzen um knotenspezifische Eigenschaften, die das Pod-Scheduling beeinflussen, indem sie Pods abwehren, für die es keine passenden Toleranzen gibt. Zusammen ermöglichen Ihnen diese Mechanismen, Workloads zu isolieren, sie gemäß den Hardwarespezifikationen zuzuweisen und eine optimale Ressourcennutzung sicherzustellen.

## Häufige Anwendungsfälle
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-use-cases"></a>

Im Folgenden finden Sie häufig vorkommende Szenarien, in denen benutzerdefinierte Labels und Taints von Vorteil sind:
+ **Vermeidung von System-Pods auf teuren Instanzen** — Wenden Sie Taints auf GPU-Instances an, um zu verhindern, dass System-Pods und andere unkritische Workloads teure Rechenressourcen verbrauchen
+ **Integration mit vorhandenen Tools** — Wenden Sie Labels an, die den etablierten Infrastrukturmustern und Knotenaffinitätskonfigurationen Ihres Unternehmens entsprechen

## Konfiguration von Labels und Taints
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-configure"></a>

Sie können benutzerdefinierte Kubernetes-Labels und -Taints auf Instanzgruppenebene konfigurieren, indem Sie den `KubernetesConfig` Parameter in Ihrer Cluster-Konfiguration verwenden. Labels und Taints werden auf alle Knoten in der Instanzgruppe angewendet und bleiben während des gesamten Lebenszyklus des Clusters bestehen.

Der `KubernetesConfig` Parameter ist deklarativ, d. h. Sie geben den vollständigen gewünschten Status von Labels und Taints für eine Instanzgruppe an. SageMaker HyperPod gleicht dann den tatsächlichen Zustand der Knoten so ab, dass er diesem gewünschten Zustand entspricht.
+ **Hinzufügen von Labels oder Taints** — Fügen Sie die neuen Labels oder Taints `KubernetesConfig` zusammen mit allen vorhandenen hinzu, die Sie behalten möchten
+ **Beschriftungen oder Verschmutzungen aktualisieren** — Ändern Sie die Werte `KubernetesConfig` für die Beschriftungen oder Verfärbungen, die Sie ändern möchten, und schließen Sie alle anderen ein, die Sie behalten möchten
+ **Beschriftungen oder Verschmutzungen entfernen** — Lassen Sie die Beschriftungen oder Verfälschungen aus, die Sie entfernen möchten, und behalten Sie nur diejenigen bei`KubernetesConfig`, die Sie beibehalten möchten

### Erstellen eines Clusters mit Labels und Makeln
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-create"></a>

Wenn Sie einen neuen SageMaker HyperPod Cluster erstellen, nehmen Sie den `KubernetesConfig` Parameter in Ihre Instanzgruppenkonfiguration auf. Das folgende Beispiel zeigt, wie Sie einen Cluster mit benutzerdefinierten Labels und Taints erstellen:

```
{
    "ClusterName": "my-cluster",
    "InstanceGroups": [{
        "InstanceGroupName": "worker-group-1",
        "InstanceType": "ml.p4d.24xlarge",
        "InstanceCount": 4,
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://my-bucket/lifecycle-config.sh",
            "OnCreate": "on-create.sh"
        },
        "ExecutionRole": "arn:aws:iam::123456789012:role/HyperPodExecutionRole",
        "ThreadsPerCore": 1,
        "KubernetesConfig": { 
            "Labels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "Taints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            },
            {
                "key": "dedicated",
                "value": "ml-workloads",
                "effect": "NoExecute"
            }]
        }
    }],
    "VpcConfig": {
        "SecurityGroupIds": ["sg-0123456789abcdef0"],
        "Subnets": ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"]
    },
    "Orchestrator": {
        "Eks": {
            "ClusterArn": "arn:aws:eks:us-west-2:123456789012:cluster/my-eks-cluster"
        }
    }
}
```

In diesem Beispiel:
+ **Labels** — Drei benutzerdefinierte Labels werden angewendet:`env=prod`,`team=ml-training`, und `gpu-type=a100`
+ **Taints** — Zwei Taints wurden konfiguriert, um ungewolltes Pod-Scheduling zu verhindern

### Labels und Taints auf einem vorhandenen Cluster werden aktualisiert
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-update"></a>

Sie können Labels und Taints auf einem vorhandenen Cluster mithilfe der `UpdateCluster` API ändern. Das folgende Beispiel zeigt, wie Sie die `KubernetesConfig` für eine Instanzgruppe aktualisieren:

```
{
    "ClusterName": "my-cluster",
    "InstanceGroups": [{
        "InstanceGroupName": "worker-group-1",
        "KubernetesConfig": { 
            "Labels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100",
                "cost-center": "ml-ops"
            },
            "Taints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }]
        }
    }]
}
```

Wenn Sie Labels und Taints aktualisieren, werden die Änderungen auf alle Knoten in der Instanzgruppe SageMaker HyperPod angewendet. Der Service verwaltet den Übergang vom aktuellen zum gewünschten Status, den Sie mithilfe der `DescribeCluster` API überwachen können.

## Überwachung, Etikett und Anwendung
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-monitor"></a>

SageMaker HyperPod ermöglicht APIs die Überwachung des Status von Labels und Taints, wenn sie auf Ihre Clusterknoten angewendet werden.

### Überprüfen Sie den Status auf Clusterebene
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-describe-cluster"></a>

Verwenden Sie die `DescribeCluster` API, um den aktuellen und gewünschten Status von Labels und Taints auf Instanzgruppenebene anzuzeigen. Das folgende Beispiel zeigt die Antwortstruktur:

```
{
    "ClusterName": "my-cluster",
    "ClusterStatus": "InService",
    "InstanceGroups": [{
        "InstanceGroupName": "worker-group-1",
        "InstanceType": "ml.p4d.24xlarge",
        "CurrentInstanceCount": 4,
        "TargetInstanceCount": 4,
        "KubernetesConfig": {
            "CurrentLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "DesiredLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "CurrentTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }],
            "DesiredTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }]
        }
    }]
}
```

Bei `CurrentLabels` Übereinstimmung `DesiredLabels` und `CurrentTaints` Übereinstimmung `DesiredTaints` wird auf alle Knoten in der Instanzgruppe die angegebene Konfiguration angewendet. Wenn sie sich unterscheiden, ist der Cluster noch dabei, die Änderungen anzuwenden.

### Der Status einzelner Knoten wird überprüft
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-describe-node"></a>

Für Details auf Knotenebene verwenden Sie die `DescribeClusterNode` API, um die Bezeichnung und die fehlerhafte Konfiguration einzelner Knoten zu überprüfen. Das folgende Beispiel zeigt die Antwortstruktur:

```
{
    "NodeDetails": { 
        "InstanceId": "i-0123456789abcdef0",
        "InstanceGroupName": "worker-group-1",
        "InstanceType": "ml.p4d.24xlarge",
        "InstanceStatus": {
            "Status": "Running",
            "Message": "Node is healthy"
        },
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://my-bucket/lifecycle-config.sh",
            "OnCreate": "on-create.sh"
        },
        "LaunchTime": 1699564800.0,
        "KubernetesConfig": {
            "CurrentLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "DesiredLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "CurrentTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }],
            "DesiredTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }]
        }
    }
}
```

Die Überwachung auf Knotenebene ist nützlich für die Fehlerbehebung, wenn Labels oder Taints nicht korrekt auf bestimmte Knoten angewendet werden oder wenn Sie die Konfiguration einer bestimmten Instanz überprüfen müssen.

## Reservierte Präfixe
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-reserved-prefixes"></a>

Bestimmte Präfixe sind für die Verwendung durch das System reserviert und sollten nicht für benutzerdefinierte Beschriftungen oder Markierungen verwendet werden. Die folgenden Präfixe sind reserviert:
+ `kubernetes.io/`- Reserviert für Kubernetes-Kernkomponenten
+ `k8s.io/`— Reserviert für Kubernetes-Kernkomponenten
+ `sagemaker.amazonaws.com/`- Reserviert für SageMaker HyperPod
+ `eks.amazonaws.com/`- Reserviert für Amazon EKS
+ `k8s.aws/`- Reserviert für Amazon EKS
+ `karpenter.sh/`— Reserviert für Karpenter Autoscaling

Labels und Taints mit diesen Präfixen werden von Systemkomponenten verwaltet und sollten nicht mit benutzerdefinierten Werten überschrieben werden.