

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Migrazione di risorse verso gli operatori più recenti
<a name="kubernetes-sagemaker-operators-migrate"></a>

[Stiamo interrompendo lo sviluppo e il supporto tecnico della versione originale di Operators for Kubernetes. SageMaker ](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master)

Se attualmente utilizzi una versione `v1.2.2` o precedente di [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master), ti consigliamo di migrare le tue risorse al [controller di servizio ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) per Amazon. SageMaker [Il controller di servizio ACK è una nuova generazione di SageMaker Operators for Kubernetes basata su AWS Controllers for Kubernetes (ACK).](https://aws-controllers-k8s.github.io/community/)

Per le risposte alle domande frequenti sulla fine del supporto della versione originale di Operators for Kubernetes, consulta SageMaker [Annuncio della fine del supporto della versione originale di SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Utilizza i seguenti passaggi per migrare le tue risorse e utilizzare ACK per addestrare, ottimizzare e distribuire modelli di apprendimento automatico con Amazon SageMaker AI.

**Nota**  
I più recenti operatori SageMaker AI per Kubernetes non sono retrocompatibili.

**Topics**
+ [Prerequisiti](#migrate-resources-to-new-operators-prerequisites)
+ [Adozione di risorse](#migrate-resources-to-new-operators-steps)
+ [Rimozione delle risorse obsolete](#migrate-resources-to-new-operators-cleanup)
+ [Usa i nuovi operatori SageMaker AI per Kubernetes](#migrate-resources-to-new-operators-tutorials)

## Prerequisiti
<a name="migrate-resources-to-new-operators-prerequisites"></a>

Per migrare correttamente le risorse agli ultimi SageMaker AI Operators for Kubernetes, devi fare quanto segue:

1. Installa gli operatori SageMaker AI più recenti per Kubernetes. Per step-by-step istruzioni, consulta [Configurazione](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup) in *Machine Learning con il controller ACK SageMaker AI*.

1. Se usi [HostingAutoscalingPolicy risorse](#migrate-resources-to-new-operators-hap), installa i nuovi Application Auto Scaling Operators. Per istruzioni, consulta [Configurazione](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/#setup) dei *carichi di lavoro SageMaker AI in scala con Application Auto* Scaling. step-by-step Questo passaggio è facoltativo se non utilizzi HostingAutoScalingPolicy risorse.

Se le autorizzazioni sono configurate correttamente, il controller di servizio ACK SageMaker AI può determinare le specifiche e lo stato della AWS risorsa e riconciliare la risorsa come se fosse stato il controller ACK a crearla originariamente.

## Adozione di risorse
<a name="migrate-resources-to-new-operators-steps"></a>

I nuovi operatori SageMaker AI per Kubernetes offrono la possibilità di adottare risorse che non sono state originariamente create dal controller di servizio ACK. Per ulteriori informazioni, consulta [Adopt Existing AWS Resources](https://aws-controllers-k8s.github.io/community/docs/user-docs/adopted-resource/) nella documentazione ACK.

I passaggi seguenti mostrano come i nuovi operatori di SageMaker intelligenza artificiale per Kubernetes possono adottare un endpoint AI esistente SageMaker . Salva l’esempio seguente in un file denominato `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
```

Invia la risorsa personalizzata (CR) utilizzando `kubectl apply`:

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

Usa `kubectl describe` per verificare le condizioni di stato della risorsa adottata.

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

Verifica che la condizione `ACK.Adopted` sia `True`. L'output visualizzato dovrebbe essere simile al seguente esempio:

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

Verifica che la risorsa esista nel cluster:

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

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

La risorsa `HostingAutoscalingPolicy` (HAP) è composta da più risorse Application Auto Scaling: `ScalableTarget` e `ScalingPolicy`. Quando si adotta una risorsa HAP con ACK, è necessario innanzitutto installare il controller [Application Auto Scaling](https://github.com/aws-controllers-k8s/applicationautoscaling-controller). Per l’adozione delle risorse HAP, è necessario adottare sia `ScalableTarget` sia `ScalingPolicy`. È possibile trovare l'identificativo di risorsa per queste risorse nello stato della risorsa `HostingAutoscalingPolicy` (`status.ResourceIDList`).

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

La `HostingDeployment` risorsa è composta da più risorse SageMaker AI: `Endpoint``EndpointConfig`, e ciascuna`Model`. Se si adotta un endpoint di SageMaker intelligenza artificiale in ACK, è necessario adottare i `Endpoint``EndpointConfig`, e ciascuno `Model` separatamente. I nomi `Endpoint`, `EndpointConfig` e `Model` si trovano nello stato `HostingDeployment` della risorsa (`status.endpointName`, `status.endpointConfigName` e `status.modelNames`).

Per un elenco di tutte le risorse SageMaker AI supportate, consulta l'[ACK API Reference.](https://aws-controllers-k8s.github.io/community/reference/)

## Rimozione delle risorse obsolete
<a name="migrate-resources-to-new-operators-cleanup"></a>

Dopo che i nuovi operatori SageMaker AI per Kubernetes avranno adottato le tue risorse, potrai disinstallare i vecchi operatori e ripulire le vecchie risorse.

### Fase 1: disinstallazione del precedente operatore
<a name="migrate-resources-to-new-operators-uninstall"></a>

Per disinstallare il precedente operatore, consulta [Eliminazione degli operatori](kubernetes-sagemaker-operators-end-of-support.md#delete-operators).

**avvertimento**  
Disinstalla il precedente operatore prima di eliminare le risorse obsolete.

### Fase 2: rimozione dei finalizer ed eliminazione delle risorse obsolete
<a name="migrate-resources-to-new-operators-delete-resources"></a>

**avvertimento**  
Prima di eliminare le risorse obsolete, assicurati di aver disinstallato il precedente operatore.

Dopo aver disinstallato il precedente operatore, è necessario rimuovere esplicitamente i finalizer per eliminare le risorse obsolete dell'operatore. Lo script di esempio seguente mostra come eliminare tutti i processi di addestramento gestiti dal precedente operatore in un determinato spazio dei nomi. È possibile utilizzare uno schema simile per eliminare risorse aggiuntive una volta adottate dal nuovo operatore.

**Nota**  
È necessario utilizzare i nomi completi delle risorse per ottenerle. Ad esempio, utilizza `kubectl get trainingjobs.sagemaker.aws.amazon.com` anziché `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
```

## Usa i nuovi operatori SageMaker AI per Kubernetes
<a name="migrate-resources-to-new-operators-tutorials"></a>

Per guide approfondite sull'utilizzo dei nuovi operatori SageMaker AI per Kubernetes, consulta [Usa SageMaker AI Operators per Kubernetes](kubernetes-sagemaker-operators-ack.md#kubernetes-sagemaker-operators-ack-use)