

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.

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