Migre recursos para os operadores mais recentes - Amazon SageMaker

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

Estamos interrompendo o desenvolvimento e o suporte técnico da versão original do SageMaker Operators for Kubernetes.

Se você estiver usando atualmente a versão v1.2.2 ou inferior de SageMaker Operators for Kubernetes, recomendamos migrar seus recursos para o ACKcontrolador de serviço da Amazon. SageMaker O controlador ACK de serviço é uma nova geração de SageMaker operadores para Kubernetes com base em AWS controladores para Kubernetes (). 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 Operators for Kubernetes

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

nota

Os SageMaker operadores mais recentes do Kubernetes não são compatíveis com versões anteriores.

Pré-requisitos

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

  1. Instale os SageMaker operadores mais recentes para Kubernetes. Consulte Configuração no Machine Learning com o ACK SageMaker controlador para step-by-step obter instruções.

  2. Se você estiver usando HostingAutoscalingPolicyrecursos, instale o novo Application Auto Scaling Operators. Consulte Configuração em Scale SageMaker Workloads with 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 ACK SageMaker serviço poderá determinar a especificação e o status do AWS recurso e reconciliar o recurso como se o ACK controlador o tivesse criado originalmente.

Adote recursos

Os novos SageMaker operadores 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 na ACK documentação.

As etapas a seguir mostram como os novos SageMaker operadores do Kubernetes podem adotar um endpoint 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

HostingAutoscalingPolicyrecursos

O recurso HostingAutoscalingPolicy (HAP) consiste em vários recursos do Application Auto Scaling: e. ScalableTarget ScalingPolicy Ao adotar um HAP recurso comACK, primeiro instale o controlador Application Auto Scaling. Para adotar HAP recursos, você precisa adotar ambos ScalableTarget e ScalingPolicy recursos. Você pode encontrar o identificador de recursos para esses recursos no status do HostingAutoscalingPolicy recurso ()status.ResourceIDList.

HostingDeployment recursos

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

Para obter uma lista de todos os SageMaker recursos compatíveis, consulte a ACKAPIReferência.

Limpe os recursos antigos

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

Etapa 1: desinstalar o operador antigo

Para desinstalar o operador antigo, consulte Excluir operadores.

Atenção

Desinstale o operador antigo antes de excluir qualquer recurso antigo.

Etapa 2: remover finalizadores e excluir recursos antigos

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 SageMaker operadores para Kubernetes

Para obter guias detalhados sobre o uso dos novos SageMaker operadores para Kubernetes, consulte Use SageMaker operadores para Kubernetes