

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Migre recursos para os operadores mais recentes
<a name="kubernetes-sagemaker-operators-migrate"></a>

Estamos interrompendo o desenvolvimento e o suporte técnico da versão original do [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master).

Se você estiver usando atualmente a versão `v1.2.2` ou inferior do [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master), recomendamos migrar seus recursos para o [controlador de serviço ACK da Amazon](https://github.com/aws-controllers-k8s/sagemaker-controller). SageMaker O controlador de serviço ACK é uma nova geração de SageMaker operadores para Kubernetes com base em [AWS controladores para Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).

Para obter respostas às perguntas frequentes sobre o fim do suporte da versão original do SageMaker Operators for Kubernetes, consulte [Anunciando o fim do suporte da versão original do SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Use as etapas a seguir para migrar seus recursos e usar o ACK para treinar, ajustar e implantar modelos de aprendizado de máquina com a Amazon SageMaker AI.

**nota**  
Os operadores de SageMaker IA mais recentes para Kubernetes não são compatíveis com versões anteriores.

**Topics**
+ [Pré-requisitos](#migrate-resources-to-new-operators-prerequisites)
+ [Adote recursos](#migrate-resources-to-new-operators-steps)
+ [Limpe os recursos antigos](#migrate-resources-to-new-operators-cleanup)
+ [Use os novos operadores de SageMaker IA para Kubernetes](#migrate-resources-to-new-operators-tutorials)

## Pré-requisitos
<a name="migrate-resources-to-new-operators-prerequisites"></a>

Para migrar com sucesso os recursos para os operadores de SageMaker IA mais recentes do Kubernetes, você deve fazer o seguinte:

1. Instale os operadores de SageMaker IA mais recentes para Kubernetes. Consulte [Configuração](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup) no *Machine Learning com o ACK SageMaker AI Controller* para step-by-step obter instruções.

1. Se você estiver usando [HostingAutoscalingPolicy recursos](#migrate-resources-to-new-operators-hap), instale o novo Application Auto Scaling Operators. Consulte [Configuração](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/#setup) em *escala de cargas de trabalho de SageMaker IA com Application Auto* Scaling step-by-step para obter instruções. Essa etapa é opcional se você não estiver usando HostingAutoScalingPolicy recursos.

Se as permissões forem configuradas corretamente, o controlador de serviço ACK SageMaker AI poderá determinar a especificação e o status do AWS recurso e reconciliar o recurso como se o controlador ACK o tivesse criado originalmente.

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

Os novos operadores de SageMaker IA para Kubernetes oferecem a capacidade de adotar recursos que não foram originalmente criados pelo controlador de serviço ACK. Para obter mais informações, consulte [Adotar AWS recursos existentes](https://aws-controllers-k8s.github.io/community/docs/user-docs/adopted-resource/) na documentação do ACK.

As etapas a seguir mostram como os novos operadores de SageMaker IA para Kubernetes podem adotar um endpoint de IA existente SageMaker . Salve o código de amostra a seguir em um arquivo chamado `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
```

Envie o recurso personalizado (CR) usando `kubectl apply`:

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

Use `kubectl describe` para verificar as condições de status do seu recurso adotado.

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

Verifique se a condição `ACK.Adopted` é `True`. A saída deve ser semelhante ao seguinte exemplo:

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

Verifique se seu recurso existe em seu cluster:

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

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

O recurso `HostingAutoscalingPolicy` (HAP) consiste em vários recursos do Application Auto Scaling: `ScalableTarget` e `ScalingPolicy`. Ao adotar um recurso HAP com ACK, primeiro instale o [controlador Application Autox Scaling](https://github.com/aws-controllers-k8s/applicationautoscaling-controller). Para adotar os recursos do HAP, você precisa adotar tanto o recurso `ScalableTarget` como o `ScalingPolicy`. Você pode encontrar o identificador de recursos para esses recursos no status do `HostingAutoscalingPolicy` recurso ()`status.ResourceIDList`.

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

O `HostingDeployment` recurso consiste em vários recursos de SageMaker IA: `Endpoint``EndpointConfig`, e cada um`Model`. Se você adotar um endpoint de SageMaker IA no ACK, precisará adotar o `Endpoint``EndpointConfig`, e cada um `Model` separadamente. Os nomes `Endpoint`, `EndpointConfig` e `Model`, podem ser encontrados no status do recurso `HostingDeployment` (`status.endpointName`, `status.endpointConfigName` e`status.modelNames`).

Para obter uma lista de todos os recursos de SageMaker IA compatíveis, consulte a [Referência da API ACK](https://aws-controllers-k8s.github.io/community/reference/).

## Limpe os recursos antigos
<a name="migrate-resources-to-new-operators-cleanup"></a>

Depois que os novos operadores de SageMaker IA para Kubernetes adotarem seus recursos, você poderá desinstalar os operadores antigos e limpar os recursos antigos.

### Etapa 1: desinstalar o operador antigo
<a name="migrate-resources-to-new-operators-uninstall"></a>

Para desinstalar o operador antigo, consulte [Excluir operadores](kubernetes-sagemaker-operators-end-of-support.md#delete-operators).

**Atenção**  
Desinstale o operador antigo antes de excluir qualquer recurso antigo.

### Etapa 2: remover finalizadores e excluir recursos antigos
<a name="migrate-resources-to-new-operators-delete-resources"></a>

**Atenção**  
Antes de excluir recursos antigos, certifique-se de ter desinstalado o operador antigo.

Depois de desinstalar o operador antigo, você deve remover explicitamente os finalizadores para excluir os recursos antigos do operador. O exemplo de script a seguir mostra como excluir todos os trabalhos de treinamento gerenciados pelo operador antigo em um determinado namespace. Você pode usar um padrão semelhante para excluir recursos adicionais depois que eles forem adotados pelo novo operador.

**nota**  
Você deve usar nomes completos de recursos para obter recursos. Por exemplo, use `kubectl get trainingjobs.sagemaker.aws.amazon.com` em vez 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
```

## Use os novos operadores de SageMaker IA para Kubernetes
<a name="migrate-resources-to-new-operators-tutorials"></a>

Para obter guias detalhados sobre como usar os novos operadores de SageMaker IA para Kubernetes, consulte [Use operadores de SageMaker IA para Kubernetes](kubernetes-sagemaker-operators-ack.md#kubernetes-sagemaker-operators-ack-use)