

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Migrar recursos a los operadores más recientes
<a name="kubernetes-sagemaker-operators-migrate"></a>

[Vamos a detener el desarrollo y el soporte técnico de la versión original de Operators for Kubernetes. SageMaker ](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master)

Si actualmente utilizas la versión `v1.2.2` o anterior de [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master), te recomendamos migrar tus recursos al [controlador de servicios ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) para Amazon. SageMaker [El controlador de servicios ACK es una nueva generación de SageMaker operadores para Kubernetes basada en Controllers for Kubernetes (ACK).AWS](https://aws-controllers-k8s.github.io/community/)

Para obtener respuestas a las preguntas frecuentes sobre la finalización del soporte de la versión original de Operators for Kubernetes, consulte SageMaker [Anunciamos el fin del soporte de la versión original de SageMaker AI Operators para Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Siga los siguientes pasos para migrar sus recursos y utilice ACK para entrenar, ajustar e implementar modelos de aprendizaje automático con Amazon SageMaker AI.

**nota**  
Los operadores de SageMaker IA más recientes para Kubernetes no son compatibles con versiones anteriores.

**Topics**
+ [Requisitos previos](#migrate-resources-to-new-operators-prerequisites)
+ [Adoptar recursos](#migrate-resources-to-new-operators-steps)
+ [Borrar los recursos antiguos](#migrate-resources-to-new-operators-cleanup)
+ [Usa los nuevos operadores de SageMaker IA para Kubernetes](#migrate-resources-to-new-operators-tutorials)

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

Para migrar correctamente los recursos a los operadores de SageMaker IA más recientes para Kubernetes, debes hacer lo siguiente:

1. Instale los operadores de SageMaker IA más recientes para Kubernetes. Consulte [Configuración](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup) en *Machine Learning con el controlador ACK SageMaker AI* para step-by-step obtener instrucciones.

1. Si utiliza [HostingAutoscalingPolicy recursos](#migrate-resources-to-new-operators-hap), instale el nuevo operador de escalado automático de aplicaciones. Consulte [Configuración](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/#setup) en *Scale SageMaker AI Workloads with Application Auto Scaling* para obtener step-by-step instrucciones. Este paso es opcional si no está utilizando HostingAutoScalingPolicy recursos.

Si los permisos están configurados correctamente, el controlador de servicio ACK SageMaker AI puede determinar la especificación y el estado del AWS recurso y conciliar el recurso como si el controlador ACK lo hubiera creado originalmente.

## Adoptar recursos
<a name="migrate-resources-to-new-operators-steps"></a>

Los nuevos operadores de SageMaker IA para Kubernetes permiten adoptar recursos que no fueron creados originalmente por el controlador de servicios ACK. Para obtener más información, consulte [Adoptar los AWS recursos existentes](https://aws-controllers-k8s.github.io/community/docs/user-docs/adopted-resource/) en la documentación de ACK.

Los siguientes pasos muestran cómo los nuevos operadores de SageMaker IA para Kubernetes pueden adoptar un punto final de IA existente SageMaker . Guarde el siguiente ejemplo como un archivo llamado `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
```

Envíe el recurso personalizado (CR) mediante `kubectl apply`:

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

Use `kubectl describe` para comprobar las condiciones de estado del recurso adoptado.

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

Compruebe que la condición `ACK.Adopted` sea `True`. La salida debería tener un aspecto similar al siguiente ejemplo:

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

Compruebe que el recurso existe en el clúster:

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

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

El recurso `HostingAutoscalingPolicy` (HAP) consta de varios recursos de escalado automático de aplicaciones: `ScalableTarget` y `ScalingPolicy`. Al adoptar un recurso HAP con ACK, instale primero el [controlador de escalado automático de aplicaciones](https://github.com/aws-controllers-k8s/applicationautoscaling-controller). Para adoptar los recursos HAP, debe adoptar ambos recursos, `ScalableTarget` y `ScalingPolicy`. Encontrará el identificador de recursos de estos recursos en el estado del recurso `HostingAutoscalingPolicy` (`status.ResourceIDList`).

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

El `HostingDeployment` recurso consta de varios recursos de SageMaker IA: `Endpoint``EndpointConfig`, y cada uno`Model`. Si adoptas un punto final de SageMaker IA en ACK, debes adoptar el `Endpoint``EndpointConfig`, y cada uno `Model` por separado. Los nombres de `Endpoint`, `EndpointConfig` y `Model` se encuentran en el estado del recurso `HostingDeployment` (`status.endpointName`, `status.endpointConfigName` y `status.modelNames`).

Para obtener una lista de todos los recursos de SageMaker IA compatibles, consulta la [referencia de la API de ACK](https://aws-controllers-k8s.github.io/community/reference/).

## Borrar los recursos antiguos
<a name="migrate-resources-to-new-operators-cleanup"></a>

Una vez que los nuevos operadores de SageMaker IA para Kubernetes adopten tus recursos, podrás desinstalar los operadores antiguos y limpiar los recursos antiguos.

### Paso 1: Desinstalar el operador antiguo
<a name="migrate-resources-to-new-operators-uninstall"></a>

Para desinstalar el operador anterior, consulte [Eliminación de operadores](kubernetes-sagemaker-operators-end-of-support.md#delete-operators).

**aviso**  
Desinstale el operador antiguo antes de eliminar cualquier recurso antiguo.

### Paso 2: Eliminar los finalizadores y eliminar los recursos antiguos
<a name="migrate-resources-to-new-operators-delete-resources"></a>

**aviso**  
Antes de eliminar los recursos antiguos, asegúrese de haber desinstalado el operador antiguo.

Tras desinstalar el operador antiguo, debe eliminar de forma explícita los finalizadores para eliminar los recursos del operador antiguo. El siguiente script de ejemplo muestra cómo eliminar todos los trabajos de entrenamiento administrados por el operador antiguo en un espacio de nombres determinado. Puede utilizar un patrón similar para eliminar recursos adicionales una vez que los adopte el nuevo operador.

**nota**  
Debe utilizar los nombres completos de los recursos para obtenerlos. Por ejemplo, utilice `kubectl get trainingjobs.sagemaker.aws.amazon.com` en lugar de `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 los nuevos operadores de SageMaker IA para Kubernetes
<a name="migrate-resources-to-new-operators-tutorials"></a>

Para obtener guías detalladas sobre el uso de los nuevos operadores de SageMaker IA para Kubernetes, consulte [Usa operadores de SageMaker IA para Kubernetes](kubernetes-sagemaker-operators-ack.md#kubernetes-sagemaker-operators-ack-use)