

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# SageMaker Opérateurs d'IA pour Kubernetes
<a name="kubernetes-sagemaker-operators"></a>

SageMaker Les opérateurs AI pour Kubernetes facilitent la tâche des développeurs et des data scientists qui utilisent Kubernetes pour former, ajuster et déployer des modèles d'apprentissage automatique (ML) dans le domaine de l'IA. SageMaker Vous pouvez installer ces opérateurs d' SageMaker IA sur votre cluster Kubernetes dans Amazon Elastic Kubernetes Service (Amazon EKS SageMaker ) pour créer des tâches d'IA de manière native à l'aide de l'API Kubernetes et d'outils Kubernetes en ligne de commande tels que. `kubectl` Ce guide explique comment configurer et utiliser les opérateurs pour exécuter l'entraînement de modèles, le réglage des hyperparamètres ou l'inférence (en temps réel et par lots) sur l' SageMaker IA à partir d'un cluster Kubernetes. Les présentes procédures et directives supposent que vous connaissez Kubernetes et ses commandes de base.

**Important**  
Nous arrêtons le développement et le support technique de la version originale d'[ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master).  
Si vous utilisez actuellement la version `v1.2.2` ou une version inférieure d'[ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master), nous vous recommandons de migrer vos ressources vers le [contrôleur de service ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) pour Amazon. SageMaker Le contrôleur de service ACK est une nouvelle génération d' SageMaker opérateurs pour Kubernetes basés sur les [AWS contrôleurs pour Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
Pour en savoir plus sur les étapes de migration, consultez [Migrer les ressources vers la dernière version d'Operators](kubernetes-sagemaker-operators-migrate.md).  
Pour obtenir les réponses aux questions fréquemment posées concernant la fin du support de la version originale d' SageMaker Operators for Kubernetes, voir [Annonce de la fin du support de la version originale des opérateurs SageMaker AI pour Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

**Note**  
Il n’y a pas frais supplémentaires liés à l’utilisation de ces opérateurs. Vous devez payer des frais pour toutes les ressources d' SageMaker IA que vous utilisez par le biais de ces opérateurs.

## Qu’est-ce qu’un opérateur ?
<a name="kubernetes-sagemaker-operators-overview"></a>

Un opérateur Kubernetes est un contrôleur d'applications qui gère des applications pour le compte d'un utilisateur de Kubernetes. Les contrôleurs du plan de contrôle comprennent différentes boucles de commande qui écoutent un gestionnaire d'état central (ETCD) pour réguler l'état de l'application qu'ils contrôlent. Des exemples de telles applications incluent le [C loud-controller-manager](https://kubernetes.io/docs/concepts/architecture/cloud-controller/) et`[kube-controller-manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)`. Les opérateurs fournissent généralement un niveau d'abstraction supérieur à celui de l'API Kubernetes brute, ce qui permet aux utilisateurs de déployer et de gérer plus facilement des applications. Pour ajouter de nouvelles fonctionnalités à Kubernetes, les développeurs peuvent étendre l'API Kubernetes en créant une **ressource personnalisée** qui contient leur logique et leurs composants spécifiques à l'application ou au domaine. Les opérateurs dans Kubernetes permettent aux utilisateurs d’appeler ces ressources personnalisées de manière native et d’automatiser les flux associés.

### Comment fonctionnent AWS Controllers for Kubernetes (ACK) ?
<a name="kubernetes-sagemaker-operators-explained"></a>

Les opérateurs SageMaker AI pour Kubernetes vous permettent de gérer les tâches en SageMaker IA à partir de votre cluster Kubernetes. La dernière version d' SageMaker AI Operators for Kubernetes est basée sur AWS Controllers for Kubernetes (ACK). ACK inclut un environnement d'exécution de contrôleur commun, un générateur de code et un ensemble de contrôleurs AWS spécifiques au service, dont le contrôleur SageMaker AI.

Le schéma suivant illustre le fonctionnement d’ACK.

![\[Explication de l'opérateur d' SageMaker IA basé sur ACK pour Kubernetes.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/k8s-orchestration/sagemaker-operators-for-kubernetes-ack-controller.png)


Dans ce schéma, un utilisateur de Kubernetes souhaite exécuter un entraînement de modèle sur l' SageMaker IA depuis le cluster Kubernetes à l'aide de l'API Kubernetes. L'utilisateur lance un appel à `kubectl apply` et transmet un fichier décrivant une ressource personnalisée Kubernetes décrivant le SageMaker travail de formation. `kubectl apply`transmet ce fichier, appelé manifeste, au serveur d'API Kubernetes exécuté dans le nœud du contrôleur Kubernetes (étape *1* du schéma de flux de travail). *Le serveur d'API Kubernetes reçoit le manifeste avec la spécification de la tâche de SageMaker formation et détermine si l'utilisateur est autorisé à créer une ressource personnalisée`sageMaker.services.k8s.aws/TrainingJob`, et si la ressource personnalisée est correctement formatée (étape 2).* Si l’utilisateur est autorisé et si la ressource personnalisée est valide, le serveur d’API Kubernetes écrit (étape *3*) la ressource personnalisée dans son magasin de données etcd, puis répond (étape *4*) à l’utilisateur pour lui indiquer que la ressource personnalisée a été créée. Le contrôleur SageMaker AI, qui s'exécute sur un nœud de travail Kubernetes dans le contexte d'un Kubernetes Pod normal, est informé (étape *5*) qu'une nouvelle ressource personnalisée a été créée. `sageMaker.services.k8s.aws/TrainingJob` Le contrôleur SageMaker AI communique ensuite (étape *6*) avec l' SageMaker API, en appelant l'`CreateTrainingJob`API SageMaker AI pour créer le travail de formation dans AWS. Après avoir communiqué avec l' SageMaker API, le contrôleur SageMaker AI appelle le serveur d'API Kubernetes pour mettre à jour (étape *7*) le statut de la ressource personnalisée avec les informations qu'elle a reçues de l'IA. SageMaker Le contrôleur SageMaker AI fournit donc aux développeurs les mêmes informations que celles qu'ils auraient reçues en utilisant le AWS SDK.

### Présentation des autorisations
<a name="kubernetes-sagemaker-operators-authentication"></a>

Les opérateurs accèdent aux ressources d' SageMaker IA en votre nom. Le rôle IAM que l'opérateur assume pour interagir avec les AWS ressources est différent des informations d'identification que vous utilisez pour accéder au cluster Kubernetes. Le rôle est également différent de celui que vous AWS assumez lors de l'exécution de vos tâches d'apprentissage automatique. 

L’image suivante explique les différentes couches d’authentification.

![\[SageMaker Opérateur AI pour les différentes couches d'authentification de Kubernetes.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/k8s-orchestration/sagemaker-operators-for-kubernetes-authentication.png)


# Les derniers opérateurs d' SageMaker IA pour Kubernetes
<a name="kubernetes-sagemaker-operators-ack"></a>

Cette section est basée sur la dernière version d' SageMaker AI Operators for Kubernetes using AWS Controllers for Kubernetes (ACK).

**Important**  
Si vous utilisez actuellement la version `v1.2.2` ou une version inférieure d'[ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master), nous vous recommandons de migrer vos ressources vers le [contrôleur de service ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) pour Amazon. SageMaker Le contrôleur de service ACK est une nouvelle génération d' SageMaker opérateurs pour Kubernetes basés sur les [AWS contrôleurs pour Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
Pour en savoir plus sur les étapes de migration, consultez [Migrer les ressources vers la dernière version d'Operators](kubernetes-sagemaker-operators-migrate.md).  
Pour obtenir les réponses aux questions fréquemment posées concernant la fin du support de la version originale d' SageMaker Operators for Kubernetes, voir [Annonce de la fin du support de la version originale des opérateurs SageMaker AI pour Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

La dernière version d'[SageMaker AI Operators for Kubernetes](https://github.com/aws-controllers-k8s/sagemaker-controller) est basée sur [AWS Controllers for Kubernetes (ACK), un framework permettant de créer des contrôleurs](https://aws-controllers-k8s.github.io/community/ ) personnalisés Kubernetes dans lesquels chaque contrôleur communique avec une API de service. AWS Ces contrôleurs permettent aux utilisateurs de Kubernetes d’allouer des ressources AWS telles que des bases de données ou des files d’attente de messages utilisant l’API Kubernetes.

Suivez les étapes ci-dessous pour installer et utiliser ACK afin de former, de régler et de déployer des modèles d'apprentissage automatique avec Amazon SageMaker AI.

**Topics**
+ [Installer des opérateurs d' SageMaker IA pour Kubernetes](#kubernetes-sagemaker-operators-ack-install)
+ [Utiliser des opérateurs d' SageMaker IA pour Kubernetes](#kubernetes-sagemaker-operators-ack-use)
+ [Référence](#kubernetes-sagemaker-operators-ack-reference)

## Installer des opérateurs d' SageMaker IA pour Kubernetes
<a name="kubernetes-sagemaker-operators-ack-install"></a>

Pour configurer la dernière version disponible d' SageMaker AI Operators for Kubernetes, consultez la section *Configuration* dans [Machine Learning with the ACK SageMaker ](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup) AI Controller.

## Utiliser des opérateurs d' SageMaker IA pour Kubernetes
<a name="kubernetes-sagemaker-operators-ack-use"></a>

Pour un didacticiel expliquant comment entraîner un modèle d'apprentissage automatique avec le contrôleur de service ACK pour Amazon SageMaker AI à l'aide d'Amazon EKS, consultez [Machine Learning avec le contrôleur ACK SageMaker AI](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/).

Pour un exemple de mise à l'échelle automatique, voir [Scale SageMaker AI Workloads with Application](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/) Auto Scaling

## Référence
<a name="kubernetes-sagemaker-operators-ack-reference"></a>

Consultez également le [ GitHub référentiel du contrôleur de service ACK pour Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller) ou consultez la documentation sur [les AWS contrôleurs pour Kubernetes](https://aws-controllers-k8s.github.io/community/docs/community/overview/). 

# Anciens opérateurs d' SageMaker IA pour Kubernetes
<a name="kubernetes-sagemaker-operators-end-of-support"></a>

Cette section est basée sur la version originale d'[SageMaker AI Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s).

**Important**  
Nous arrêtons le développement et le support technique de la version originale d'[ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master).  
Si vous utilisez actuellement la version `v1.2.2` ou une version inférieure d'[ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master), nous vous recommandons de migrer vos ressources vers le [contrôleur de service ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) pour Amazon. SageMaker Le contrôleur de service ACK est une nouvelle génération d' SageMaker opérateurs pour Kubernetes basés sur les [AWS contrôleurs pour Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
Pour en savoir plus sur les étapes de migration, consultez [Migrer les ressources vers la dernière version d'Operators](kubernetes-sagemaker-operators-migrate.md).  
Pour obtenir les réponses aux questions fréquemment posées concernant la fin du support de la version originale d' SageMaker Operators for Kubernetes, voir [Annonce de la fin du support de la version originale des opérateurs SageMaker AI pour Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

**Topics**
+ [Installer des opérateurs d' SageMaker IA pour Kubernetes](#kubernetes-sagemaker-operators-eos-install)
+ [Utilisez Amazon SageMaker AI Jobs](kubernetes-sagemaker-jobs.md)
+ [Migrer les ressources vers la dernière version d'Operators](kubernetes-sagemaker-operators-migrate.md)
+ [Annonce de la fin du support de la version originale des opérateurs SageMaker AI pour Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

## Installer des opérateurs d' SageMaker IA pour Kubernetes
<a name="kubernetes-sagemaker-operators-eos-install"></a>

Suivez les étapes ci-dessous pour installer et utiliser SageMaker AI Operators for Kubernetes afin de former, de régler et de déployer des modèles d'apprentissage automatique avec Amazon AI. SageMaker 

**Topics**
+ [Configuration IAM basée sur le rôle IAM et déploiement de l’opérateur](#iam-role-based-setup-and-operator-deployment)
+ [nettoyer des ressources ;](#cleanup-operator-resources)
+ [Supprimer les opérateurs](#delete-operators)
+ [Résolution des problèmes](#troubleshooting)
+ [Images et SMlogs dans chaque région](#images-and-smlogs-in-each-region)

### Configuration IAM basée sur le rôle IAM et déploiement de l’opérateur
<a name="iam-role-based-setup-and-operator-deployment"></a>

Les sections suivantes décrivent les étapes de configuration et de déploiement de la version originale de l’opérateur.

**Avertissement**  
**Rappel :** Les étapes suivantes n'installent pas la dernière version d' SageMaker AI Operators for Kubernetes. Pour installer les nouveaux opérateurs d' SageMaker IA basés sur ACK pour Kubernetes, consultez. [Les derniers opérateurs d' SageMaker IA pour Kubernetes](kubernetes-sagemaker-operators-ack.md)

#### Conditions préalables
<a name="prerequisites"></a>

Ce guide suppose que vous avez rempli les prérequis suivants : 
+ Installez les outils suivants sur la machine client utilisée pour accéder à votre cluster Kubernetes : 
  + [https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) version 1.13 ou ultérieure. Vous devez utiliser une version de `kubectl` différente au plus d'une version mineure par rapport à votre plan de contrôle de cluster Amazon EKS. Par exemple, un client `kubectl` 1.13 fonctionne avec des clusters Kubernetes 1.13 et 1.14. OpenID Connect (OIDC) n'est pas pris en charge dans les versions antérieures à 1.13. 
  + [https://github.com/weaveworks/eksctl](https://github.com/weaveworks/eksctl) version 0.7.0 ou ultérieure 
  + [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) version 1.16.232 ou ultérieure 
  + (facultatif) [Helm](https://helm.sh/docs/intro/install/) version 3.0 ou ultérieure 
  + [aws-iam-authenticator](https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html) 
+ Vous devez avoir des autorisations IAM de créer des rôles et d'attacher des politiques à des rôles.
+ Vous devez avoir créé un cluster Kubernetes sur lequel exécuter les opérateurs. Il doit s'agir de Kubernetes version 1.13 ou 1.14. Pour la création automatisée de cluster à l’aide de `eksctl`, consultez [Démarrer avec eksctl](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html). L'allocation d'un cluster prend de 20 à 30 minutes. 

#### Déploiement de la portée du cluster
<a name="cluster-scoped-deployment"></a>

Avant de pouvoir déployer votre opérateur à l'aide d'un rôle IAM, associez un fournisseur d'identité (IdP) OpenID Connect (OIDC) à votre rôle pour vous authentifier auprès du service IAM.

##### Création d'un fournisseur OIDC pour votre cluster
<a name="create-an-openid-connect-provider-for-your-cluster"></a>

Les instructions suivantes montrent comment créer et associer un fournisseur OIDC à votre cluster Amazon EKS.

1. Définissez les variables d'environnement `CLUSTER_NAME` et `AWS_REGION` locales comme suit :

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

1. Utilisez la commande suivante pour associer le fournisseur OIDC à votre cluster. Pour plus d’informations, consultez [Activation des rôles IAM pour les comptes de service sur votre 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
   ```

   Le résultat doit être similaire à ce qui suit : 

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

Maintenant que le cluster dispose d'un fournisseur d'identité OIDC, vous pouvez créer un rôle et ServiceAccount autoriser Kubernetes à assumer ce rôle.

##### Obtenir l’ID OIDC
<a name="get-the-oidc-id"></a>

Pour configurer le ServiceAccount, obtenez l'URL de l'émetteur OIDC à l'aide de la commande suivante :

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

La commande renvoie un URL telle que la suivante : 

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

Dans cette URL, la valeur `D48675832CA65BD10A532F597OIDCID` est l'ID OIDC. L'ID OIDC de votre cluster est différent. Vous avez besoin de cette valeur d'ID OIDC pour créer un rôle. 

 Si votre sortie est `None`, cela signifie que votre version client est ancienne. Pour contourner ce problème, exécutez la commande suivante : 

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

L'URL OIDC est renvoyée comme suit : 

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

##### Créer un rôle IAM
<a name="create-an-iam-role"></a>

1. Créez un fichier nommé `trust.json` et insérez le bloc de code de relation d'approbation suivant. Assurez-vous de remplacer tous les espaces réservés `<OIDC ID>`, `<AWS account number>` et `<EKS Cluster region>` par des valeurs correspondant à votre cluster. 

------
#### [ 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. Exécutez la commande suivante pour créer un rôle avec la relation d’approbation définie dans `trust.json`. Ce rôle permet au cluster Amazon EKS d'obtenir et d'actualiser les informations d'identification à partir d'IAM. 

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

   Le résultat doit être similaire à ce qui suit : 

   ```
   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/
   ```

    Notez l'`ROLE ARN` que vous transmettez à votre opérateur. 

##### Associer la AmazonSageMakerFullAccess politique au rôle
<a name="attach-the-amazonsagemakerfullaccess-policy-to-the-role"></a>

Pour donner au rôle l'accès à l' SageMaker IA, joignez la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)politique. Si vous souhaitez limiter les autorisations à l’opérateur, vous pouvez créer votre propre politique personnalisée et l’attacher. 

 Pour attacher `AmazonSageMakerFullAccess`, exécutez la commande suivante : 

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

Les Kubernetes ServiceAccount `sagemaker-k8s-operator-default` doivent disposer d'autorisations. `AmazonSageMakerFullAccess` Confirmez cette donnée lorsque vous installez l'opérateur. 

##### Déploiement de l'opérateur
<a name="deploy-the-operator"></a>

Lors du déploiement de votre opérateur, vous pouvez utiliser un fichier YAML ou les Charts de Helm. 

##### Déploiement de l'opérateur avec YAML
<a name="deploy-the-operator-using-yaml"></a>

Il s'agit du moyen le plus simple de déployer vos opérateurs. Procédez comme suit : 

1. Téléchargez le script du programme d'installation à l'aide de la commande suivante : 

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

1. Modifiez le fichier `installer.yaml` pour remplacer `eks.amazonaws.com/role-arn`. Remplacez le présent ARN par l'Amazon Resource Name (ARN) du rôle basé sur OIDC que vous avez créé. 

1. Utilisez la commande suivante pour déployer le cluster : 

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

##### Déploiement de l'opérateur à l'aide des Charts de Helm
<a name="deploy-the-operator-using-helm-charts"></a>

Utilisez le Chart de Helm fourni pour installer l'opérateur. 

1. Clonez le répertoire du programme d'installation Helm à l'aide de la commande suivante : 

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

1. Accédez au dossier `amazon-sagemaker-operator-for-k8s/hack/charts/installer`. Modifiez le fichier `rolebased/values.yaml`, qui inclut des paramètres de haut niveau pour le Chart. Remplacez le présent ARN du rôle par l'Amazon Resource Name (ARN) du rôle basé sur OIDC que vous avez créé. 

1. Installez le Chart de Helm à l’aide de la commande suivante : 

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

   Si vous décidez d'installer l'opérateur dans un autre espace de noms que celui spécifié, vous devez ajuster l'espace de noms défini dans le fichier `trust.json` du rôle IAM pour qu'ils correspondent. 

1. Après un instant, le Chart est installé avec un nom généré de manière aléatoire. Exécutez les commandes suivantes pour vérifier que l'installation a bien été effectuée : 

   ```
   helm ls
   ```

   Le résultat doit être similaire à ce qui suit : 

   ```
   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
   ```

##### Vérification du déploiement de l’opérateur
<a name="verify-the-operator-deployment"></a>

1. Vous devriez être en mesure de voir les définitions de ressources personnalisées de l' SageMaker IA (CRDs) pour chaque opérateur déployé sur votre cluster en exécutant la commande suivante : 

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

   Le résultat doit être similaire à ce qui suit : 

   ```
   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. Assurez-vous que le pod de l'opérateur fonctionne correctement. Utilisez la commande suivante afin de répertorier tous les pods : 

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

   Vous devez voir un pod nommé `sagemaker-k8s-operator-controller-manager-*****` dans l'espace de noms `sagemaker-k8s-operator-system` comme suit : 

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

#### Déploiement limité aux espaces de noms
<a name="namespace-scoped-deployment"></a>

Vous avez la possibilité d’installer votre opérateur dans la portée d’un espace de noms Kubernetes individuel. Dans ce mode, le contrôleur surveille et réconcilie les ressources avec l' SageMaker IA uniquement si les ressources sont créées dans cet espace de noms. Cela permet de contrôler plus finement quel contrôleur gère quelles ressources. Cela est utile pour effectuer un déploiement sur plusieurs AWS comptes ou pour contrôler quels utilisateurs ont accès à des tâches spécifiques. 

Ce guide explique comment installer un opérateur dans un espace de noms prédéfini particulier. Pour déployer un contrôleur dans un deuxième espace de noms, suivez le guide du début à la fin et modifiez l’espace de noms à chaque étape. 

##### Création d'un fournisseur OIDC pour votre cluster Amazon EKS
<a name="create-an-openid-connect-provider-for-your-eks-cluster"></a>

Les instructions suivantes montrent comment créer et associer un fournisseur OIDC à votre cluster Amazon EKS. 

1. Définissez les variables d'environnement `CLUSTER_NAME` et `AWS_REGION` locales comme suit : 

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

1. Utilisez la commande suivante pour associer le fournisseur OIDC à votre cluster. Pour plus d’informations, consultez [Activation des rôles IAM pour les comptes de service sur votre 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
   ```

   Le résultat doit être similaire à ce qui suit : 

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

Maintenant que le cluster dispose d'un fournisseur d'identité OIDC, créez un rôle et ServiceAccount autorisez Kubernetes à assumer ce rôle. 

##### Obtenir votre ID OIDC
<a name="get-your-oidc-id"></a>

Pour configurer le ServiceAccount, obtenez d'abord l'URL de l'émetteur d'OpenID Connect à l'aide de la commande suivante : 

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

La commande renvoie un URL telle que la suivante : 

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

Dans cette URL, la valeur D48675832 CA65 BD10 A532F597OIDCID est l'ID OIDC. L’ID OIDC de votre cluster est différent. Vous avez besoin de cette valeur d'ID OIDC pour créer un rôle. 

 Si votre sortie est `None`, cela signifie que votre version client est ancienne. Pour contourner ce problème, exécutez la commande suivante : 

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

L'URL OIDC est renvoyée comme suit : 

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

##### Création de votre rôle IAM
<a name="create-your-iam-role"></a>

1. Créez un fichier nommé `trust.json` et insérez le bloc de code de relation d'approbation suivant. Assurez-vous de remplacer tous les espaces réservés `<OIDC ID>`, `<AWS account number>`, `<EKS Cluster region>` et `<Namespace>` par des valeurs correspondant à votre cluster. Aux fins du présent guide, `my-namespace` est utilisé pour la valeur `<Namespace>`. 

------
#### [ 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. Exécutez la commande suivante pour créer un rôle avec la relation d’approbation définie dans `trust.json`. Ce rôle permet au cluster Amazon EKS d'obtenir et d'actualiser les informations d'identification à partir d'IAM. 

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

   Le résultat doit être similaire à ce qui suit : 

   ```
   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/
   ```

Notez l'`ROLE ARN`. Vous transmettez à votre opérateur. 

##### Associez la AmazonSageMakerFullAccess politique à votre rôle
<a name="attach-the-amazonsagemakerfullaccess-policy-to-your-role"></a>

Pour donner au rôle l'accès à l' SageMaker IA, joignez la [https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)politique. Si vous souhaitez limiter les autorisations à l’opérateur, vous pouvez créer votre propre politique personnalisée et l’attacher. 

 Pour attacher `AmazonSageMakerFullAccess`, exécutez la commande suivante : 

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

Les Kubernetes ServiceAccount `sagemaker-k8s-operator-default` doivent disposer d'autorisations. `AmazonSageMakerFullAccess` Confirmez cette donnée lorsque vous installez l'opérateur. 

##### Déploiement de l'opérateur dans votre espace de noms
<a name="deploy-the-operator-to-your-namespace"></a>

Lors du déploiement de votre opérateur, vous pouvez utiliser un fichier YAML ou les Charts de Helm. 

##### Déploiement de l'opérateur dans votre espace de noms en utilisant YAML
<a name="deploy-the-operator-to-your-namespace-using-yaml"></a>

Il existe deux parties pour le déploiement d'un opérateur dans la portée d'un espace de noms. Le premier est l'ensemble de CRDs ceux qui sont installés au niveau du cluster. Ces définitions de ressources ne doivent être installées qu'une seule fois par cluster Kubernetes. La deuxième partie concerne les autorisations de l'opérateur et le déploiement lui-même. 

 Si vous ne l'avez pas encore installé CRDs dans le cluster, appliquez le programme d'installation CRD YAML à l'aide de la commande suivante : 

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

Pour installer l'opérateur sur le cluster : 

1. Téléchargez le programme d'installation de l'opérateur YAML à l'aide de la commande suivante : 

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

1. Mettez à jour le programme d'installation YAML pour placer les ressources dans votre espace de noms spécifié à l'aide de la commande suivante : 

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

1. Modifiez le fichier `operator.yaml` pour placer des ressources dans votre `eks.amazonaws.com/role-arn`. Remplacez le présent ARN par l'Amazon Resource Name (ARN) du rôle basé sur OIDC que vous avez créé. 

1. Utilisez la commande suivante pour déployer le cluster : 

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

##### Déploiement de l'opérateur dans votre espace de noms à l'aide des Charts de Helm
<a name="deploy-the-operator-to-your-namespace-using-helm-charts"></a>

Deux parties sont requises pour le déploiement d'un opérateur dans la portée d'un espace de noms. Le premier est l'ensemble de CRDs ceux qui sont installés au niveau du cluster. Ces définitions de ressources ne doivent être installées qu'une seule fois par cluster Kubernetes. La deuxième partie concerne les autorisations de l'opérateur et le déploiement lui-même. Lorsque vous utilisez les Charts de Helm, vous devez d'abord créer l'espace de noms à l'aide de `kubectl`. 

1. Clonez le répertoire du programme d'installation Helm à l'aide de la commande suivante : 

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

1. Accédez au dossier `amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced`. Modifiez le fichier `rolebased/values.yaml`, qui inclut des paramètres de haut niveau pour le Chart. Remplacez le présent ARN du rôle par l'Amazon Resource Name (ARN) du rôle basé sur OIDC que vous avez créé. 

1. Installez le Chart de Helm à l’aide de la commande suivante : 

   ```
   helm install crds crd_chart/
   ```

1. Créez l'espace de noms requis et installez l'opérateur à l'aide de la commande suivante : 

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

1. Après un instant, le graphique est installé avec le nom `sagemaker-operator`. Exécutez les commandes suivantes pour vérifier que l'installation a bien été effectuée : 

   ```
   helm ls
   ```

   Le résultat doit être similaire à ce qui suit : 

   ```
   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
   ```

##### Vérifier le déploiement de l’opérateur dans votre espace de noms
<a name="verify-the-operator-deployment-to-your-namespace"></a>

1. Vous devriez être en mesure de voir les définitions de ressources personnalisées de l' SageMaker IA (CRDs) pour chaque opérateur déployé sur votre cluster en exécutant la commande suivante : 

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

   Le résultat doit être similaire à ce qui suit : 

   ```
   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. Assurez-vous que le pod de l'opérateur fonctionne correctement. Utilisez la commande suivante afin de répertorier tous les pods : 

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

   Vous devez voir un pod nommé `sagemaker-k8s-operator-controller-manager-*****` dans l’espace de noms `my-namespace` comme suit : 

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

#### Installez le `kubectl` plugin SageMaker AI Logs
<a name="install-the-amazon-sagemaker-logs-kubectl-plugin"></a>

 [Dans le cadre des opérateurs SageMaker AI pour Kubernetes, vous pouvez utiliser le `smlogs` plugin pour.](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/) `kubectl` Cela permet de diffuser CloudWatch les journaux de l' SageMaker IA. `kubectl` `kubectl`doit être installé sur votre [PATH](http://www.linfo.org/path_env_var.html). Les commandes suivantes placent le binaire dans le répertoire `sagemaker-k8s-bin` de votre répertoire de base et ajoutent ce répertoire à votre `PATH`. 

```
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
```

Utilisez la commande suivante pour vérifier que le plug-in `kubectl` est correctement installé : 

```
kubectl smlogs
```

Si le plug-in `kubectl` est installé correctement, votre sortie doit ressembler à ce qui suit : 

```
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.
```

### nettoyer des ressources ;
<a name="cleanup-operator-resources"></a>

Pour désinstaller l'opérateur de votre cluster, vous devez d'abord vous assurer de supprimer toutes les ressources SageMaker AI du cluster. Si vous ne le faites pas, l’opération de suppression de l’opérateur se bloque. Exécutez les commandes suivantes pour arrêter toutes les tâches : 

```
# 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
```

Vous devez voir des résultats similaires à ce qui suit : 

```
$ 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
```

Après avoir supprimé toutes les tâches d' SageMaker IA, consultez la section [Supprimer les opérateurs](#delete-operators) pour supprimer l'opérateur de votre cluster.

### Supprimer les opérateurs
<a name="delete-operators"></a>

#### Supprimer les opérateurs basés sur les clusters
<a name="delete-cluster-based-operators"></a>

##### Opérateurs installés à l’aide de YAML
<a name="operators-installed-using-yaml"></a>

Pour désinstaller l'opérateur de votre cluster, assurez-vous que toutes les ressources SageMaker AI ont été supprimées du cluster. Si vous ne le faites pas, l’opération de suppression de l’opérateur se bloque.

**Note**  
Avant de supprimer votre cluster, assurez-vous de supprimer toutes les ressources d' SageMaker IA du cluster. Pour plus d’informations, consultez [nettoyer des ressources ;](#cleanup-operator-resources).

Après avoir supprimé toutes les tâches d' SageMaker IA, utilisez `kubectl` pour supprimer l'opérateur du cluster :

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

Vous devez voir des résultats similaires à ce qui suit : 

```
$ 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
```

##### Opérateurs installés à l’aide des Charts de Helm
<a name="operators-installed-using-helm-charts"></a>

Pour supprimer l'opérateur CRDs, supprimez d'abord toutes les tâches en cours d'exécution. Supprimez ensuite le Chart de Helm utilisé pour déployer les opérateurs à l'aide des commandes suivantes : 

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

#### Supprimer les opérateurs basés sur des espaces de noms
<a name="delete-namespace-based-operators"></a>

##### Opérateurs installés avec YAML
<a name="operators-installed-with-yaml"></a>

Pour désinstaller l'opérateur de votre cluster, assurez-vous d'abord que toutes les ressources SageMaker AI ont été supprimées du cluster. Si vous ne le faites pas, l’opération de suppression de l’opérateur se bloque.

**Note**  
Avant de supprimer votre cluster, assurez-vous de supprimer toutes les ressources d' SageMaker IA du cluster. Pour plus d’informations, consultez [nettoyer des ressources ;](#cleanup-operator-resources).

Après avoir supprimé toutes les tâches d' SageMaker IA, `kubectl` utilisez-le pour supprimer d'abord l'opérateur de l'espace de noms, puis CRDs du cluster. Exécutez les commandes suivantes pour supprimer l’opérateur du cluster : 

```
# 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>
```

##### Opérateurs installés avec des Charts de Helm
<a name="operators-installed-with-helm-charts"></a>

Pour supprimer l'opérateur CRDs, supprimez d'abord toutes les tâches en cours d'exécution. Supprimez ensuite le Chart de Helm utilisé pour déployer les opérateurs à l’aide des commandes suivantes : 

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

### Résolution des problèmes
<a name="troubleshooting"></a>

#### Débogage d'une tâche ayant échoué
<a name="debugging-a-failed-job"></a>

Suivez ces étapes pour déboguer une tâche qui a échoué.
+ Vous pouvez vérifier le statut de la tâche en exécutant la commande suivante : 

  ```
  kubectl get <CRD Type> <job name>
  ```
+ Si le job a été créé dans SageMaker AI, vous pouvez utiliser la commande suivante pour voir le `STATUS` et le `SageMaker Job Name` : 

  ```
  kubectl get <crd type> <job name>
  ```
+ Vous pouvez utiliser `smlogs` pour trouver la cause du problème à l’aide de la commande suivante : 

  ```
  kubectl smlogs <crd type> <job name>
  ```
+  Vous pouvez également utiliser la commande `describe` pour obtenir plus de détails sur la tâche à l'aide de la commande suivante. Le résultat a un champ `additional` qui contient plus d’informations sur le statut de la tâche. 

  ```
  kubectl describe <crd type> <job name>
  ```
+ Si la tâche n'a pas été créée dans SageMaker AI, utilisez les journaux du module de l'opérateur pour trouver la cause du problème comme suit : 

  ```
  $ 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
  ```

#### Suppression d’une CRD de l’opérateur
<a name="deleting-an-operator-crd"></a>

Si la suppression d'une tâche ne fonctionne pas, vérifiez si l'opérateur est en cours d'exécution. Si l'opérateur n'est pas en cours d'exécution, vous devez supprimer le finalisateur en procédant comme suit : 

1. Dans un nouveau terminal, ouvrez la tâche dans un éditeur en utilisant `kubectl edit` comme suit : 

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

1. Modifiez la tâche pour supprimer le finalisateur en supprimant les deux lignes suivantes du fichier. Enregistrez le fichier et la tâche est supprimée. 

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

### Images et SMlogs dans chaque région
<a name="images-and-smlogs-in-each-region"></a>

Le tableau suivant répertorie les images d'opérateurs disponibles SMLogs dans chaque région. 


|  Région  |  Image du contrôleur  |  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)  | 

# Utilisez Amazon SageMaker AI Jobs
<a name="kubernetes-sagemaker-jobs"></a>

Cette section est basée sur la version originale d'[SageMaker AI Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s).

**Important**  
Nous arrêtons le développement et le support technique de la version originale d'[ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master).  
Si vous utilisez actuellement la version `v1.2.2` ou une version inférieure d'[ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master), nous vous recommandons de migrer vos ressources vers le [contrôleur de service ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) pour Amazon. SageMaker Le contrôleur de service ACK est une nouvelle génération d' SageMaker opérateurs pour Kubernetes basés sur les [AWS contrôleurs pour Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
Pour en savoir plus sur les étapes de migration, consultez [Migrer les ressources vers la dernière version d'Operators](kubernetes-sagemaker-operators-migrate.md).  
Pour obtenir les réponses aux questions fréquemment posées concernant la fin du support de la version originale d' SageMaker Operators for Kubernetes, voir [Annonce de la fin du support de la version originale des opérateurs SageMaker AI pour Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Pour exécuter une tâche Amazon SageMaker AI à l'aide des opérateurs pour Kubernetes, vous pouvez appliquer un fichier YAML ou utiliser les Helm Charts fournis. 

Tous les exemples de tâches d’opérateur dans les tutoriels suivants utilisent des exemples de données provenant d’un jeu de données MNIST public. Pour exécuter ces exemples, téléchargez le jeu de données dans votre compartiment Amazon S3. Vous pouvez trouver le jeu de données dans la section [Download the MNIST Dataset](https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-preprocess-data-pull-data.html). 

**Topics**
+ [L' TrainingJob opérateur](#trainingjob-operator)
+ [L' HyperParameterTuningJob opérateur](#hyperparametertuningjobs-operator)
+ [L' BatchTransformJob opérateur](#batchtransformjobs-operator)
+ [L' HostingDeployment opérateur](#hosting-deployment-operator)
+ [L' ProcessingJob opérateur](#kubernetes-processing-job-operator)
+ [HostingAutoscalingPolicy (HAP) Opérateur](#kubernetes-hap-operator)

## L' TrainingJob opérateur
<a name="trainingjob-operator"></a>

Les opérateurs de tâches de formation concilient les spécifications du poste de formation que vous avez spécifiées avec l' SageMaker IA en les lançant pour vous dans SageMaker AI. Pour en savoir plus sur les métiers de SageMaker formation, consultez la [documentation de CreateTrainingJob l'API SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTrainingJob.html) AI. 

**Topics**
+ [Créez un à TrainingJob l'aide d'un fichier YAML](#create-a-trainingjob-using-a-simple-yaml-file)
+ [Création d'un graphique TrainingJob à l'aide d'un helm](#create-a-trainingjob-using-a-helm-chart)
+ [Liste TrainingJobs](#list-training-jobs)
+ [Décrivez un TrainingJob](#describe-a-training-job)
+ [Afficher les journaux de TrainingJobs](#view-logs-from-training-jobs)
+ [Supprimer TrainingJobs](#delete-training-jobs)

### Créez un à TrainingJob l'aide d'un fichier YAML
<a name="create-a-trainingjob-using-a-simple-yaml-file"></a>

1. Téléchargez l’exemple de fichier YAML pour l’entraînement à l’aide de la commande suivante : 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-trainingjob.yaml
   ```

1. Modifiez le `xgboost-mnist-trainingjob.yaml` fichier pour remplacer le `roleArn` paramètre par votre `<sagemaker-execution-role>` compartiment Amazon S3 et `outputPath` par le compartiment Amazon S3 auquel le rôle d'exécution SageMaker AI a accès en écriture. Ils `roleArn` doivent disposer d'autorisations pour que l' SageMaker IA puisse accéder à Amazon S3 CloudWatch, Amazon et à d'autres services en votre nom. Pour plus d'informations sur la création d'une SageMaker IA ExecutionRole, consultez la section [Rôles de l'SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms). Appliquez le fichier YAML à l’aide de la commande suivante : 

   ```
   kubectl apply -f xgboost-mnist-trainingjob.yaml
   ```

### Création d'un graphique TrainingJob à l'aide d'un helm
<a name="create-a-trainingjob-using-a-helm-chart"></a>

Vous pouvez utiliser Helm Charts pour exécuter TrainingJobs. 

1. Clonez le GitHub dépôt pour obtenir le code source à l'aide de la commande suivante : 

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

1. Accédez au dossier `amazon-sagemaker-operator-for-k8s/hack/charts/training-jobs/` et modifiez le fichier `values.yaml` pour remplacer des valeurs comme `rolearn` et `outputpath` par des valeurs qui correspondent à votre compte. Le ROLearn doit disposer d'autorisations pour que l' SageMaker IA puisse accéder à Amazon S3 CloudWatch, Amazon et à d'autres services en votre nom. Pour plus d'informations sur la création d'une SageMaker IA ExecutionRole, consultez la section [Rôles de l'SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms). 

#### Créez le TrainingJob
<a name="create-the-training-job"></a>

Lorsque les rôles et les compartiments Amazon S3 ont été remplacés par des valeurs appropriées dans `values.yaml`, vous pouvez créer une tâche d'entraînement à l'aide de la commande suivante : 

```
helm install . --generate-name
```

Le résultat doit être similaire à ce qui suit : 

```
NAME: chart-12345678
LAST DEPLOYED: Wed Nov 20 23:35:49 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thanks for installing the sagemaker-k8s-trainingjob.
```

#### Vérification de votre Chart de Helm d'entraînement
<a name="verify-your-training-helm-chart"></a>

Pour vérifier que le Chart de Helm a bien été créé, exécutez : 

```
helm ls
```

Le résultat doit être similaire à ce qui suit : 

```
NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
chart-12345678        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
rolebased-12345678    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
```

`helm install` crée une ressource Kubernetes `TrainingJob`. L'opérateur lance la tâche de formation proprement dite en SageMaker IA et met à jour la ressource `TrainingJob` Kubernetes pour refléter le statut de la tâche en IA. SageMaker Vous devez payer des frais pour les ressources d' SageMaker IA utilisées pendant la durée de votre travail. Vous ne payez pas de frais une fois votre tâche terminée ou arrêtée. 

**Remarque** : SageMaker L'IA ne vous permet pas de mettre à jour une tâche d'entraînement en cours d'exécution. Vous ne pouvez pas modifier un paramètre et réappliquer le fichier de configuration. Modifiez le nom des métadonnées ou supprimez la tâche existante et créez-en une autre. À l'instar des formations existantes, les opérateurs de tâches, comme TFJob dans Kubeflow, ne `update` sont pas pris en charge. 

### Liste TrainingJobs
<a name="list-training-jobs"></a>

Utilisez la commande suivante pour répertorier toutes les tâches créées à l'aide de l'opérateur Kubernetes : 

```
kubectl get TrainingJob
```

Le résultat pour toutes les tâches répertoriées doit ressembler à ce qui suit : 

```
kubectl get trainingjobs
NAME                        STATUS       SECONDARY-STATUS   CREATION-TIME          SAGEMAKER-JOB-NAME
xgboost-mnist-from-for-s3   InProgress   Starting           2019-11-20T23:42:35Z   xgboost-mnist-from-for-s3-examplef11eab94e0ed4671d5a8f
```

Une tâche d’entraînement reste répertoriée après son achèvement ou son échec. Vous pouvez supprimer une tâche `TrainingJob` de la liste en suivant la procédure [Supprimer TrainingJobs](#delete-training-jobs). Les tâches terminées ou interrompues ne sont pas facturées pour les ressources de l' SageMaker IA. 

#### TrainingJob valeurs de statut
<a name="training-job-status-values"></a>

Le champ `STATUS` peut comporter l’une des valeurs suivantes : 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Ces statuts proviennent directement de la [documentation officielle de l'API SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-TrainingJobStatus) AI. 

En plus du statut officiel d' SageMaker IA, il est possible de `STATUS` l'être`SynchronizingK8sJobWithSageMaker`. Cela signifie que l'opérateur n'a pas encore traité la tâche. 

#### Valeurs du statut secondaire
<a name="secondary-status-values"></a>

Les statuts secondaires proviennent directement de la [documentation officielle de l'API SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-SecondaryStatus) AI. Ils contiennent des informations plus détaillées sur le statut de la tâche. 

### Décrivez un TrainingJob
<a name="describe-a-training-job"></a>

Vous pouvez obtenir plus d'informations sur la tâche d'entraînement en utilisant la commande `describe` `kubectl`. Elle est généralement utilisée pour déboguer un problème ou vérifier les paramètres d'une tâche d'entraînement. Pour obtenir des informations sur votre tâche d'entraînement, utilisez la commande suivante : 

```
kubectl describe trainingjob xgboost-mnist-from-for-s3
```

Le résultat de votre tâche d'entraînement doit ressembler à ce qui suit : 

```
Name:         xgboost-mnist-from-for-s3
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  sagemaker.aws.amazon.com/v1
Kind:         TrainingJob
Metadata:
  Creation Timestamp:  2019-11-20T23:42:35Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  23119
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/trainingjobs/xgboost-mnist-from-for-s3
  UID:               6d7uiui-0bef-11ea-b94e-0ed467example
Spec:
  Algorithm Specification:
    Training Image:       8256416981234.dkr.ecr.us-east-2.amazonaws.com/xgboost:1
    Training Input Mode:  File
  Hyper Parameters:
    Name:   eta
    Value:  0.2
    Name:   gamma
    Value:  4
    Name:   max_depth
    Value:  5
    Name:   min_child_weight
    Value:  6
    Name:   num_class
    Value:  10
    Name:   num_round
    Value:  10
    Name:   objective
    Value:  multi:softmax
    Name:   silent
    Value:  0
  Input Data Config:
    Channel Name:      train
    Compression Type:  None
    Content Type:      text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Distribution Type:  FullyReplicated
        S 3 Data Type:               S3Prefix
        S 3 Uri:                     https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/
    Channel Name:                    validation
    Compression Type:                None
    Content Type:                    text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Distribution Type:  FullyReplicated
        S 3 Data Type:               S3Prefix
        S 3 Uri:                     https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/
  Output Data Config:
    S 3 Output Path:  s3://amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost/
  Region:             us-east-2
  Resource Config:
    Instance Count:     1
    Instance Type:      ml.m4.xlarge
    Volume Size In GB:  5
  Role Arn:             arn:aws:iam::12345678910:role/service-role/AmazonSageMaker-ExecutionRole
  Stopping Condition:
    Max Runtime In Seconds:  86400
  Training Job Name:         xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0example
Status:
  Cloud Watch Log URL:           https://us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logStream:group=/aws/sagemaker/TrainingJobs;prefix=<example>;streamFilter=typeLogStreamPrefix
  Last Check Time:               2019-11-20T23:44:29Z
  Sage Maker Training Job Name:  xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94eexample
  Secondary Status:              Downloading
  Training Job Status:           InProgress
Events:                          <none>
```

### Afficher les journaux de TrainingJobs
<a name="view-logs-from-training-jobs"></a>

Utilisez la commande suivante pour consulter les journaux depuis la tâche d'entraînement `kmeans-mnist` : 

```
kubectl smlogs trainingjob xgboost-mnist-from-for-s3
```

Votre sortie doit ressembler à ce qui suit : Les journaux des instances sont classés par ordre chronologique. 

```
"xgboost-mnist-from-for-s3" has SageMaker TrainingJobName "xgboost-mnist-from-for-s3-123456789" in region "us-east-2", status "InProgress" and secondary status "Starting"
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC Arguments: train
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Running standalone xgboost training.
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] File size need to be processed in the node: 1122.95mb. Available memory size in the node: 8586.0mb
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Determined delimiter of CSV input is ','
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [23:45:22] S3DistributionType set as FullyReplicated
```

### Supprimer TrainingJobs
<a name="delete-training-jobs"></a>

Utilisez la commande suivante pour arrêter une tâche de formation sur Amazon SageMaker AI : 

```
kubectl delete trainingjob xgboost-mnist-from-for-s3
```

Cette commande supprime la tâche de SageMaker formation de Kubernetes. Cette commande renvoie le résultat suivant : 

```
trainingjob.sagemaker.aws.amazon.com "xgboost-mnist-from-for-s3" deleted
```

Si la tâche est toujours en cours sur l' SageMaker IA, elle s'arrête. Aucuns frais ne vous seront facturés pour les ressources d' SageMaker IA une fois votre travail arrêté ou terminé. 

**Remarque** : SageMaker L'IA ne supprime pas les tâches de formation. Les tâches interrompues continuent de s'afficher sur la console SageMaker AI. La `delete` commande prend environ 2 minutes pour nettoyer les ressources de l' SageMaker IA. 

## L' HyperParameterTuningJob opérateur
<a name="hyperparametertuningjobs-operator"></a>

Les opérateurs de tâches de réglage des hyperparamètres concilient la spécification de tâche de réglage des hyperparamètres que vous avez spécifiée avec l' SageMaker IA en les lançant dans AI. SageMaker Pour en savoir plus sur les tâches de réglage des hyperparamètres de l' SageMaker IA, consultez la [documentation de l'CreateHyperParameterTuningJob API SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateHyperParameterTuningJob.html) AI. 

**Topics**
+ [Créez un à HyperparameterTuningJob l'aide d'un fichier YAML](#create-a-hyperparametertuningjob-using-a-simple-yaml-file)
+ [Créer un graphique HyperparameterTuningJob à l'aide d'un Helm](#create-a-hyperparametertuningjob-using-a-helm-chart)
+ [Liste HyperparameterTuningJobs](#list-hyperparameter-tuning-jobs)
+ [Décrivez un HyperparameterTuningJob](#describe-a-hyperparameter-tuning-job)
+ [Afficher les journaux de HyperparameterTuningJobs](#view-logs-from-hyperparametertuning-jobs)
+ [Supprimer un HyperparameterTuningJob](#delete-hyperparametertuning-jobs)

### Créez un à HyperparameterTuningJob l'aide d'un fichier YAML
<a name="create-a-hyperparametertuningjob-using-a-simple-yaml-file"></a>

1. Téléchargez l'exemple de fichier YAML pour la tâche de réglage d'hyperparamètre à l'aide de la commande suivante : 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hpo.yaml
   ```

1. Modifiez le fichier `xgboost-mnist-hpo.yaml` pour remplacer le paramètre `roleArn` par votre `sagemaker-execution-role`. Pour que la tâche de réglage d'hyperparamètre aboutisse, vous devez également modifier les valeurs `s3InputPath` et `s3OutputPath` qui correspondent à votre compte. Appliquez le fichier YAML de mises à jour à l'aide de la commande suivante : 

   ```
   kubectl apply -f xgboost-mnist-hpo.yaml
   ```

### Créer un graphique HyperparameterTuningJob à l'aide d'un Helm
<a name="create-a-hyperparametertuningjob-using-a-helm-chart"></a>

Vous pouvez utiliser les Charts de Helm pour exécuter des tâches de réglage d'hyperparamètre. 

1. Clonez le GitHub dépôt pour obtenir le code source à l'aide de la commande suivante : 

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

1. Accédez au dossier `amazon-sagemaker-operator-for-k8s/hack/charts/hyperparameter-tuning-jobs/`. 

1. Modifiez le fichier `values.yaml` pour remplacer le paramètre `roleArn` par votre `sagemaker-execution-role`. Pour que la tâche de réglage d'hyperparamètre aboutisse, vous devez également modifier les valeurs `s3InputPath` et `s3OutputPath` qui correspondent à votre compte. 

#### Créez le HyperparameterTuningJob
<a name="create-the-hpo-job"></a>

Lorsque les rôles et les chemins Amazon S3 ont été remplacés par des valeurs appropriées dans `values.yaml`, vous pouvez créer une tâche de réglage d'hyperparamètre à l'aide de la commande suivante : 

```
helm install . --generate-name
```

Votre sortie doit ressembler à ce qui suit : 

```
NAME: chart-1574292948
LAST DEPLOYED: Wed Nov 20 23:35:49 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thanks for installing the sagemaker-k8s-hyperparametertuningjob.
```

#### Vérification de l'installation du Chart
<a name="verify-chart-installation"></a>

Pour vérifier que le Chart de Helm a bien été créé, exécutez la commande suivante : 

```
helm ls
```

Le résultat doit être similaire à ce qui suit : 

```
NAME                    NAMESPACE       REVISION        UPDATED
chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-hyperparametertuningjob-0.1.0                               STATUS          CHART                           APP VERSION
chart-1574292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
rolebased-1574291698    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
```

`helm install` crée une ressource Kubernetes `HyperParameterTuningJob`. L'opérateur lance la tâche d'optimisation des hyperparamètres dans l' SageMaker IA et met à jour la ressource `HyperParameterTuningJob` Kubernetes pour refléter le statut de la tâche dans l'IA. SageMaker Vous devez payer des frais pour les ressources d' SageMaker IA utilisées pendant la durée de votre travail. Vous ne payez pas de frais une fois votre tâche terminée ou arrêtée. 

**Remarque** : SageMaker L'IA ne vous permet pas de mettre à jour une tâche de réglage d'hyperparamètres en cours d'exécution. Vous ne pouvez pas modifier un paramètre et réappliquer le fichier de configuration. Vous devez modifier le nom des métadonnées ou supprimer la tâche existante et en créer une autre. À l’instar des opérateurs de tâche d’entraînement existants tels que `TFJob` dans Kubeflow, `update` n’est pas pris en charge. 

### Liste HyperparameterTuningJobs
<a name="list-hyperparameter-tuning-jobs"></a>

Utilisez la commande suivante pour répertorier toutes les tâches créées à l'aide de l'opérateur Kubernetes : 

```
kubectl get hyperparametertuningjob
```

Le résultat doit être similaire à ce qui suit : 

```
NAME         STATUS      CREATION-TIME          COMPLETED   INPROGRESS   ERRORS   STOPPED   BEST-TRAINING-JOB                               SAGEMAKER-JOB-NAME
xgboost-mnist-hpo   Completed   2019-10-17T01:15:52Z   10          0            0        0         xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a123   xgboostha92f5e3cf07b11e9bf6c123
```

Une tâche de réglage d’hyperparamètre reste répertoriée après son achèvement ou son échec. Vous pouvez supprimer une tâche `hyperparametertuningjob` de la liste en suivant la procédure [Supprimer un HyperparameterTuningJob](#delete-hyperparametertuning-jobs). Les tâches terminées ou interrompues ne sont pas facturées pour les ressources de l' SageMaker IA.

#### Valeurs de statut de tâche de réglage des hyperparamètres
<a name="hyperparameter-tuning-job-status-values"></a>

Le champ `STATUS` peut comporter l'une des valeurs suivantes : 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Ces statuts proviennent directement de la [documentation officielle de l'API SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus) AI. 

En plus du statut officiel d' SageMaker IA, il est possible de `STATUS` l'être`SynchronizingK8sJobWithSageMaker`. Cela signifie que l’opérateur n’a pas encore traité la tâche. 

#### Compteurs de statut
<a name="status-counters"></a>

Le résultat a plusieurs compteurs, comme `COMPLETED` et `INPROGRESS`. Il s'agit du nombre de tâches d'entraînement terminées et en cours, respectivement. Pour plus d'informations sur la façon dont ils sont déterminés, consultez [TrainingJobStatusCounters](https://docs.aws.amazon.com/sagemaker/latest/dg/API_TrainingJobStatusCounters.html)la documentation de l' SageMaker API. 

#### Meilleur TrainingJob
<a name="best-training-job"></a>

Cette colonne contient le nom de la `TrainingJob` qui optimisait le mieux la métrique sélectionnée. 

Pour afficher un résumé des hyperparamètres réglés, exécutez : 

```
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
```

Pour afficher des informations détaillées sur les `TrainingJob`, exécutez : 

```
kubectl describe trainingjobs <job name>
```

#### Engendré TrainingJobs
<a name="spawned-training-jobs"></a>

Vous pouvez également suivre les 10 tâches d'entraînement à Kubernetes démarrées par `HyperparameterTuningJob` en exécutant la commande suivante : 

```
kubectl get trainingjobs
```

### Décrivez un HyperparameterTuningJob
<a name="describe-a-hyperparameter-tuning-job"></a>

Vous pouvez obtenir des détails de débogage à l’aide de la commande `describe` `kubectl`.

```
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
```

Outre les informations relatives à la tâche de réglage, l'opérateur SageMaker AI pour Kubernetes présente également la [meilleure tâche de formation trouvée par la tâche](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-monitor.html#automatic-model-tuning-best-training-job) de réglage des hyperparamètres dans la sortie, comme suit : `describe` 

```
Name:         xgboost-mnist-hpo
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HyperparameterTuningJob","metadata":{"annotations":{},"name":"xgboost-mnist-hpo","namespace":...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         HyperparameterTuningJob
Metadata:
  Creation Timestamp:  2019-10-17T01:15:52Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  8167
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hyperparametertuningjobs/xgboost-mnist-hpo
  UID:               a92f5e3c-f07b-11e9-bf6c-06d6f303uidu
Spec:
  Hyper Parameter Tuning Job Config:
    Hyper Parameter Tuning Job Objective:
      Metric Name:  validation:error
      Type:         Minimize
    Parameter Ranges:
      Integer Parameter Ranges:
        Max Value:     20
        Min Value:     10
        Name:          num_round
        Scaling Type:  Linear
    Resource Limits:
      Max Number Of Training Jobs:     10
      Max Parallel Training Jobs:      10
    Strategy:                          Bayesian
    Training Job Early Stopping Type:  Off
  Hyper Parameter Tuning Job Name:     xgboostha92f5e3cf07b11e9bf6c06d6
  Region:                              us-east-2
  Training Job Definition:
    Algorithm Specification:
      Training Image:       12345678910.dkr.ecr.us-east-2.amazonaws.com/xgboost:1
      Training Input Mode:  File
    Input Data Config:
      Channel Name:  train
      Content Type:  text/csv
      Data Source:
        s3DataSource:
          s3DataDistributionType:  FullyReplicated
          s3DataType:              S3Prefix
          s3Uri:                   https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/
      Channel Name:                validation
      Content Type:                text/csv
      Data Source:
        s3DataSource:
          s3DataDistributionType:  FullyReplicated
          s3DataType:              S3Prefix
          s3Uri:                   https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/
    Output Data Config:
      s3OutputPath:  https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost
    Resource Config:
      Instance Count:     1
      Instance Type:      ml.m4.xlarge
      Volume Size In GB:  5
    Role Arn:             arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
    Static Hyper Parameters:
      Name:   base_score
      Value:  0.5
      Name:   booster
      Value:  gbtree
      Name:   csv_weights
      Value:  0
      Name:   dsplit
      Value:  row
      Name:   grow_policy
      Value:  depthwise
      Name:   lambda_bias
      Value:  0.0
      Name:   max_bin
      Value:  256
      Name:   max_leaves
      Value:  0
      Name:   normalize_type
      Value:  tree
      Name:   objective
      Value:  reg:linear
      Name:   one_drop
      Value:  0
      Name:   prob_buffer_row
      Value:  1.0
      Name:   process_type
      Value:  default
      Name:   rate_drop
      Value:  0.0
      Name:   refresh_leaf
      Value:  1
      Name:   sample_type
      Value:  uniform
      Name:   scale_pos_weight
      Value:  1.0
      Name:   silent
      Value:  0
      Name:   sketch_eps
      Value:  0.03
      Name:   skip_drop
      Value:  0.0
      Name:   tree_method
      Value:  auto
      Name:   tweedie_variance_power
      Value:  1.5
    Stopping Condition:
      Max Runtime In Seconds:  86400
Status:
  Best Training Job:
    Creation Time:  2019-10-17T01:16:14Z
    Final Hyper Parameter Tuning Job Objective Metric:
      Metric Name:        validation:error
      Value:
    Objective Status:     Succeeded
    Training End Time:    2019-10-17T01:20:24Z
    Training Job Arn:     arn:aws:sagemaker:us-east-2:123456789012:training-job/xgboostha92f5e3cf07b11e9bf6c06d6-009-4sample
    Training Job Name:    xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a3059
    Training Job Status:  Completed
    Training Start Time:  2019-10-17T01:18:35Z
    Tuned Hyper Parameters:
      Name:                                    num_round
      Value:                                   18
  Hyper Parameter Tuning Job Status:           Completed
  Last Check Time:                             2019-10-17T01:21:01Z
  Sage Maker Hyper Parameter Tuning Job Name:  xgboostha92f5e3cf07b11e9bf6c06d6
  Training Job Status Counters:
    Completed:            10
    In Progress:          0
    Non Retryable Error:  0
    Retryable Error:      0
    Stopped:              0
    Total Error:          0
Events:                   <none>
```

### Afficher les journaux de HyperparameterTuningJobs
<a name="view-logs-from-hyperparametertuning-jobs"></a>

Les tâches de réglage d'hyperparamètre n'ont pas de journaux, mais toutes les tâches d'entraînement qu'ils démarrent ont des journaux. Ces journaux sont accessibles comme s’il s’agissait d’une tâche d’entraînement normale. Pour de plus amples informations, veuillez consulter [Afficher les journaux de TrainingJobs](#view-logs-from-training-jobs).

### Supprimer un HyperparameterTuningJob
<a name="delete-hyperparametertuning-jobs"></a>

Utilisez la commande suivante pour arrêter une tâche d'hyperparamètre dans SageMaker AI. 

```
kubectl delete hyperparametertuningjob xgboost-mnist-hpo
```

Cette commande supprime la tâche de réglage des hyperparamètres et les tâches de formation associées de votre cluster Kubernetes et les arrête dans AI. SageMaker Les tâches interrompues ou terminées ne sont pas facturées pour les ressources d' SageMaker IA. SageMaker L'IA ne supprime pas les tâches de réglage des hyperparamètres. Les tâches interrompues continuent de s'afficher sur la console SageMaker AI. 

Le résultat doit être similaire à ce qui suit : 

```
hyperparametertuningjob.sagemaker.aws.amazon.com "xgboost-mnist-hpo" deleted
```

**Remarque** : La commande de suppression prend environ 2 minutes pour nettoyer les ressources de l' SageMaker IA. 

## L' BatchTransformJob opérateur
<a name="batchtransformjobs-operator"></a>

Les opérateurs de tâches de transformation par lots concilient les spécifications de travail de transformation par lots que vous avez spécifiées avec l' SageMaker IA en les lançant dans SageMaker AI. Vous pouvez en savoir plus sur le travail de transformation par lots SageMaker AI dans la [documentation de CreateTransformJob l'API SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTransformJob.html) AI. 

**Topics**
+ [Créer un à BatchTransformJob l'aide d'un fichier YAML](#create-a-batchtransformjob-using-a-simple-yaml-file)
+ [Créer un graphique BatchTransformJob à l'aide d'un Helm](#create-a-batchtransformjob-using-a-helm-chart)
+ [Liste BatchTransformJobs](#list-batch-transform-jobs)
+ [Décrivez un BatchTransformJob](#describe-a-batch-transform-job)
+ [Afficher les journaux de BatchTransformJobs](#view-logs-from-batch-transform-jobs)
+ [Supprimer un BatchTransformJob](#delete-a-batch-transform-job)

### Créer un à BatchTransformJob l'aide d'un fichier YAML
<a name="create-a-batchtransformjob-using-a-simple-yaml-file"></a>

1. Téléchargez l’exemple de fichier YAML pour la tâche de transformation par lots à l’aide de la commande suivante : 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-batchtransform.yaml
   ```

1. Modifiez le fichier `xgboost-mnist-batchtransform.yaml` pour modifier les paramètres nécessaires afin de les `inputdataconfig` remplacer par vos données d'entrée et `s3OutputPath` par vos compartiments Amazon S3 auxquels le rôle d'exécution SageMaker AI a accès en écriture. 

1. Appliquez le fichier YAML à l’aide de la commande suivante : 

   ```
   kubectl apply -f xgboost-mnist-batchtransform.yaml
   ```

### Créer un graphique BatchTransformJob à l'aide d'un Helm
<a name="create-a-batchtransformjob-using-a-helm-chart"></a>

Vous pouvez utiliser les Charts de Helm pour exécuter des tâches de transformation par lots. 

#### Obtenir le répertoire du programme d'installation de Helm
<a name="get-the-helm-installer-directory"></a>

Clonez le GitHub dépôt pour obtenir le code source à l'aide de la commande suivante : 

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

#### Configuration du Chart de Helm
<a name="configure-the-helm-chart"></a>

Accédez au dossier `amazon-sagemaker-operator-for-k8s/hack/charts/batch-transform-jobs/`. 

Modifiez le `values.yaml` fichier pour le `inputdataconfig` remplacer par vos données d'entrée et OutputPath par vos compartiments S3 auxquels le rôle d'exécution SageMaker AI a accès en écriture. 

#### Créez un BatchTransformJob
<a name="create-a-batch-transform-job"></a>

1. Utilisez la commande suivante pour créer une tâche de transformation par lots : 

   ```
   helm install . --generate-name
   ```

   Le résultat doit être similaire à ce qui suit : 

   ```
   NAME: chart-1574292948
   LAST DEPLOYED: Wed Nov 20 23:35:49 2019
   NAMESPACE: default
   STATUS: deployed
   REVISION: 1
   TEST SUITE: None
   NOTES:
   Thanks for installing the sagemaker-k8s-batch-transform-job.
   ```

1. Pour vérifier que le Chart de Helm a bien été créé, exécutez la commande suivante : 

   ```
   helm ls
   NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
   chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-batchtransformjob-0.1.0
   chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-hyperparametertuningjob-0.1.0
   chart-1574292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
   rolebased-1574291698    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
   ```

   Cette commande crée une ressource Kubernetes `BatchTransformJob`. L'opérateur lance la tâche de transformation proprement dite dans l' SageMaker IA et met à jour la ressource `BatchTransformJob` Kubernetes pour refléter le statut de la tâche dans l'IA. SageMaker Vous devez payer des frais pour les ressources d' SageMaker IA utilisées pendant la durée de votre travail. Vous ne payez pas de frais une fois votre tâche terminée ou arrêtée. 

**Remarque** : SageMaker L'IA ne vous permet pas de mettre à jour une tâche de transformation par lots en cours d'exécution. Vous ne pouvez pas modifier un paramètre et réappliquer le fichier de configuration. Vous devez modifier le nom des métadonnées ou supprimer la tâche existante et en créer une autre. À l’instar des opérateurs de tâche d’entraînement existants tels que `TFJob` dans Kubeflow, `update` n’est pas pris en charge. 

### Liste BatchTransformJobs
<a name="list-batch-transform-jobs"></a>

Utilisez la commande suivante pour répertorier toutes les tâches créées à l'aide de l'opérateur Kubernetes : 

```
kubectl get batchtransformjob
```

Le résultat doit être similaire à ce qui suit : 

```
NAME                                STATUS      CREATION-TIME          SAGEMAKER-JOB-NAME
xgboost-mnist-batch-transform       Completed   2019-11-18T03:44:00Z   xgboost-mnist-a88fb19809b511eaac440aa8axgboost
```

Une tâche de transformation par lots reste répertoriée après son achèvement ou son échec. Vous pouvez supprimer une tâche `hyperparametertuningjob` de la liste en suivant la procédure [Supprimer un BatchTransformJob](#delete-a-batch-transform-job). Les tâches terminées ou interrompues ne sont pas facturées pour les ressources de l' SageMaker IA. 

#### Valeurs de statut de transformation par lots
<a name="batch-transform-status-values"></a>

Le champ `STATUS` peut comporter l’une des valeurs suivantes : 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Ces statuts proviennent directement de la [documentation officielle de l'API SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus) AI. 

En plus du statut officiel d' SageMaker IA, il est possible de `STATUS` l'être`SynchronizingK8sJobWithSageMaker`. Cela signifie que l’opérateur n’a pas encore traité la tâche.

### Décrivez un BatchTransformJob
<a name="describe-a-batch-transform-job"></a>

Vous pouvez obtenir des détails de débogage à l'aide de la commande `describe` `kubectl`.

```
kubectl describe batchtransformjob xgboost-mnist-batch-transform
```

Le résultat doit être similaire à ce qui suit : 

```
Name:         xgboost-mnist-batch-transform
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"BatchTransformJob","metadata":{"annotations":{},"name":"xgboost-mnist","namespace"...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         BatchTransformJob
Metadata:
  Creation Timestamp:  2019-11-18T03:44:00Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  21990924
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/batchtransformjobs/xgboost-mnist
  UID:               a88fb198-09b5-11ea-ac44-0aa8a9UIDNUM
Spec:
  Model Name:  TrainingJob-20190814SMJOb-IKEB
  Region:      us-east-1
  Transform Input:
    Content Type:  text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Type:  S3Prefix
        S 3 Uri:        s3://amzn-s3-demo-bucket/mnist_kmeans_example/input
  Transform Job Name:   xgboost-mnist-a88fb19809b511eaac440aa8a9SMJOB
  Transform Output:
    S 3 Output Path:  s3://amzn-s3-demo-bucket/mnist_kmeans_example/output
  Transform Resources:
    Instance Count:  1
    Instance Type:   ml.m4.xlarge
Status:
  Last Check Time:                2019-11-19T22:50:40Z
  Sage Maker Transform Job Name:  xgboost-mnist-a88fb19809b511eaac440aaSMJOB
  Transform Job Status:           Completed
Events:                           <none>
```

### Afficher les journaux de BatchTransformJobs
<a name="view-logs-from-batch-transform-jobs"></a>

Utilisez la commande suivante pour consulter les journaux depuis la tâche de transformation par lots `xgboost-mnist` : 

```
kubectl smlogs batchtransformjob xgboost-mnist-batch-transform
```

### Supprimer un BatchTransformJob
<a name="delete-a-batch-transform-job"></a>

Utilisez la commande suivante pour arrêter une tâche de transformation par lots dans SageMaker AI. 

```
kubectl delete batchTransformJob xgboost-mnist-batch-transform
```

Le résultat doit être similaire à ce qui suit : 

```
batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted
```

Cette commande supprime la tâche de transformation par lots de votre cluster Kubernetes et l'arrête dans AI. SageMaker Les tâches interrompues ou terminées ne sont pas facturées pour les ressources d' SageMaker IA. Delete prend environ 2 minutes pour nettoyer les ressources de l' SageMaker IA. 

**Remarque** : SageMaker AI ne supprime pas les tâches de transformation par lots. Les tâches interrompues continuent de s'afficher sur la console SageMaker AI. 

## L' HostingDeployment opérateur
<a name="hosting-deployment-operator"></a>

HostingDeployment les opérateurs prennent en charge la création et la suppression d'un point de terminaison, ainsi que la mise à jour d'un point de terminaison existant, pour une inférence en temps réel. L'opérateur de déploiement d'hébergement concilie les spécifications de travail de déploiement d'hébergement que vous avez spécifiées avec l' SageMaker IA en créant des modèles, des configurations de points de terminaison et des points de terminaison dans l'IA. SageMaker Pour en savoir plus sur l'inférence par SageMaker IA, consultez la [documentation de l'CreateEndpointAPI SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html) AI. 

**Topics**
+ [Configuration d'une HostingDeployment ressource](#configure-a-hostingdeployment-resource)
+ [Créez un HostingDeployment](#create-a-hostingdeployment)
+ [Liste HostingDeployments](#list-hostingdeployments)
+ [Décrivez un HostingDeployment](#describe-a-hostingdeployment)
+ [Invocation du point de terminaison](#invoking-the-endpoint)
+ [Mettre à jour HostingDeployment](#update-hostingdeployment)
+ [Supprimez le HostingDeployment](#delete-the-hostingdeployment)

### Configuration d'une HostingDeployment ressource
<a name="configure-a-hostingdeployment-resource"></a>

Téléchargez l'exemple de fichier YAML pour la tâche de déploiement d'hébergement à l'aide de la commande suivante : 

```
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hostingdeployment.yaml
```

Le fichier `xgboost-mnist-hostingdeployment.yaml` contient les composants suivants qui peuvent être modifiés selon les besoins : 
+ *ProductionVariants*. Une variante de production est un ensemble d'instances servant un seul modèle. SageMaker L'IA équilibre la charge entre toutes les variantes de production en fonction des poids définis. 
+ *Modèles*. Un modèle est l'ARN des conteneurs et du rôle d'exécution nécessaire pour servir un modèle. Il nécessite au moins un seul conteneur. 
+ *Conteneurs*. Un conteneur spécifie le jeu de données et l’image de service. Si vous utilisez votre propre algorithme personnalisé au lieu d'un algorithme fourni par l' SageMaker IA, le code d'inférence doit répondre aux exigences de l' SageMaker IA. Pour plus d'informations, consultez la section [Utilisation de vos propres algorithmes avec SageMaker l'IA](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). 

### Créez un HostingDeployment
<a name="create-a-hostingdeployment"></a>

Pour créer un HostingDeployment, appliquez le fichier `kubectl` à l'`hosting.yaml`aide de la commande suivante : 

```
kubectl apply -f hosting.yaml
```

SageMaker L'IA crée un point de terminaison avec la configuration spécifiée. Vous devez payer des frais pour les ressources d' SageMaker IA utilisées pendant la durée de vie de votre terminal. Vous ne payez pas de frais une fois votre point de terminaison supprimé. 

Le processus de création prend environ 10 minutes. 

### Liste HostingDeployments
<a name="list-hostingdeployments"></a>

Pour vérifier que le HostingDeployment a été créé, utilisez la commande suivante : 

```
kubectl get hostingdeployments
```

Le résultat doit être similaire à ce qui suit : 

```
NAME           STATUS     SAGEMAKER-ENDPOINT-NAME
host-xgboost   Creating   host-xgboost-def0e83e0d5f11eaaa450aSMLOGS
```

#### HostingDeployment valeurs de statut
<a name="hostingdeployment-status-values"></a>

Le champ d'état peut avoir l'une des valeurs suivantes : 
+ `SynchronizingK8sJobWithSageMaker` : l'opérateur se prépare à créer le point de terminaison. 
+ `ReconcilingEndpoint` : l'opérateur crée, met à jour ou supprime des ressources de point de terminaison. S'il HostingDeployment reste dans cet état, utilisez-le `kubectl describe` pour en voir la raison dans le `Additional` champ. 
+ `OutOfService` : le point de terminaison n'est pas disponible pour recevoir les demandes entrantes. 
+ `Creating`: [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html)est en cours d'exécution. 
+ `Updating`: [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpoint.html)ou [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)est en cours d'exécution. 
+ `SystemUpdating` : le point de terminaison fait l'objet d'une maintenance et ne peut pas être mis à jour, supprimé ou remis à l'échelle tant qu'il n'est pas terminé. Cette opération de maintenance ne modifie aucune valeur spécifiée par le client, telle que la configuration du VPC, le AWS KMS chiffrement, le modèle, le type d'instance ou le nombre d'instances. 
+ `RollingBack` : le point de terminaison ne parvient pas à effectuer une augmentation ou une réduction d'échelle, ni à modifier son poids de variante et il est en cours de restauration vers sa configuration précédente. Une fois la restauration terminée, le point de terminaison revient à un statut `InService`. Ce statut de transition s'applique uniquement à un point de terminaison sur lequel le dimensionnement automatique est activé et qui subit des modifications de pondération ou de capacité dans le cadre d'un [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)appel ou lorsque l'[UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)opération est appelée explicitement. 
+ `InService` : le point de terminaison est disponible pour traiter les demandes entrantes. 
+ `Deleting`: [DeleteEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DeleteEndpoint.html)est en cours d'exécution. 
+ `Failed` : le point de terminaison n'a pas pu être créé, mis à jour ou remis à l'échelle. Utilisation [DescribeEndpoint: FailureReason](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeEndpoint.html#SageMaker-DescribeEndpoint-response-FailureReason) pour obtenir des informations sur l'échec. [DeleteEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DeleteEndpoint.html)est la seule opération qui peut être effectuée sur un terminal défaillant. 

### Décrivez un HostingDeployment
<a name="describe-a-hostingdeployment"></a>

Vous pouvez obtenir des détails de débogage à l'aide de la commande `describe` `kubectl`.

```
kubectl describe hostingdeployment
```

Le résultat doit être similaire à ce qui suit : 

```
Name:         host-xgboost
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HostingDeployment","metadata":{"annotations":{},"name":"host-xgboost","namespace":"def..."
API Version:  sagemaker.aws.amazon.com/v1
Kind:         HostingDeployment
Metadata:
  Creation Timestamp:  2019-11-22T19:40:00Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        1
  Resource Version:  4258134
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hostingdeployments/host-xgboost
  UID:               def0e83e-0d5f-11ea-aa45-0a3507uiduid
Spec:
  Containers:
    Container Hostname:  xgboost
    Image:               123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest
    Model Data URL:      s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz
  Models:
    Containers:
      xgboost
    Execution Role Arn:  arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
    Name:                xgboost-model
    Primary Container:   xgboost
  Production Variants:
    Initial Instance Count:  1
    Instance Type:           ml.c5.large
    Model Name:              xgboost-model
    Variant Name:            all-traffic
  Region:                    us-east-2
Status:
  Creation Time:         2019-11-22T19:40:04Z
  Endpoint Arn:          arn:aws:sagemaker:us-east-2:123456789012:endpoint/host-xgboost-def0e83e0d5f11eaaaexample
  Endpoint Config Name:  host-xgboost-1-def0e83e0d5f11e-e08f6c510d5f11eaaa450aexample
  Endpoint Name:         host-xgboost-def0e83e0d5f11eaaa450a350733ba06
  Endpoint Status:       Creating
  Endpoint URL:          https://runtime.sagemaker.us-east-2.amazonaws.com/endpoints/host-xgboost-def0e83e0d5f11eaaaexample/invocations
  Last Check Time:       2019-11-22T19:43:57Z
  Last Modified Time:    2019-11-22T19:40:04Z
  Model Names:
    Name:   xgboost-model
    Value:  xgboost-model-1-def0e83e0d5f11-df5cc9fd0d5f11eaaa450aexample
Events:     <none>
```

Le champ de statut fournit plus d'informations à l'aide des champs suivants : 
+ `Additional` : informations supplémentaires sur l'état du déploiement d'hébergement. Ce champ est facultatif et n’est renseigné qu’en cas d’erreur. 
+ `Creation Time`: Lorsque le point de terminaison a été créé dans SageMaker l'IA. 
+ `Endpoint ARN`: L'ARN du point de terminaison de l' SageMaker IA. 
+ `Endpoint Config Name`: nom SageMaker AI de la configuration du point de terminaison. 
+ `Endpoint Name`: nom SageMaker AI du point de terminaison. 
+ `Endpoint Status` : état du point de terminaison. 
+ `Endpoint URL` : URL HTTPS qui peut être utilisée pour accéder au point de terminaison. Pour plus d'informations, voir [Déployer un modèle sur les services d'hébergement SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html). 
+ `FailureReason` : si une commande de création, de mise à jour ou de suppression échoue, la cause est indiquée ici. 
+ `Last Check Time` : dernière fois que l'opérateur a vérifié l'état du point de terminaison. 
+ `Last Modified Time` : date et heure de la dernière modification du point de terminaison. 
+ `Model Names`: une paire clé-valeur entre les noms de HostingDeployment modèles et les noms de modèles d' SageMaker IA. 

### Invocation du point de terminaison
<a name="invoking-the-endpoint"></a>

Une fois que l'état du point de terminaison est atteint`InService`, vous pouvez appeler le point de terminaison de deux manières : en utilisant la AWS CLI, qui effectue l'authentification et la signature des demandes d'URL, ou en utilisant un client HTTP tel que cURL. Si vous utilisez votre propre client, vous devez effectuer vous-même la signature et l'authentification de l'URL AWS v4. 

Pour appeler le point de terminaison à l'aide de la AWS CLI, exécutez la commande suivante. Assurez-vous de remplacer la région et le nom du point de terminaison par le nom de la région et du point de terminaison SageMaker AI de votre point de terminaison. Ces informations peuvent être obtenues à partir du résultat de `kubectl describe`. 

```
# Invoke the endpoint with mock input data.
aws sagemaker-runtime invoke-endpoint \
  --region us-east-2 \
  --endpoint-name <endpoint name> \
  --body $(seq 784 | xargs echo | sed 's/ /,/g') \
  >(cat) \
  --content-type text/csv > /dev/null
```

Par exemple, si votre région est `us-east-2` et votre nom de configuration de point de terminaison est `host-xgboost-f56b6b280d7511ea824b129926example`, la commande suivante invoquerait le point de terminaison : 

```
aws sagemaker-runtime invoke-endpoint \
  --region us-east-2 \
  --endpoint-name host-xgboost-f56b6b280d7511ea824b1299example \
  --body $(seq 784 | xargs echo | sed 's/ /,/g') \
  >(cat) \
  --content-type text/csv > /dev/null
4.95847082138
```

Ici, `4.95847082138` est la prédiction du modèle pour les données simulées. 

### Mettre à jour HostingDeployment
<a name="update-hostingdeployment"></a>

1. Une fois qu'un HostingDeployment a un statut de`InService`, il peut être mis à jour. La mise en service peut prendre environ 10 minutes. HostingDeployment Utilisez la commande suivante pour vérifier que l'état est `InService` : 

   ```
   kubectl get hostingdeployments
   ```

1. Ils HostingDeployment peuvent être mis à jour avant que le statut ne le soit`InService`. L'opérateur attend que le point de terminaison SageMaker AI soit activé `InService` avant d'appliquer la mise à jour. 

   Pour appliquer une mise à jour, modifiez le fichier `hosting.yaml`. Par exemple, remplacez le champ `initialInstanceCount` de 1 à 2 comme suit : 

   ```
   apiVersion: sagemaker.aws.amazon.com/v1
   kind: HostingDeployment
   metadata:
     name: host-xgboost
   spec:
       region: us-east-2
       productionVariants:
           - variantName: all-traffic
             modelName: xgboost-model
             initialInstanceCount: 2
             instanceType: ml.c5.large
       models:
           - name: xgboost-model
             executionRoleArn: arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
             primaryContainer: xgboost
             containers:
               - xgboost
       containers:
           - containerHostname: xgboost
             modelDataUrl: s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz
             image: 123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest
   ```

1. Enregistrez le fichier, puis utilisez `kubectl` pour appliquer votre mise à jour comme suit. Vous devez voir l’état passer de `InService` à `ReconcilingEndpoint`, puis à `Updating`. 

   ```
   $ kubectl apply -f hosting.yaml
   hostingdeployment.sagemaker.aws.amazon.com/host-xgboost configured
   
   $ kubectl get hostingdeployments
   NAME           STATUS                SAGEMAKER-ENDPOINT-NAME
   host-xgboost   ReconcilingEndpoint   host-xgboost-def0e83e0d5f11eaaa450a350abcdef
   
   $ kubectl get hostingdeployments
   NAME           STATUS     SAGEMAKER-ENDPOINT-NAME
   host-xgboost   Updating   host-xgboost-def0e83e0d5f11eaaa450a3507abcdef
   ```

SageMaker L'IA déploie un nouvel ensemble d'instances avec vos modèles, fait basculer le trafic pour utiliser les nouvelles instances et vide les anciennes instances. Dès que ce processus commence, l’état devient `Updating`. Une fois la mise à jour terminée, votre point de terminaison devient `InService`. Ce processus prend environ 10 minutes. 

### Supprimez le HostingDeployment
<a name="delete-the-hostingdeployment"></a>

1. `kubectl`À utiliser pour supprimer un à l' HostingDeployment aide de la commande suivante : 

   ```
   kubectl delete hostingdeployments host-xgboost
   ```

   Le résultat doit être similaire à ce qui suit : 

   ```
   hostingdeployment.sagemaker.aws.amazon.com "host-xgboost" deleted
   ```

1. Pour vérifier que le déploiement d’hébergement a été supprimé, utilisez la commande suivante : 

   ```
   kubectl get hostingdeployments
   No resources found.
   ```

Les points de terminaison qui ont été supprimés ne sont pas facturés pour les ressources d' SageMaker IA. 

## L' ProcessingJob opérateur
<a name="kubernetes-processing-job-operator"></a>

ProcessingJob les opérateurs sont utilisés pour lancer les tâches SageMaker de traitement Amazon. Pour plus d'informations sur le SageMaker traitement des tâches, consultez [CreateProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html). 

**Topics**
+ [Créez un à ProcessingJob l'aide d'un fichier YAML](#kubernetes-processing-job-yaml)
+ [Liste ProcessingJobs](#kubernetes-processing-job-list)
+ [Décrivez un ProcessingJob](#kubernetes-processing-job-description)
+ [Supprimer un ProcessingJob](#kubernetes-processing-job-delete)

### Créez un à ProcessingJob l'aide d'un fichier YAML
<a name="kubernetes-processing-job-yaml"></a>

Pour créer une tâche de SageMaker traitement Amazon à l'aide d'un fichier YAML, procédez comme suit :

1. Téléchargez le script de pré-traitement `kmeans_preprocessing.py`.

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans_preprocessing.py
   ```

1. Dans l'un de vos compartiments Amazon Simple Storage Service (Amazon S3), créez un dossier `mnist_kmeans_example/processing_code` et téléchargez-y le script.

1. Téléchargez le fichier `kmeans-mnist-processingjob.yaml`.

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans-mnist-processingjob.yaml
   ```

1. Modifiez le fichier YAML pour spécifier votre `sagemaker-execution-role` et remplacez toutes les instances de `amzn-s3-demo-bucket` par votre compartiment S3.

   ```
   ...
   metadata:
     name: kmeans-mnist-processing
   ...
     roleArn: arn:aws:iam::<acct-id>:role/service-role/<sagemaker-execution-role>
     ...
     processingOutputConfig:
       outputs:
         ...
             s3Output:
               s3Uri: s3://<amzn-s3-demo-bucket>/mnist_kmeans_example/output/
     ...
     processingInputs:
       ...
           s3Input:
             s3Uri: s3://<amzn-s3-demo-bucket>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py
   ```

   Ils `sagemaker-execution-role` doivent disposer d'autorisations pour que l' SageMaker IA puisse accéder à votre compartiment S3, à Amazon CloudWatch et à d'autres services en votre nom. Pour plus d'informations sur la création d'un rôle d'exécution, consultez la section [Rôles SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms).

1. Appliquez le fichier YAML à l’aide de l’une des commandes suivantes.

   Pour l'installation à portée de cluster :

   ```
   kubectl apply -f kmeans-mnist-processingjob.yaml
   ```

   Pour l'installation à portée de l'espace de noms :

   ```
   kubectl apply -f kmeans-mnist-processingjob.yaml -n <NAMESPACE>
   ```

### Liste ProcessingJobs
<a name="kubernetes-processing-job-list"></a>

Utilisez l'une des commandes suivantes pour répertorier toutes les tâches créées à l'aide de l' ProcessingJob opérateur. `SAGEMAKER-JOB-NAME `provient de la `metadata` section du fichier YAML.

Pour l’installation à portée de cluster :

```
kubectl get ProcessingJob kmeans-mnist-processing
```

Pour l'installation à portée de l'espace de noms :

```
kubectl get ProcessingJob -n <NAMESPACE> kmeans-mnist-processing
```

Votre sortie doit ressembler à ce qui suit :

```
NAME                    STATUS     CREATION-TIME        SAGEMAKER-JOB-NAME
kmeans-mnist-processing InProgress 2020-09-22T21:13:25Z kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385
```

Le résultat répertorie toutes les tâches, quel que soit leur statut. Pour supprimer une tâche de la liste, consultez [Suppression d’une tâche de traitement](https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-processing-job-operator.html#kubernetes-processing-job-delete).

**ProcessingJob État**
+ `SynchronizingK8sJobWithSageMaker` – La tâche est d'abord envoyée au cluster. L'opérateur a reçu la demande et se prépare à créer la tâche de traitement.
+ `Reconciling` – L'opérateur est en train d'initialiser ou de récupérer des erreurs transitoires, avec d'autres. Si la tâche de traitement reste dans cet état, utilisez la commande `kubectl` `describe` pour connaître la raison dans le champ `Additional`.
+ `InProgress | Completed | Failed | Stopping | Stopped`— État de la tâche SageMaker de traitement. Pour de plus amples informations, veuillez consulter [DescribeProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html#sagemaker-DescribeProcessingJob-response-ProcessingJobStatus).
+ `Error` : l’opérateur ne peut pas récupérer via un rapprochement.

Les tâches terminées, interrompues ou échouées n'entraînent pas de frais supplémentaires pour les ressources d' SageMaker IA.

### Décrivez un ProcessingJob
<a name="kubernetes-processing-job-description"></a>

Utilisez l'une des commandes suivantes pour obtenir plus de détails sur une tâche de traitement. Ces commandes sont généralement utilisées pour déboguer un problème ou vérifier les paramètres d'une tâche de traitement.

Pour l'installation à portée de cluster :

```
kubectl describe processingjob kmeans-mnist-processing
```

Pour l'installation à portée de l'espace de noms :

```
kubectl describe processingjob kmeans-mnist-processing -n <NAMESPACE>
```

Le résultat de votre tâche de traitement doit ressembler à ce qui suit :

```
$ kubectl describe ProcessingJob kmeans-mnist-processing
Name:         kmeans-mnist-processing
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"ProcessingJob","metadata":{"annotations":{},"name":"kmeans-mnist-processing",...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         ProcessingJob
Metadata:
  Creation Timestamp:  2020-09-22T21:13:25Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  21746658
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/processingjobs/kmeans-mnist-processing
  UID:               7410ed52-fd18-11ea-b19a-165ae9f9e385
Spec:
  App Specification:
    Container Entrypoint:
      python
      /opt/ml/processing/code/kmeans_preprocessing.py
    Image Uri:  763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:1.5.0-cpu-py36-ubuntu16.04
  Environment:
    Name:   MYVAR
    Value:  my_value
    Name:   MYVAR2
    Value:  my_value2
  Network Config:
  Processing Inputs:
    Input Name:  mnist_tar
    s3Input:
      Local Path:   /opt/ml/processing/input
      s3DataType:   S3Prefix
      s3InputMode:  File
      s3Uri:        s3://<s3bucket>-us-west-2/algorithms/kmeans/mnist/mnist.pkl.gz
    Input Name:     source_code
    s3Input:
      Local Path:   /opt/ml/processing/code
      s3DataType:   S3Prefix
      s3InputMode:  File
      s3Uri:        s3://<s3bucket>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py
  Processing Output Config:
    Outputs:
      Output Name:  train_data
      s3Output:
        Local Path:    /opt/ml/processing/output_train/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
      Output Name:     test_data
      s3Output:
        Local Path:    /opt/ml/processing/output_test/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
      Output Name:     valid_data
      s3Output:
        Local Path:    /opt/ml/processing/output_valid/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
  Processing Resources:
    Cluster Config:
      Instance Count:     1
      Instance Type:      ml.m5.xlarge
      Volume Size In GB:  20
  Region:                 us-west-2
  Role Arn:               arn:aws:iam::<acct-id>:role/m-sagemaker-role
  Stopping Condition:
    Max Runtime In Seconds:  1800
  Tags:
    Key:    tagKey
    Value:  tagValue
Status:
  Cloud Watch Log URL:             https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#logStream:group=/aws/sagemaker/ProcessingJobs;prefix=kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385;streamFilter=typeLogStreamPrefix
  Last Check Time:                 2020-09-22T21:14:29Z
  Processing Job Status:           InProgress
  Sage Maker Processing Job Name:  kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385
Events:                            <none>
```

### Supprimer un ProcessingJob
<a name="kubernetes-processing-job-delete"></a>

Lorsque vous supprimez une tâche de traitement, la tâche de SageMaker traitement est supprimée de Kubernetes mais elle n'est pas supprimée de AI. SageMaker Si le statut de la tâche dans SageMaker AI est `InProgress` le suivant, la tâche est arrêtée. Les tâches de traitement qui sont arrêtées n'entraînent aucun frais pour les ressources de l' SageMaker IA. Utilisez l’une des commandes suivantes pour supprimer une tâche de traitement. 

Pour l'installation à portée de cluster :

```
kubectl delete processingjob kmeans-mnist-processing
```

Pour l'installation à portée de l'espace de noms :

```
kubectl delete processingjob kmeans-mnist-processing -n <NAMESPACE>
```

Le résultat de votre tâche de traitement doit ressembler à ce qui suit :

```
processingjob.sagemaker.aws.amazon.com "kmeans-mnist-processing" deleted
```



**Note**  
SageMaker L'IA ne supprime pas la tâche de traitement. Les tâches interrompues continuent de s'afficher dans la console SageMaker AI. La `delete` commande prend quelques minutes pour nettoyer les ressources de l' SageMaker IA.

## HostingAutoscalingPolicy (HAP) Opérateur
<a name="kubernetes-hap-operator"></a>

L'opérateur HostingAutoscalingPolicy (HAP) prend une liste de ressources IDs en entrée et applique la même politique à chacune d'elles. Chaque ID de ressource est une combinaison d'un nom de point de terminaison et d'un nom de variante. L'opérateur HAP effectue deux étapes : il enregistre la ressource, IDs puis applique la politique de dimensionnement à chaque ID de ressource. `Delete`annule les deux actions. Vous pouvez appliquer le HAP à un point de terminaison d' SageMaker IA existant ou vous pouvez créer un nouveau point de terminaison d' SageMaker IA à l'aide de l'[HostingDeployment opérateur](https://docs.aws.amazon.com/sagemaker/latest/dg/hosting-deployment-operator.html#create-a-hostingdeployment). Pour en savoir plus sur la mise à l'échelle automatique de l' SageMaker IA, consultez la documentation relative à la [politique de mise à l'échelle automatique des applications](https://docs.aws.amazon.com/sagemaker/latest/dg/endpoint-auto-scaling.html).

**Note**  
Dans vos commandes `kubectl`, vous pouvez utiliser le format court, `hap`, à la place de `hostingautoscalingpolicy`.

**Topics**
+ [Créez un à HostingAutoscalingPolicy l'aide d'un fichier YAML](#kubernetes-hap-job-yaml)
+ [Liste HostingAutoscalingPolicies](#kubernetes-hap-list)
+ [Décrivez un HostingAutoscalingPolicy](#kubernetes-hap-describe)
+ [Mettre à jour un HostingAutoscalingPolicy](#kubernetes-hap-update)
+ [Supprimer un HostingAutoscalingPolicy](#kubernetes-hap-delete)
+ [Mettre à jour ou supprimer un point de terminaison doté d'un HostingAutoscalingPolicy](#kubernetes-hap-update-delete-endpoint)

### Créez un à HostingAutoscalingPolicy l'aide d'un fichier YAML
<a name="kubernetes-hap-job-yaml"></a>

Utilisez un fichier YAML pour créer un HostingAutoscalingPolicy (HAP) qui applique une métrique prédéfinie ou personnalisée à un ou plusieurs points de terminaison SageMaker AI.

Amazon SageMaker AI a besoin de valeurs spécifiques pour appliquer l'autoscaling à votre variante. Si ces valeurs ne sont pas spécifiées dans la spécification YAML, l’opérateur HAP applique les valeurs par défaut suivantes.

```
# Do not change
Namespace                    = "sagemaker"
# Do not change
ScalableDimension            = "sagemaker:variant:DesiredInstanceCount"
# Only one supported
PolicyType                   = "TargetTrackingScaling"
# This is the default policy name but can be changed to apply a custom policy
DefaultAutoscalingPolicyName = "SageMakerEndpointInvocationScalingPolicy"
```

Utilisez les exemples suivants pour créer une HAP qui applique une métrique prédéfinie ou personnalisée à un ou plusieurs points de terminaison.

#### Exemple 1 : Application d'une métrique prédéfinie à une variante de point de terminaison unique
<a name="kubernetes-hap-predefined-metric"></a>

1. Téléchargez l'exemple de fichier YAML pour une métrique prédéfinie à l'aide de la commande suivante :

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
   ```

1. Modifiez le fichier YAML pour spécifier votre `endpointName`, votre `variantName` et votre `Region`.

1. Utilisez l'une des commandes suivantes pour appliquer une métrique prédéfinie à un seul ID de ressource (combinaison de nom de point de terminaison et de nom de variante).

   Pour l'installation à portée de cluster :

   ```
   kubectl apply -f hap-predefined-metric.yaml
   ```

   Pour l'installation à portée de l'espace de noms :

   ```
   kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>
   ```

#### Exemple 2 : Application d'une métrique personnalisée à une variante de point de terminaison unique
<a name="kubernetes-hap-custom-metric"></a>

1. Téléchargez l'exemple de fichier YAML pour une métrique personnalisée à l'aide de la commande suivante :

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-custom-metric.yaml
   ```

1. Modifiez le fichier YAML pour spécifier votre `endpointName`, votre `variantName` et votre `Region`.

1. Utilisez l’une des commandes suivantes pour appliquer une métrique personnalisée à un seul ID de ressource (combinaison de nom de point de terminaison et de nom de variante) à la place de la `SageMakerVariantInvocationsPerInstance` recommandée.
**Note**  
Amazon SageMaker AI ne vérifie pas la validité de vos spécifications YAML.

   Pour l’installation à portée de cluster :

   ```
   kubectl apply -f hap-custom-metric.yaml
   ```

   Pour l'installation à portée de l'espace de noms :

   ```
   kubectl apply -f hap-custom-metric.yaml -n <NAMESPACE>
   ```

#### Exemple 3 : Application d'une politique de mise à l'échelle à plusieurs points de terminaison et variantes
<a name="kubernetes-hap-scaling-policy"></a>

Vous pouvez utiliser l'opérateur HAP pour appliquer la même politique de dimensionnement à plusieurs ressources IDs. Une demande `scaling_policy` distincte est créée pour chaque ID de ressource (combinaison de nom de point de terminaison et de nom de variante).

1. Téléchargez l'exemple de fichier YAML pour une métrique prédéfinie à l'aide de la commande suivante :

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
   ```

1. Modifiez le fichier YAML pour spécifier votre `Region` et plusieurs valeurs `endpointName` et `variantName`.

1. Utilisez l'une des commandes suivantes pour appliquer une métrique prédéfinie à plusieurs ressources IDs (combinaisons de nom de point de terminaison et de nom de variante).

   Pour l’installation à portée de cluster :

   ```
   kubectl apply -f hap-predefined-metric.yaml
   ```

   Pour l'installation à portée de l'espace de noms :

   ```
   kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>
   ```

#### Considérations HostingAutoscalingPolicies relatives à plusieurs terminaux et variantes
<a name="kubernetes-hap-scaling-considerations"></a>

Les considérations suivantes s'appliquent lorsque vous utilisez plusieurs ressources IDs :
+ Si vous appliquez une seule politique à plusieurs ressources IDs, un PolicYarn est créé par ID de ressource. Cinq points de terminaison ont cinq politiquesARNs. Lorsque vous exécutez la commande `describe` sur la politique, les réponses apparaissent comme une tâche et incluent un statut de tâche unique.
+ Si vous appliquez une métrique personnalisée à plusieurs ressources IDs, la même dimension ou valeur est utilisée pour toutes les valeurs d'ID de ressource (variante). Par exemple, si vous appliquez une métrique client pour les instances 1 à 5 et que la dimension de variante de point de terminaison est mappée à la variante 1, lorsque la variante 1 dépasse les métriques, tous les points de terminaison sont augmentés ou réduits.
+ L'opérateur HAP prend en charge la mise à jour de la liste des ressources IDs. Si vous modifiez, ajoutez ou supprimez une ressource dans la spécification, la politique de mise IDs à l'échelle automatique est supprimée de la liste de variantes précédente et appliquée aux nouvelles combinaisons d'identifiants de ressources spécifiées. Utilisez la [https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-hap-operator.html#kubernetes-hap-describe](https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-hap-operator.html#kubernetes-hap-describe)commande pour répertorier la ressource IDs à laquelle la politique est actuellement appliquée.

### Liste HostingAutoscalingPolicies
<a name="kubernetes-hap-list"></a>

Utilisez l'une des commandes suivantes pour répertorier toutes les HostingAutoscalingPolicies (HAPs) créées à l'aide de l'opérateur HAP.

Pour l’installation à portée de cluster :

```
kubectl get hap
```

Pour l'installation à portée de l'espace de noms :

```
kubectl get hap -n <NAMESPACE>
```

Votre sortie doit ressembler à ce qui suit :

```
NAME             STATUS   CREATION-TIME
hap-predefined   Created  2021-07-13T21:32:21Z
```

Utilisez la commande suivante pour vérifier l'état de votre HostingAutoscalingPolicy (HAP).

```
kubectl get hap <job-name>
```

L'une des valeurs suivantes est renvoyée :
+ `Reconciling` – Certains types d'erreurs affichent l'état `Reconciling` au lieu de `Error`. Certains exemples sont des erreurs côté serveur et des points de terminaison à l'état `Creating` ou `Updating`. Vérifiez le champ `Additional` dans les journaux d'état ou d'opérateur pour plus d'informations.
+ `Created`
+ `Error`

**Pour afficher le point de terminaison de scalabilité automatique auquel vous avez appliqué la politique**

1. Ouvrez la console Amazon SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le panneau latéral gauche, développez **Inférence (Inférence)**.

1. Choisissez **Endpoints (Points de terminaison)**.

1. Sélectionnez le nom du point de terminaison qui vous intéresse.

1. Faites défiler jusqu'à la section **Endpoint runtime settings (Paramètres d'exécution du point de terminaison)**.

### Décrivez un HostingAutoscalingPolicy
<a name="kubernetes-hap-describe"></a>

Utilisez la commande suivante pour obtenir plus de détails sur a HostingAutoscalingPolicy (HAP). Ces commandes sont généralement utilisées pour résoudre un problème ou vérifier la ressource IDs (combinaisons de nom de point de terminaison et de nom de variante) d'un HAP.

```
kubectl describe hap <job-name>
```

### Mettre à jour un HostingAutoscalingPolicy
<a name="kubernetes-hap-update"></a>

L'opérateur HostingAutoscalingPolicy (HAP) prend en charge les mises à jour. Vous pouvez modifier votre spécification YAML afin de modifier les valeurs, puis appliquer à nouveau la politique. L'opérateur HAP supprime la politique existante et applique la nouvelle.

### Supprimer un HostingAutoscalingPolicy
<a name="kubernetes-hap-delete"></a>

Utilisez l'une des commandes suivantes pour supprimer une politique HostingAutoscalingPolicy (HAP).

Pour l’installation à portée de cluster :

```
kubectl delete hap hap-predefined
```

Pour l'installation à portée de l'espace de noms :

```
kubectl delete hap hap-predefined -n <NAMESPACE>
```

Cette commande supprime la politique de mise à l'échelle et annule l'enregistrement de la cible de mise à l'échelle de Kubernetes. Cette commande renvoie le résultat suivant : 

```
hostingautoscalingpolicies.sagemaker.aws.amazon.com "hap-predefined" deleted
```

### Mettre à jour ou supprimer un point de terminaison doté d'un HostingAutoscalingPolicy
<a name="kubernetes-hap-update-delete-endpoint"></a>

Pour mettre à jour un terminal doté d'un HostingAutoscalingPolicy (HAP), utilisez la `kubectl` `delete` commande pour supprimer le HAP, mettre à jour le point de terminaison, puis réappliquer le HAP.

Pour supprimer un point de terminaison qui possède une HAP, utilisez la commande `kubectl` `delete` pour supprimer l’HAP avant de supprimer le point de terminaison.

# Migrer les ressources vers la dernière version d'Operators
<a name="kubernetes-sagemaker-operators-migrate"></a>

Nous arrêtons le développement et le support technique de la version originale d'[ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master).

Si vous utilisez actuellement la version `v1.2.2` ou une version inférieure d'[ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master), nous vous recommandons de migrer vos ressources vers le [contrôleur de service ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) pour Amazon. SageMaker Le contrôleur de service ACK est une nouvelle génération d' SageMaker opérateurs pour Kubernetes basés sur les [AWS contrôleurs pour Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).

Pour obtenir les réponses aux questions fréquemment posées concernant la fin du support de la version originale d' SageMaker Operators for Kubernetes, voir [Annonce de la fin du support de la version originale des opérateurs SageMaker AI pour Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Suivez les étapes suivantes pour migrer vos ressources et utiliser ACK pour former, régler et déployer des modèles d'apprentissage automatique avec Amazon SageMaker AI.

**Note**  
Les derniers opérateurs d' SageMaker IA pour Kubernetes ne sont pas rétrocompatibles.

**Topics**
+ [Conditions préalables](#migrate-resources-to-new-operators-prerequisites)
+ [Adoption des ressources](#migrate-resources-to-new-operators-steps)
+ [Nettoyage des anciennes ressources](#migrate-resources-to-new-operators-cleanup)
+ [Utilisez les nouveaux opérateurs d' SageMaker IA pour Kubernetes](#migrate-resources-to-new-operators-tutorials)

## Conditions préalables
<a name="migrate-resources-to-new-operators-prerequisites"></a>

Pour réussir la migration des ressources vers les derniers opérateurs SageMaker AI pour Kubernetes, vous devez effectuer les opérations suivantes :

1. Installez les derniers opérateurs d' SageMaker IA pour Kubernetes. Voir [Configuration](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup) dans *Machine Learning avec le contrôleur ACK SageMaker AI* pour step-by-step obtenir des instructions.

1. Si vous utilisez [HostingAutoscalingPolicy ressources](#migrate-resources-to-new-operators-hap), installez les nouveaux opérateurs d’autoscaling d’application. Voir [Configuration](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/#setup) dans *Scale SageMaker AI Workloads with Application Auto Scaling* pour step-by-step obtenir des instructions. Cette étape est facultative si vous n'utilisez pas de HostingAutoScalingPolicy ressources.

Si les autorisations sont correctement configurées, le contrôleur de service ACK SageMaker AI peut déterminer les spécifications et l'état de la AWS ressource et réconcilier la ressource comme si le contrôleur ACK l'avait créée à l'origine.

## Adoption des ressources
<a name="migrate-resources-to-new-operators-steps"></a>

Les nouveaux opérateurs d' SageMaker IA pour Kubernetes permettent d'adopter des ressources qui n'ont pas été créées à l'origine par le contrôleur de service ACK. Pour plus d'informations, consultez [Adopter les AWS ressources existantes](https://aws-controllers-k8s.github.io/community/docs/user-docs/adopted-resource/) dans la documentation ACK.

Les étapes suivantes montrent comment les nouveaux opérateurs d' SageMaker IA pour Kubernetes peuvent adopter un point de terminaison d'IA existant SageMaker . Enregistrez l’exemple suivant dans un fichier nommé `adopt-endpoint-sample.yaml`. 

```
apiVersion: services.k8s.aws/v1alpha1
kind: AdoptedResource
metadata:
  name: adopt-endpoint-sample
spec:  
  aws:
    # resource to adopt, not created by ACK
    nameOrID: xgboost-endpoint
  kubernetes:
    group: sagemaker.services.k8s.aws
    kind: Endpoint
    metadata:
      # target K8s CR name
      name: xgboost-endpoint
```

Soumettez la ressource personnalisée (CR) en utilisant `kubectl apply` :

```
kubectl apply -f adopt-endpoint-sample.yaml
```

Utilisez `kubectl describe` pour vérifier les conditions de statut de la ressource que vous avez adoptée.

```
kubectl describe adoptedresource adopt-endpoint-sample
```

Vérifiez que la condition `ACK.Adopted` est `True`. La sortie doit ressembler à cet exemple :

```
---
kind: AdoptedResource
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: '{"apiVersion":"services.k8s.aws/v1alpha1","kind":"AdoptedResource","metadata":{"annotations":{},"name":"xgboost-endpoint","namespace":"default"},"spec":{"aws":{"nameOrID":"xgboost-endpoint"},"kubernetes":{"group":"sagemaker.services.k8s.aws","kind":"Endpoint","metadata":{"name":"xgboost-endpoint"}}}}'
  creationTimestamp: '2021-04-27T02:49:14Z'
  finalizers:
  - finalizers.services.k8s.aws/AdoptedResource
  generation: 1
  name: adopt-endpoint-sample
  namespace: default
  resourceVersion: '12669876'
  selfLink: "/apis/services.k8s.aws/v1alpha1/namespaces/default/adoptedresources/adopt-endpoint-sample"
  uid: 35f8fa92-29dd-4040-9d0d-0b07bbd7ca0b
spec:
  aws:
    nameOrID: xgboost-endpoint
  kubernetes:
    group: sagemaker.services.k8s.aws
    kind: Endpoint
    metadata:
      name: xgboost-endpoint
status:
  conditions:
  - status: 'True'
    type: ACK.Adopted
```

Vérifiez que votre ressource existe dans votre cluster :

```
kubectl describe endpoints.sagemaker xgboost-endpoint
```

### HostingAutoscalingPolicy ressources
<a name="migrate-resources-to-new-operators-hap"></a>

La ressource `HostingAutoscalingPolicy` (HAP) comprend plusieurs ressources de mise à l'échelle automatique d'application : `ScalableTarget` et `ScalingPolicy`. Lorsque vous adoptez une ressource HAP avec ACK, commencez par installer le [contrôleur de mise à l'échelle automatique d'application](https://github.com/aws-controllers-k8s/applicationautoscaling-controller). Pour adopter les ressources HAP, vous devez adopter les ressources `ScalableTarget` et `ScalingPolicy`. Vous trouverez l'identificateur de ces ressources dans le statut de la ressource `HostingAutoscalingPolicy` (`status.ResourceIDList`).

### HostingDeployment ressources
<a name="migrate-resources-to-new-operators-hosting-deployment"></a>

La `HostingDeployment` ressource se compose de plusieurs ressources d' SageMaker IA :`Endpoint`,`EndpointConfig`, et chacune d'elles`Model`. Si vous adoptez un point de terminaison SageMaker AI dans ACK, vous devez adopter le `Endpoint``EndpointConfig`, et chacun `Model` séparément. Les noms `Endpoint`, `EndpointConfig` et `Model` peuvent être trouvés dans le statut de la ressource `HostingDeployment` (`status.endpointName`, `status.endpointConfigName` et `status.modelNames`).

Pour obtenir la liste de toutes les ressources d' SageMaker IA prises en charge, reportez-vous à la [référence d'API ACK](https://aws-controllers-k8s.github.io/community/reference/).

## Nettoyage des anciennes ressources
<a name="migrate-resources-to-new-operators-cleanup"></a>

Une fois que les nouveaux opérateurs SageMaker AI pour Kubernetes auront adopté vos ressources, vous pourrez désinstaller les anciens opérateurs et nettoyer les anciennes ressources.

### Étape 1 : désinstaller l’ancien opérateur
<a name="migrate-resources-to-new-operators-uninstall"></a>

Pour désinstaller l'ancien opérateur, consultez [Supprimer les opérateurs](kubernetes-sagemaker-operators-end-of-support.md#delete-operators).

**Avertissement**  
Désinstallez l'ancien opérateur avant de supprimer d'anciennes ressources.

### Étape 2 : supprimer les finaliseurs et supprimer les anciennes ressources
<a name="migrate-resources-to-new-operators-delete-resources"></a>

**Avertissement**  
Avant de supprimer les anciennes ressources, assurez-vous que l'ancien opérateur a été désinstallé.

Après avoir désinstallé l’ancien opérateur, vous devez supprimer explicitement les finaliseurs pour supprimer les anciennes ressources de l’opérateur. L'exemple de script ci-dessous montre comment supprimer toutes les tâches d'entraînement gérées par l'ancien opérateur dans un espace de noms donné. Vous pouvez utiliser un modèle similaire pour supprimer des ressources supplémentaires une fois qu’elles ont été adoptées par le nouvel opérateur.

**Note**  
Vous devez utiliser les noms complets des ressources pour obtenir des ressources. Par exemple, utilisez `kubectl get trainingjobs.sagemaker.aws.amazon.com` plutôt que `kubectl get trainingjob`.

```
namespace=sagemaker_namespace
training_jobs=$(kubectl get trainingjobs.sagemaker.aws.amazon.com -n $namespace -ojson | jq -r '.items | .[] | .metadata.name')
 
for job in $training_jobs
do
    echo "Deleting $job resource in $namespace namespace"
    kubectl patch trainingjobs.sagemaker.aws.amazon.com $job -n $namespace -p '{"metadata":{"finalizers":null}}' --type=merge
    kubectl delete trainingjobs.sagemaker.aws.amazon.com $job -n $namespace
done
```

## Utilisez les nouveaux opérateurs d' SageMaker IA pour Kubernetes
<a name="migrate-resources-to-new-operators-tutorials"></a>

Pour des guides détaillés sur l'utilisation des nouveaux opérateurs d' SageMaker intelligence artificielle pour Kubernetes, voir [Utiliser des opérateurs d' SageMaker IA pour Kubernetes](kubernetes-sagemaker-operators-ack.md#kubernetes-sagemaker-operators-ack-use)

# Annonce de la fin du support de la version originale des opérateurs SageMaker AI pour Kubernetes
<a name="kubernetes-sagemaker-operators-eos-announcement"></a>

Cette page annonce la fin du support de la version originale d'[SageMaker AI Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s) et fournit des réponses aux questions fréquemment posées ainsi que des informations de migration concernant le contrôleur de [service ACK pour Amazon SageMaker AI, une nouvelle génération d'opérateurs SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller) entièrement pris en charge pour Kubernetes. Pour des informations générales sur les nouveaux opérateurs d' SageMaker IA pour Kubernetes, consultez. [Les derniers opérateurs d' SageMaker IA pour Kubernetes](kubernetes-sagemaker-operators-ack.md) 

## Questions fréquentes sur la fin du support
<a name="kubernetes-sagemaker-operators-eos-faq"></a>

**Topics**
+ [Pourquoi mettons-nous fin au support de la version originale d' SageMaker AI Operators for Kubernetes ?](#kubernetes-sagemaker-operators-eos-faq-why)
+ [Où puis-je trouver plus d'informations sur les nouveaux opérateurs d' SageMaker IA pour Kubernetes et ACK ?](#kubernetes-sagemaker-operators-eos-faq-more)
+ [Que signifie la fin de la prise en charge (EOS) ?](#kubernetes-sagemaker-operators-eos-faq-definition)
+ [Comment puis-je migrer ma charge de travail vers les nouveaux opérateurs SageMaker AI pour Kubernetes à des fins de formation et d'inférence ?](#kubernetes-sagemaker-operators-eos-faq-how)
+ [Vers quelle version d’ACK dois-je migrer ?](#kubernetes-sagemaker-operators-eos-faq-version)
+ [Les opérateurs d' SageMaker IA initiaux pour Kubernetes et les nouveaux opérateurs (contrôleur de service ACK pour Amazon SageMaker AI) sont-ils fonctionnellement équivalents ?](#kubernetes-sagemaker-operators-eos-faq-parity)

### Pourquoi mettons-nous fin au support de la version originale d' SageMaker AI Operators for Kubernetes ?
<a name="kubernetes-sagemaker-operators-eos-faq-why"></a>

Les utilisateurs peuvent désormais tirer parti du [contrôleur de service ACK pour Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller). Le contrôleur de service ACK est une nouvelle génération d'opérateurs d' SageMaker IA pour Kubernetes basés sur [AWS Controllers for Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK), un projet communautaire optimisé pour la production, normalisant la manière d'exposer les services via un opérateur Kubernetes. AWS Nous annonçons donc la fin du support (EOS) de la version originale (non basée sur ACK) d'[ SageMaker AI Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s). La prise en charge prend fin le **15 février 2023** en même temps qu’[Amazon Elastic Kubernetes Service Kubernetes 1.21](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar). 

Pour plus d’informations sur ACK, consultez [Historique et principes d’ACK](https://aws-controllers-k8s.github.io/community/docs/community/background/).

### Où puis-je trouver plus d'informations sur les nouveaux opérateurs d' SageMaker IA pour Kubernetes et ACK ?
<a name="kubernetes-sagemaker-operators-eos-faq-more"></a>
+ Pour plus d'informations sur les nouveaux opérateurs SageMaker AI pour Kubernetes, consultez le GitHub référentiel [ACK Service Controller pour Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller) ou consultez la documentation sur les [AWS contrôleurs pour](https://aws-controllers-k8s.github.io/community/docs/community/overview/) Kubernetes.
+ Pour un didacticiel expliquant comment entraîner un modèle d'apprentissage automatique avec le contrôleur de service ACK pour Amazon SageMaker AI à l'aide d'Amazon EKS, consultez cet [exemple d'SageMaker IA](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/).

  Pour un exemple de mise à l'échelle automatique, voir [Scale SageMaker AI Workloads with Application Auto Scaling](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/).
+ Pour en savoir plus sur AWS Controllers for Kubernetes (ACK), consultez la documentation sur [AWS Controllers for Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).
+ Pour obtenir la liste des ressources d' SageMaker IA prises en charge, consultez la [référence d'API ACK](https://aws-controllers-k8s.github.io/community/reference/).

### Que signifie la fin de la prise en charge (EOS) ?
<a name="kubernetes-sagemaker-operators-eos-faq-definition"></a>

Bien que les utilisateurs puissent continuer à utiliser leurs opérateurs actuels, nous ne développons plus de nouvelles fonctionnalités pour les opérateurs et nous ne publierons aucun correctif ou mise à jour de sécurité pour les problèmes détectés. `v1.2.2`est la dernière version d'[SageMaker AI Operators pour Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master). Les utilisateurs doivent migrer leurs charges de travail afin d'utiliser le [contrôleur de service ACK pour Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller).

### Comment puis-je migrer ma charge de travail vers les nouveaux opérateurs SageMaker AI pour Kubernetes à des fins de formation et d'inférence ?
<a name="kubernetes-sagemaker-operators-eos-faq-how"></a>

Pour plus d'informations sur la migration des ressources des anciens opérateurs d' SageMaker IA vers les nouveaux pour Kubernetes, suivez. [Migrer les ressources vers la dernière version d'Operators](kubernetes-sagemaker-operators-migrate.md)

### Vers quelle version d’ACK dois-je migrer ?
<a name="kubernetes-sagemaker-operators-eos-faq-version"></a>

Les utilisateurs doivent migrer vers la version la plus récente du [contrôleur de service ACK pour Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller/tags).

### Les opérateurs d' SageMaker IA initiaux pour Kubernetes et les nouveaux opérateurs (contrôleur de service ACK pour Amazon SageMaker AI) sont-ils fonctionnellement équivalents ?
<a name="kubernetes-sagemaker-operators-eos-faq-parity"></a>

Oui, leurs fonctions sont égales.

Voici quelques-unes des principales différences notables entre les deux versions :
+ Les définitions de ressources personnalisées (CRD) utilisées par les opérateurs d' SageMaker IA basés sur ACK pour Kubernetes suivent la définition de l' AWS API, ce qui les rend incompatibles avec les spécifications de ressources personnalisées des opérateurs d' SageMaker IA pour Kubernetes dans leur version d'origine. Reportez-vous [CRDs](https://github.com/aws-controllers-k8s/sagemaker-controller/tree/main/helm/crds)au nouveau contrôleur ou utilisez le guide de migration pour adopter les ressources et utiliser le nouveau contrôleur. 
+ La `Hosting Autoscaling` politique ne fait plus partie des nouveaux opérateurs d' SageMaker IA pour Kubernetes et a été migrée vers le contrôleur ACK de mise à l'échelle automatique des [applications](https://github.com/aws-controllers-k8s/applicationautoscaling-controller). [Pour savoir comment utiliser le contrôleur de mise à l'échelle automatique des applications pour configurer la mise à l'échelle automatique sur les points de terminaison SageMaker AI, suivez cet exemple de mise à l'échelle automatique.](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/) 
+ La ressource `HostingDeployment` a été utilisée pour créer des modèles, des configurations de points de terminaison et des points de terminaison dans une seule définition CRD. Les nouveaux opérateurs d' SageMaker IA pour Kubernetes disposent d'un CRD distinct pour chacune de ces ressources. 