

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.

# Alte SageMaker KI-Operatoren für Kubernetes
<a name="kubernetes-sagemaker-operators-end-of-support"></a>

Dieser Abschnitt basiert auf der Originalversion von [SageMaker AI Operators for](https://github.com/aws/amazon-sagemaker-operator-for-k8s) Kubernetes.

**Wichtig**  
Wir stellen die Entwicklung und den technischen Support der Originalversion von [ SageMaker Operators for](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) Kubernetes ein.  
Wenn Sie derzeit die Version `v1.2.2` oder eine niedrigere Version von [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master) verwenden, empfehlen wir, Ihre Ressourcen auf den [ACK Service Controller](https://github.com/aws-controllers-k8s/sagemaker-controller) für Amazon zu migrieren. SageMaker Der ACK Service Controller ist eine neue Generation von SageMaker Operatoren für Kubernetes, die auf [AWS Controllers for](https://aws-controllers-k8s.github.io/community/) Kubernetes (ACK) basieren.  
Informationen zu den Migrationsschritten finden Sie unter [Migrieren Sie Ressourcen zu den neuesten Operatoren](kubernetes-sagemaker-operators-migrate.md).  
Antworten auf häufig gestellte Fragen zum Ende der Unterstützung für die Originalversion von SageMaker Operators for Kubernetes finden Sie unter [Ankündigung des Endes der Support der Originalversion von SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

**Topics**
+ [Installieren Sie SageMaker AI Operators für Kubernetes](#kubernetes-sagemaker-operators-eos-install)
+ [Verwenden Sie Amazon SageMaker AI Jobs](kubernetes-sagemaker-jobs.md)
+ [Migrieren Sie Ressourcen zu den neuesten Operatoren](kubernetes-sagemaker-operators-migrate.md)
+ [Ankündigung des Endes der Support der Originalversion von SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

## Installieren Sie SageMaker AI Operators für Kubernetes
<a name="kubernetes-sagemaker-operators-eos-install"></a>

Gehen Sie wie folgt vor, um SageMaker AI Operators for Kubernetes zu installieren und zu verwenden, um Modelle für maschinelles Lernen mit Amazon SageMaker AI zu trainieren, zu optimieren und bereitzustellen.

**Topics**
+ [Auf IAM-Rolle basierende Einrichtung und Bereitstellung eines Operators](#iam-role-based-setup-and-operator-deployment)
+ [Bereinigen von Ressourcen](#cleanup-operator-resources)
+ [Operatoren löschen](#delete-operators)
+ [Fehlerbehebung](#troubleshooting)
+ [Bilder und SMLogs in jeder Region](#images-and-smlogs-in-each-region)

### Auf IAM-Rolle basierende Einrichtung und Bereitstellung eines Operators
<a name="iam-role-based-setup-and-operator-deployment"></a>

In den folgenden Abschnitten werden die Schritte zum Einrichten und Bereitstellen der Originalversion des Operators beschrieben.

**Warnung**  
**Erinnerung: Mit** den folgenden Schritten wird nicht die neueste Version von SageMaker AI Operators for Kubernetes installiert. Informationen zur Installation der neuen ACK-based SageMaker AI Operators für Kubernetes finden Sie unter. [Aktuelle SageMaker KI-Operatoren für Kubernetes](kubernetes-sagemaker-operators-ack.md)

#### Voraussetzungen
<a name="prerequisites"></a>

In diesem Leitfaden wird davon ausgegangen, dass Sie die folgenden Voraussetzungen erfüllt haben: 
+ Installieren Sie die folgenden Tools auf dem Client-Computer, der für den Zugriff auf Ihren Kubernetes-Cluster verwendet wird: 
  + [`kubectl`](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html), Version 1.13 oder höher. Verwenden Sie eine `kubectl`-Version, die innerhalb einer Nebenversion Ihrer Amazon EKS-Cluster-Kontrollebene liegt. Ein 1.13 `kubectl`-Client funktioniert zum Beispiel mit Kubernetes 1.13- und 1.14-Clustern. OpenID Connect (OIDC) wird in Versionen vor 1.13 nicht unterstützt. 
  + [`eksctl`](https://github.com/weaveworks/eksctl)-Version 0.7.0 oder höher 
  + [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) Version 1.16.232 oder höher 
  + (optional) [Helm](https://helm.sh/docs/intro/install/)-Version 3.0 oder höher 
  + [aws-iam-Authenticator](https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html) 
+ IAM-Berechtigungen zum Erstellen von Rollen und zum Zuordnen von Richtlinien zu Rollen haben.
+ Es wurde ein Kubernetes-Cluster erstellt, auf dem die Operatoren ausgeführt werden sollen. Es sollte entweder Kubernetes Version 1.13 oder 1.14 sein. Informationen zur automatisierten Clustererstellung mithilfe von finden Sie unter [Starten mit eksctl`eksctl`](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html). Die Bereitstellung eines Clusters dauert 20-30 Minuten. 

#### Cluster-scoped Bereitstellung
<a name="cluster-scoped-deployment"></a>

Bevor Sie Ihren Operator mithilfe einer IAM-Rolle bereitstellen können, ordnen Sie Ihrer Rolle einen OpenID Connect (OIDC) Identity Provider (IdP) zu, um sich beim IAM-Service zu authentifizieren.

##### Erstellen Sie einen OIDC-Anbieter für Ihren Cluster
<a name="create-an-openid-connect-provider-for-your-cluster"></a>

Die folgenden Anweisungen zeigen, wie Sie einen OIDC-Anbieter erstellen und Ihrem Amazon EKS-Cluster zuordnen.

1. Legen Sie die lokalen Variablen `CLUSTER_NAME` und die `AWS_REGION`-Umgebungsvariablen wie folgt fest:

   ```
   # Set the Region and cluster
   export CLUSTER_NAME="{{<your cluster name>}}"
   export AWS_REGION="{{<your region>}}"
   ```

1. Verwenden Sie den folgenden Befehl, um den OIDC-Anbieter Ihrem Cluster zuzuordnen. Weitere Informationen finden Sie unter [Aktivieren von IAM-Rollen für Service-Konten in Ihrem Cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html). 

   ```
   eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \
         --region ${AWS_REGION} --approve
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   [_]  eksctl version 0.10.1
     [_]  using region us-east-1
     [_]  IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"
   ```

Da der Cluster nun über einen OIDC-Identitätsanbieter verfügt, können Sie eine Rolle erstellen und Kubernetes die ServiceAccount Erlaubnis erteilen, die Rolle zu übernehmen.

##### Holen Sie sich die OIDC-ID
<a name="get-the-oidc-id"></a>

Rufen Sie zur Einrichtung die URL des ServiceAccount OIDC-Ausstellers mit dem folgenden Befehl ab:

```
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \
      --query cluster.identity.oidc.issuer --output text
```

Der Befehl gibt eine URL wie die folgende zurück: 

```
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

In dieser URL ist der Wert `D48675832CA65BD10A532F597OIDCID` die OIDC-ID. Die OIDC-ID für Ihren Cluster ist unterschiedlich. Sie benötigen diesen OIDC-ID-Wert, um eine Rolle zu erstellen. 

 Wenn Ihre Ausgabe `None` ist, bedeutet das, dass Ihre Client-Version alt ist. Führen Sie zum Umgehen des Problems den folgenden Befehl aus: 

```
aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC
```

Die OIDC-URL wird wie folgt zurückgegeben: 

```
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

##### Erstellen einer IAM-Rolle
<a name="create-an-iam-role"></a>

1. Erstellen Sie eine Datei mit dem Namen `trust.json` und fügen Sie den folgenden Vertrauensstellungs-Codeblock ein. Achten Sie darauf, alle `<OIDC ID>`, `<AWS account number>`, und `<EKS Cluster region>`-Platzhalter durch Werte zu ersetzen, die Ihrem Cluster entsprechen. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::{{111122223333}}:oidc-provider/oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
             "StringEquals": {
               "oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}:aud": "sts.amazonaws.com",
               "oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}:sub": "system:serviceaccount:sagemaker-k8s-operator-system:sagemaker-k8s-operator-default"
             }
           }
         }
       ]
     }
   ```

------

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws-cn:iam::{{111122223333}}:oidc-provider/oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
             "StringEquals": {
               "oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}:aud": "sts.amazonaws.com",
               "oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}:sub": "system:serviceaccount:sagemaker-k8s-operator-system:sagemaker-k8s-operator-default"
             }
           }
         }
       ]
     }
   ```

------

1. Führen Sie den folgenden Befehl aus, um eine Rolle mit der unter `trust.json` definierten Vertrauensstellung zu erstellen. Diese Rolle ermöglicht es dem Amazon EKS-Cluster, Anmeldeinformationen von IAM abzurufen und zu aktualisieren. 

   ```
   aws iam create-role --region ${AWS_REGION} --role-name {{<role name>}} --assume-role-policy-document file://trust.json --output=text
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   ROLE    arn:aws:iam::123456789012:role/my-role 2019-11-22T21:46:10Z    /       ABCDEFSFODNN7EXAMPLE   my-role
   ASSUMEROLEPOLICYDOCUMENT        2012-10-17		 	 	 
   STATEMENT       sts:AssumeRoleWithWebIdentity   Allow
   STRINGEQUALS    sts.amazonaws.com       system:serviceaccount:sagemaker-k8s-operator-system:sagemaker-k8s-operator-default
   PRINCIPAL       arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/
   ```

    Achten Sie auf `ROLE ARN`; Sie übergeben diesen Wert an Ihren Operator. 

##### Hängen Sie die AmazonSageMakerFullAccess Richtlinie an die Rolle an
<a name="attach-the-amazonsagemakerfullaccess-policy-to-the-role"></a>

Um der Rolle Zugriff auf SageMaker KI zu gewähren, fügen Sie die [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)Richtlinie bei. Wenn Sie die Berechtigungen auf den Operator beschränken möchten, können Sie Ihre eigene benutzerdefinierte Richtlinie erstellen und diese anhängen. 

 Um `AmazonSageMakerFullAccess` anzuhängen, führen Sie den folgenden Befehl aus: 

```
aws iam attach-role-policy --role-name {{<role name>}}  --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
```

Die Kubernetes ServiceAccount `sagemaker-k8s-operator-default` sollten über Berechtigungen verfügen`AmazonSageMakerFullAccess`. Bestätigen Sie dies, wenn Sie den Operator installieren. 

##### Bereitstellen des Operators
<a name="deploy-the-operator"></a>

Bei der Bereitstellung Ihres Operators können Sie entweder eine YAML-Datei oder Helm-Diagramme verwenden. 

##### Stellen Sie den Operator mit YAML bereit
<a name="deploy-the-operator-using-yaml"></a>

Dies ist die einfachste Möglichkeit, Ihre Operatoren bereitzustellen. Der Prozess läuft folgendermaßen ab: 

1. Laden Sie das Installationsskript mit dem folgenden Befehl herunter: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/installer.yaml
   ```

1. Bearbeiten Sie die zu ersetzende `installer.yaml` Datei`eks.amazonaws.com/role-arn`. Ersetzen Sie den ARN hier durch den Amazon-Ressourcennamen (ARN) für die OIDC-based Rolle, die Sie erstellt haben. 

1. Verwenden Sie den folgenden Befehl, um den Cluster bereitzustellen: 

   ```
   kubectl apply -f installer.yaml
   ```

##### Stellen Sie den Operator mithilfe von Helm Charts bereit
<a name="deploy-the-operator-using-helm-charts"></a>

Verwenden Sie das mitgelieferte Helm-Diagramm, um den Operator zu installieren. 

1. Klonen Sie das Helm-Installationsverzeichnis mit dem folgenden Befehl: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Navigieren Sie zum Verzeichnis `amazon-sagemaker-operator-for-k8s/hack/charts/installer`. Bearbeiten Sie die `rolebased/values.yaml` Datei, die allgemeine Parameter für das Diagramm enthält. Ersetzen Sie hier den Rollen-ARN durch den Amazon-Ressourcennamen (ARN) für die OIDC-based Rolle, die Sie erstellt haben. 

1. Installieren Sie das Helm Diagramm mit dem folgenden Befehl: 

   ```
   kubectl create namespace sagemaker-k8s-operator-system
     helm install --namespace sagemaker-k8s-operator-system sagemaker-operator rolebased/
   ```

   Wenn Sie den Operator in einem anderen als dem angegebenen Namespace installieren möchten, müssen Sie den in der IAM-Rollen–`trust.json`datei definierten Namespace entsprechend anpassen. 

1. Nach einem Moment wird das Diagramm mit einem zufällig generierten Namen installiert. Überprüfen Sie, ob die Installation erfolgreich war, indem Sie den folgenden Befehl ausführen: 

   ```
   helm ls
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   NAME                    NAMESPACE                       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
     sagemaker-operator      sagemaker-k8s-operator-system   1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
   ```

##### Überprüfen Sie den Einsatz des Operators
<a name="verify-the-operator-deployment"></a>

1. Sie sollten in der Lage sein, die benutzerdefinierten SageMaker KI-Ressourcendefinitionen (CRDs) für jeden in Ihrem Cluster bereitgestellten Operator zu sehen, indem Sie den folgenden Befehl ausführen: 

   ```
   kubectl get crd | grep sagemaker
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   batchtransformjobs.sagemaker.aws.amazon.com         2019-11-20T17:12:34Z
   endpointconfigs.sagemaker.aws.amazon.com            2019-11-20T17:12:34Z
   hostingdeployments.sagemaker.aws.amazon.com         2019-11-20T17:12:34Z
   hyperparametertuningjobs.sagemaker.aws.amazon.com   2019-11-20T17:12:34Z
   models.sagemaker.aws.amazon.com                     2019-11-20T17:12:34Z
   trainingjobs.sagemaker.aws.amazon.com               2019-11-20T17:12:34Z
   ```

1. Stellen Sie sicher, dass der Operator-Pod erfolgreich ausgeführt wird. Verwenden Sie den folgenden Befehl, um alle Pods aufzulisten: 

   ```
   kubectl -n sagemaker-k8s-operator-system get pods
   ```

   Sie sollten einen Pod mit dem Namen `sagemaker-k8s-operator-controller-manager-*****` im Namespace `sagemaker-k8s-operator-system` wie folgt sehen: 

   ```
   NAME                                                         READY   STATUS    RESTARTS   AGE
   sagemaker-k8s-operator-controller-manager-12345678-r8abc     2/2     Running   0          23s
   ```

#### Namespace-scoped Bereitstellung
<a name="namespace-scoped-deployment"></a>

Sie haben die Möglichkeit, Ihren Operator im Rahmen eines individuellen Kubernetes-Namespace zu installieren. In diesem Modus überwacht und gleicht der Controller Ressourcen nur dann mit SageMaker KI ab, wenn die Ressourcen in diesem Namespace erstellt wurden. Dies ermöglicht eine genauere Kontrolle darüber, welcher Controller welche Ressourcen verwaltet. Dies ist nützlich, wenn Sie die Bereitstellung für mehrere AWS Konten durchführen oder kontrollieren möchten, welche Benutzer Zugriff auf bestimmte Jobs haben. 

In dieser Anleitung wird beschrieben, wie ein Operator in einem bestimmten, vordefinierten Namespace installiert wird. Um einen Controller in einem zweiten Namespace bereitzustellen, folgen Sie der Anleitung von Anfang bis Ende und ändern Sie den Namespace in jedem Schritt. 

##### Erstellen Sie einen OIDC-Anbieter für Ihren Amazon EKS-Cluster
<a name="create-an-openid-connect-provider-for-your-eks-cluster"></a>

Die folgenden Anweisungen zeigen, wie Sie einen OIDC-Anbieter erstellen und mit Ihrem Amazon EKS-Cluster verknüpfen. 

1. Legen Sie die lokalen Variablen `CLUSTER_NAME` und die `AWS_REGION`-Umgebungsvariablen wie folgt fest: 

   ```
   # Set the Region and cluster
   export CLUSTER_NAME="{{<your cluster name>}}"
   export AWS_REGION="{{<your region>}}"
   ```

1. Verwenden Sie den folgenden Befehl, um den OIDC-Anbieter Ihrem Cluster zuzuordnen. Weitere Informationen finden Sie unter [Aktivieren von IAM-Rollen für Service-Konten in Ihrem Cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html). 

   ```
   eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \
         --region ${AWS_REGION} --approve
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   [_]  eksctl version 0.10.1
     [_]  using region us-east-1
     [_]  IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"
   ```

Da der Cluster nun über einen OIDC-Identitätsanbieter verfügt, erstellen Sie eine Rolle und erteilen Sie Kubernetes die ServiceAccount Erlaubnis, die Rolle zu übernehmen. 

##### Holen Sie sich Ihre OIDC-ID
<a name="get-your-oidc-id"></a>

Um das einzurichten ServiceAccount, rufen Sie zunächst die OpenID Connect-Aussteller-URL mit dem folgenden Befehl ab: 

```
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \
      --query cluster.identity.oidc.issuer --output text
```

Die Ausgabe des Befehls ähnelt der Folgenden: 

```
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

In dieser URL ist der Wert D48675832CA65BD10A532F597OIDCID die OIDC-ID. Die OIDC-ID für Ihren Cluster ist unterschiedlich. Sie benötigen diesen OIDC-ID-Wert, um eine Rolle zu erstellen. 

 Wenn Ihre Ausgabe `None` ist, bedeutet das, dass Ihre Client-Version alt ist. Führen Sie zum Umgehen des Problems den folgenden Befehl aus: 

```
aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC
```

Die OIDC-URL wird wie folgt zurückgegeben: 

```
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

##### Erstellen Sie Ihre IAM-Rolle
<a name="create-your-iam-role"></a>

1. Erstellen Sie eine Datei mit dem Namen `trust.json` und fügen Sie den folgenden Codeblock für Vertrauensbeziehungen ein. Achten Sie darauf, alle `<OIDC ID>`, `<AWS account number>`, `<EKS Cluster region>`, und `<Namespace>` und Platzhalter durch Werte zu ersetzen, die Ihrem Cluster entsprechen. Für die Zwecke dieses Handbuchs `my-namespace` wird für den `<Namespace>` Wert verwendet. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
           "Federated": "arn:aws:iam::{{111122223333}}:oidc-provider/oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
             "StringEquals": {
                 "oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}:aud": "sts.amazonaws.com",
                 "oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}:sub": "system:serviceaccount:{{<Namespace>}}:sagemaker-k8s-operator-default"
             }
           }
         }
       ]
     }
   ```

------

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws-cn:iam::{{111122223333}}:oidc-provider/oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
             "StringEquals": {
                 "oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}:aud": "sts.amazonaws.com",
                 "oidc.eks.{{<EKS Cluster region>}}.amazonaws.com/id/{{<OIDC ID>}}:sub": "system:serviceaccount:{{<Namespace>}}:sagemaker-k8s-operator-default"
             }
           }
         }
       ]
     }
   ```

------

1. Führen Sie den folgenden Befehl aus, um eine Rolle mit der unter `trust.json` definierten Vertrauensstellung zu erstellen. Diese Rolle ermöglicht es dem Amazon EKS-Cluster, Anmeldeinformationen von IAM abzurufen und zu aktualisieren. 

   ```
   aws iam create-role --region ${AWS_REGION} --role-name {{<role name>}} --assume-role-policy-document file://trust.json --output=text
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   ROLE    arn:aws:iam::123456789012:role/my-role 2019-11-22T21:46:10Z    /       ABCDEFSFODNN7EXAMPLE   my-role
     ASSUMEROLEPOLICYDOCUMENT        2012-10-17		 	 	 
     STATEMENT       sts:AssumeRoleWithWebIdentity   Allow
     STRINGEQUALS    sts.amazonaws.com       system:serviceaccount:my-namespace:sagemaker-k8s-operator-default
     PRINCIPAL       arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/
   ```

Beachten Sie `ROLE ARN`. Sie geben diesen Wert an Ihren Operator weiter. 

##### Hängen Sie die AmazonSageMakerFullAccess Richtlinie an Ihre Rolle an
<a name="attach-the-amazonsagemakerfullaccess-policy-to-your-role"></a>

Um der Rolle Zugriff auf SageMaker KI zu gewähren, fügen Sie die [`AmazonSageMakerFullAccess`](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)Richtlinie bei. Wenn Sie die Berechtigungen auf den Operator beschränken möchten, können Sie Ihre eigene benutzerdefinierte Richtlinie erstellen und diese anhängen. 

 Um `AmazonSageMakerFullAccess` anzuhängen, führen Sie den folgenden Befehl aus: 

```
aws iam attach-role-policy --role-name {{<role name>}}  --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
```

Die Kubernetes ServiceAccount `sagemaker-k8s-operator-default` sollten über Berechtigungen verfügen`AmazonSageMakerFullAccess`. Bestätigen Sie dies, wenn Sie den Operator installieren. 

##### Stellen Sie den Operator in Ihrem Namespace bereit
<a name="deploy-the-operator-to-your-namespace"></a>

Bei der Bereitstellung Ihres Operators können Sie entweder eine YAML-Datei oder Helm-Diagramme verwenden. 

##### Stellen Sie den Operator mithilfe von YAML in Ihrem Namespace bereit
<a name="deploy-the-operator-to-your-namespace-using-yaml"></a>

Die Bereitstellung eines Operators innerhalb eines Namespaces besteht aus zwei Teilen. Der erste ist der Satz von CRDs, die auf Clusterebene installiert werden. Diese Ressourcendefinitionen müssen nur einmal pro Kubernetes-Cluster installiert werden. Der zweite Teil betrifft die Bedienerberechtigungen und die Bereitstellung selbst. 

 Wenn Sie die CRDs noch nicht im Cluster installiert haben, wenden Sie das CRD-Installationsprogramm YAML mit dem folgenden Befehl an: 

```
kubectl apply -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml
```

Um den Operator auf dem Cluster zu installieren: 

1. Laden Sie das Operator-Installationsprogramm YAML mit dem folgenden Befehl herunter: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/operator.yaml
   ```

1. Aktualisieren Sie das Installationsprogramm YAML mit dem folgenden Befehl, sodass die Ressourcen in Ihrem angegebenen Namespace platziert werden: 

   ```
   sed -i -e 's/PLACEHOLDER-NAMESPACE/{{<YOUR NAMESPACE>}}/g' operator.yaml
   ```

1. Bearbeiten Sie die `operator.yaml` Datei, um Ressourcen in Ihrem `eks.amazonaws.com/role-arn` zu platzieren. Ersetzen Sie den ARN hier durch den Amazon-Ressourcennamen (ARN) für die OIDC-based Rolle, die Sie erstellt haben. 

1. Verwenden Sie den folgenden Befehl, um den Cluster bereitzustellen: 

   ```
   kubectl apply -f operator.yaml
   ```

##### Stellen Sie den Operator mithilfe von Helm Charts in Ihrem Namespace bereit
<a name="deploy-the-operator-to-your-namespace-using-helm-charts"></a>

Für die Bereitstellung eines Operators im Rahmen eines Namespaces sind zwei Teile erforderlich. Der erste ist der Satz von CRDs, die auf Clusterebene installiert werden. Diese Ressourcendefinitionen müssen nur einmal pro Kubernetes-Cluster installiert werden. Der zweite Teil betrifft die Bedienerberechtigungen und die Bereitstellung selbst. Wenn Sie Helm Charts verwenden, müssen Sie zuerst den Namespace mit `kubectl` erstellen. 

1. Klonen Sie das Helm-Installationsverzeichnis mit dem folgenden Befehl: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Navigieren Sie zum Verzeichnis `amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced`. Bearbeiten Sie die `rolebased/values.yaml` Datei, die allgemeine Parameter für das Diagramm enthält. Ersetzen Sie hier den Rollen-ARN durch den Amazon-Ressourcennamen (ARN) für die OIDC-based Rolle, die Sie erstellt haben. 

1. Installieren Sie das Helm Chart mit dem folgenden Befehl: 

   ```
   helm install crds crd_chart/
   ```

1. Erstellen Sie den erforderlichen Namespace und installieren Sie den Operator mit dem folgenden Befehl: 

   ```
   kubectl create namespace {{<namespace>}}
   helm install --n {{<namespace>}} op operator_chart/
   ```

1. Nach einem Moment wird das Diagramm mit dem Namen `sagemaker-operator` installiert. Überprüfen Sie, ob die Installation erfolgreich war, indem Sie den folgenden Befehl ausführen: 

   ```
   helm ls
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   NAME                    NAMESPACE                       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
   sagemaker-operator      my-namespace                    1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
   ```

##### Überprüfen Sie die Operator-Bereitstellung in Ihrem Namespace
<a name="verify-the-operator-deployment-to-your-namespace"></a>

1. Sie sollten in der Lage sein, die benutzerdefinierten SageMaker KI-Ressourcendefinitionen (CRDs) für jeden in Ihrem Cluster bereitgestellten Operator zu sehen, indem Sie den folgenden Befehl ausführen: 

   ```
   kubectl get crd | grep sagemaker
   ```

   Die Ausgabe sollte folgendermaßen aussehen: 

   ```
   batchtransformjobs.sagemaker.aws.amazon.com         2019-11-20T17:12:34Z
   endpointconfigs.sagemaker.aws.amazon.com            2019-11-20T17:12:34Z
   hostingdeployments.sagemaker.aws.amazon.com         2019-11-20T17:12:34Z
   hyperparametertuningjobs.sagemaker.aws.amazon.com   2019-11-20T17:12:34Z
   models.sagemaker.aws.amazon.com                     2019-11-20T17:12:34Z
   trainingjobs.sagemaker.aws.amazon.com               2019-11-20T17:12:34Z
   ```

1. Stellen Sie sicher, dass der Operator-Pod erfolgreich ausgeführt wird. Verwenden Sie den folgenden Befehl, um alle Pods aufzulisten: 

   ```
   kubectl -n my-namespace get pods
   ```

   Sie sollten einen Pod mit dem Namen `sagemaker-k8s-operator-controller-manager-*****` im Namespace `my-namespace` wie folgt sehen: 

   ```
   NAME                                                         READY   STATUS    RESTARTS   AGE
   sagemaker-k8s-operator-controller-manager-12345678-r8abc     2/2     Running   0          23s
   ```

#### Installieren Sie das `Kubectl-Plugin` für SageMaker KI-Logs
<a name="install-the-amazon-sagemaker-logs-kubectl-plugin"></a>

 [Als Teil der SageMaker AI Operators for Kubernetes können Sie das Plugin für verwenden. `smlogs`](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/) `kubectl` Dadurch können SageMaker CloudWatch KI-Logs mit gestreamt werden. `kubectl` `kubectl`muss auf Ihrem [PATH](http://www.linfo.org/path_env_var.html) installiert sein. Die folgenden Befehle platzieren die Binärdatei in dem `sagemaker-k8s-bin` Verzeichnis in Ihrem Home-Verzeichnis und fügen dieses Verzeichnis Ihrem `PATH` hinzu. 

```
export os="linux"
  
wget https://amazon-sagemaker-operator-for-k8s-us-east-1.s3.amazonaws.com/kubectl-smlogs-plugin/v1/${os}.amd64.tar.gz
tar xvzf ${os}.amd64.tar.gz
  
# Move binaries to a directory in your homedir.
mkdir ~/sagemaker-k8s-bin
cp ./kubectl-smlogs.${os}.amd64/kubectl-smlogs ~/sagemaker-k8s-bin/.
  
# This line adds the binaries to your PATH in your .bashrc.
  
echo 'export PATH=$PATH:~/sagemaker-k8s-bin' >> ~/.bashrc
  
# Source your .bashrc to update environment variables:
source ~/.bashrc
```

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob das`kubectl`-Plugin korrekt installiert ist: 

```
kubectl smlogs
```

Wenn das `kubectl`-Plugin korrekt installiert ist, sollte Ihre Ausgabe wie folgt aussehen: 

```
View SageMaker AI logs via Kubernetes
  
Usage:
  smlogs [command]
  
Aliases:
  smlogs, SMLogs, Smlogs
  
Available Commands:
  BatchTransformJob       View BatchTransformJob logs via Kubernetes
  TrainingJob             View TrainingJob logs via Kubernetes
  help                    Help about any command
  
Flags:
   -h, --help   help for smlogs
  
Use "smlogs [command] --help" for more information about a command.
```

### Bereinigen von Ressourcen
<a name="cleanup-operator-resources"></a>

Um den Operator aus Ihrem Cluster zu deinstallieren, müssen Sie zunächst sicherstellen, dass Sie alle SageMaker KI-Ressourcen aus dem Cluster löschen. Wenn Sie dies nicht tun, hängt der Löschvorgang des Operators ab. Führen Sie die folgenden Befehle aus, um alle Aufträge zu stoppen: 

```
# Delete all SageMaker AI jobs from Kubernetes
kubectl delete --all --all-namespaces hyperparametertuningjob.sagemaker.aws.amazon.com
kubectl delete --all --all-namespaces trainingjobs.sagemaker.aws.amazon.com
kubectl delete --all --all-namespaces batchtransformjob.sagemaker.aws.amazon.com
kubectl delete --all --all-namespaces hostingdeployment.sagemaker.aws.amazon.com
```

Die Ausgabe sollte folgendermaßen oder ähnlich aussehen: 

```
$ kubectl delete --all --all-namespaces trainingjobs.sagemaker.aws.amazon.com
trainingjobs.sagemaker.aws.amazon.com "xgboost-mnist-from-for-s3" deleted
  
$ kubectl delete --all --all-namespaces hyperparametertuningjob.sagemaker.aws.amazon.com
hyperparametertuningjob.sagemaker.aws.amazon.com "xgboost-mnist-hpo" deleted
  
$ kubectl delete --all --all-namespaces batchtransformjob.sagemaker.aws.amazon.com
batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted
  
$ kubectl delete --all --all-namespaces hostingdeployment.sagemaker.aws.amazon.com
hostingdeployment.sagemaker.aws.amazon.com "host-xgboost" deleted
```

Nachdem Sie alle SageMaker KI-Jobs gelöscht haben, finden Sie weitere Informationen [Operatoren löschen](#delete-operators) zum Löschen des Operators aus Ihrem Cluster.

### Operatoren löschen
<a name="delete-operators"></a>

#### Löschen Sie clusterbasierte Operatoren
<a name="delete-cluster-based-operators"></a>

##### Operatoren, die mit YAML installiert wurden
<a name="operators-installed-using-yaml"></a>

Um den Operator aus Ihrem Cluster zu deinstallieren, stellen Sie sicher, dass alle SageMaker KI-Ressourcen aus dem Cluster gelöscht wurden. Wenn Sie dies nicht tun, hängt der Löschvorgang des Operators ab.

**Anmerkung**  
Stellen Sie vor dem Löschen Ihres Clusters sicher, dass Sie alle SageMaker KI-Ressourcen aus dem Cluster löschen. Weitere Informationen finden Sie unter [Bereinigen von Ressourcen](#cleanup-operator-resources).

Nachdem Sie alle SageMaker KI-Jobs gelöscht haben, verwenden Sie, `kubectl` um den Operator aus dem Cluster zu löschen:

```
# Delete the operator and its resources
kubectl delete -f /installer.yaml
```

Die Ausgabe sollte folgendermaßen oder ähnlich aussehen: 

```
$ kubectl delete -f raw-yaml/installer.yaml
namespace "sagemaker-k8s-operator-system" deleted
customresourcedefinition.apiextensions.k8s.io "batchtransformjobs.sagemaker.aws.amazon.com" deleted
customresourcedefinition.apiextensions.k8s.io "endpointconfigs.sagemaker.aws.amazon.com" deleted
customresourcedefinition.apiextensions.k8s.io "hostingdeployments.sagemaker.aws.amazon.com" deleted
customresourcedefinition.apiextensions.k8s.io "hyperparametertuningjobs.sagemaker.aws.amazon.com" deleted
customresourcedefinition.apiextensions.k8s.io "models.sagemaker.aws.amazon.com" deleted
customresourcedefinition.apiextensions.k8s.io "trainingjobs.sagemaker.aws.amazon.com" deleted
role.rbac.authorization.k8s.io "sagemaker-k8s-operator-leader-election-role" deleted
clusterrole.rbac.authorization.k8s.io "sagemaker-k8s-operator-manager-role" deleted
clusterrole.rbac.authorization.k8s.io "sagemaker-k8s-operator-proxy-role" deleted
rolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-leader-election-rolebinding" deleted
clusterrolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-manager-rolebinding" deleted
clusterrolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-proxy-rolebinding" deleted
service "sagemaker-k8s-operator-controller-manager-metrics-service" deleted
deployment.apps "sagemaker-k8s-operator-controller-manager" deleted
secrets "sagemaker-k8s-operator-abcde" deleted
```

##### Mithilfe von Helm Charts installierte Operatoren
<a name="operators-installed-using-helm-charts"></a>

Um die Operator-CRDs zu löschen, löschen Sie zunächst alle laufenden Jobs. Löschen Sie dann das Helm-Diagramm, das für die Bereitstellung der Operatoren verwendet wurde, mithilfe der folgenden Befehle: 

```
# get the helm charts
helm ls
  
# delete the charts
helm delete {{<chart_name>}}
```

#### Löschen Sie Namespace-basierte Operatoren
<a name="delete-namespace-based-operators"></a>

##### Mit YAML installierte Operatoren
<a name="operators-installed-with-yaml"></a>

Um den Operator aus Ihrem Cluster zu deinstallieren, stellen Sie zunächst sicher, dass alle SageMaker KI-Ressourcen aus dem Cluster gelöscht wurden. Wenn Sie dies nicht tun, hängt der Löschvorgang des Operators ab.

**Anmerkung**  
Stellen Sie vor dem Löschen Ihres Clusters sicher, dass Sie alle SageMaker KI-Ressourcen aus dem Cluster löschen. Weitere Informationen finden Sie unter [Bereinigen von Ressourcen](#cleanup-operator-resources).

Nachdem Sie alle SageMaker KI-Jobs gelöscht haben, verwenden Sie, `kubectl` um zuerst den Operator aus dem Namespace und dann die CRDs aus dem Cluster zu löschen. Führen Sie die folgenden Befehle aus, um den Operator aus dem Cluster zu löschen: 

```
# Delete the operator using the same yaml file that was used to install the operator
kubectl delete -f operator.yaml
  
# Now delete the CRDs using the CRD installer yaml
kubectl delete -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml
  
# Now you can delete the namespace if you want
kubectl delete namespace {{<namespace>}}
```

##### Operatoren, die mit Helm Charts installiert wurden
<a name="operators-installed-with-helm-charts"></a>

Um die Operator-CRDs zu löschen, löschen Sie zunächst alle laufenden Jobs. Löschen Sie dann das Helm-Diagramm, das für die Bereitstellung der Operatoren verwendet wurde, mithilfe der folgenden Befehle: 

```
# Delete the operator
helm delete {{<chart_name>}}
  
# delete the crds
helm delete crds
  
# optionally delete the namespace
kubectl delete namespace {{<namespace>}}
```

### Fehlerbehebung
<a name="troubleshooting"></a>

#### Debuggen eines fehlgeschlagenen Jobs
<a name="debugging-a-failed-job"></a>

Gehen Sie wie folgt vor, um einen fehlgeschlagenen Job zu debuggen.
+ Überprüfen Sie den Auftragsstatus, indem Sie Folgendes ausführen: 

  ```
  kubectl get {{<CRD Type>}} {{<job name>}}
  ```
+ Wenn der Job in SageMaker AI erstellt wurde, können Sie den folgenden Befehl verwenden, um das `STATUS` und das zu sehen: `SageMaker Job Name` 

  ```
  kubectl get {{<crd type>}} {{<job name>}}
  ```
+ Sie können `smlogs` verwenden, um die Ursache des Problems mit dem folgenden Befehl zu finden: 

  ```
  kubectl smlogs {{<crd type>}} {{<job name>}}
  ```
+  Sie können den `describe` Befehl auch verwenden, um weitere Details zum Job mithilfe des folgenden Befehls anzuzeigen. Die Ausgabe enthält ein `additional` Feld mit weiteren Informationen zum Status des Jobs. 

  ```
  kubectl describe {{<crd type>}} {{<job name>}}
  ```
+ Wenn der Job nicht in SageMaker AI erstellt wurde, verwenden Sie die Protokolle des Pods des Operators, um die Ursache des Problems wie folgt zu ermitteln: 

  ```
  $ kubectl get pods -A | grep sagemaker
  # Output:
  sagemaker-k8s-operator-system   sagemaker-k8s-operator-controller-manager-5cd7df4d74-wh22z   2/2     Running   0          3h33m
    
  $ kubectl logs -p {{<pod name>}} -c manager -n sagemaker-k8s-operator-system
  ```

#### Löschen einer Bediener-CRD
<a name="deleting-an-operator-crd"></a>

Wenn das Löschen eines Jobs nicht funktioniert, überprüfen Sie, ob der Operator läuft. Wenn der Operator nicht läuft, müssen Sie den Finalizer mit den folgenden Schritten löschen: 

1. Öffnen Sie den Auftrag in einem neuen Terminal in einem Editor mit `kubectl edit` wie folgt: 

   ```
   kubectl edit {{<crd type>}} {{<job name>}}
   ```

1. Bearbeiten Sie den Job, um den Finalizer zu löschen, indem Sie die folgenden zwei Zeilen aus der Datei entfernen. Speichern Sie die Datei und der Job wird gelöscht. 

   ```
   finalizers:
     - sagemaker-operator-finalizer
   ```

### Bilder und SMLogs in jeder Region
<a name="images-and-smlogs-in-each-region"></a>

In der folgenden Tabelle sind die verfügbaren Operator-Images und SMLogs in den einzelnen Regionen aufgeführt. 


|  Region  |  Controller-Bild  |  Linux SMLogs  | 
| --- | --- | --- | 
|  us-east-1  |  957583890962.dkr.ecr.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 
|  us-east-2  |  922499468684.dkr.ecr.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 
|  us-west-2  |  640106867763.dkr.ecr.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-west-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-west-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 
|  eu-west-1  |  613661167059.dkr.ecr.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-eu-west-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-eu-west-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 