Operadores de SageMaker IA antigos para Kubernetes - SageMaker IA da Amazon

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á.

Operadores de SageMaker IA antigos para Kubernetes

Esta seção é baseada na versão original dos operadores de SageMaker IA para Kubernetes.

Importante

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 do SageMaker Operators for Kubernetes, recomendamos migrar seus recursos para o controlador de serviço ACK da Amazon. SageMaker O controlador de serviço ACK é uma nova geração de SageMaker operadores para Kubernetes com base em AWS controladores para Kubernetes (ACK).

Para obter informações sobre as etapas de migração, consulte Migre recursos para os operadores mais recentes.

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

Instale operadores de SageMaker IA para Kubernetes

Use as etapas a seguir para instalar e usar operadores de SageMaker IA para Kubernetes para treinar, ajustar e implantar modelos de aprendizado de máquina com a Amazon AI. SageMaker

Configuração baseada em perfil do IAM e implantação de operadores

As seções a seguir descrevem as etapas para configurar e implantar a versão original do operador.

Atenção

Lembrete: as etapas a seguir não instalam a versão mais recente do SageMaker AI Operators for Kubernetes. Para instalar os novos operadores de SageMaker IA baseados em ACK para Kubernetes, consulte. Operadores de SageMaker IA mais recentes para Kubernetes

Pré-requisitos

Este guia pressupõe que você concluiu os seguintes pré-requisitos:

  • Instale as seguintes ferramentas na máquina cliente usada para acessar seu cluster do Kubernetes:

    • Versão 1.13 ou posterior do kubectl. Use a versão do kubectl que esteja em uma versão secundária do ambiente de gerenciamento do cluster do Amazon EKS. Por exemplo, um cliente kubectl 1.13 funciona com clusters do Kubernetes 1.13 e 1.14. O OpenID Connect (OIDC) não é compatível com as versões anteriores à 1.13.

    • eksctl versão 0.7.0 ou posterior

    • AWS CLI versão 1.16.232 ou posterior

    • (opcional) Helm versão 3.0 ou posterior

    • aws-iam-authenticator

  • Obtenha permissões do IAM para criar perfis e anexar políticas a eles.

  • Criou um cluster do Kubernetes no qual executar os operadores. Deve ser a versão 1.13 ou 1.14 do Kubernetes. Para criar clusters automatizados usando eksctl, consulte Introdução ao eksctl. Leva de 20 a 30 minutos para provisionar o cluster.

Implantação no escopo do cluster

Antes de implantar seu operador usando um perfil do IAM, associe um provedor de identidade (IdP) do OpenID Connect (OIDC) ao seu perfil para se autenticar com o serviço IAM.

Criar um provedor OIDC para o cluster

As instruções a seguir mostram como criar e associar um provedor OIDC ao seu cluster do Amazon EKS.

  1. Defina as variáveis ambientais locais CLUSTER_NAME e AWS_REGION da seguinte forma:

    # Set the Region and cluster export CLUSTER_NAME="<your cluster name>" export AWS_REGION="<your region>"
  2. Use o comando a seguir para associar o provedor do OIDC ao seu cluster. Para obter mais informações, consulte Habilitar perfis do IAM para contas de serviço em seu cluster.

    eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \ --region ${AWS_REGION} --approve

    A saída será semelhante a:

    [_] eksctl version 0.10.1 [_] using region us-east-1 [_] IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"

Agora que o cluster tem um provedor de identidade OIDC, você pode criar uma função e dar ServiceAccount permissão ao Kubernetes para assumir a função.

Obtenha o ID do OIDC

Para configurar o ServiceAccount, obtenha a URL do emissor do OIDC usando o seguinte comando:

aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \ --query cluster.identity.oidc.issuer --output text

O comando retorna um URL como o seguinte:

https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID

Nesse URL, o valor D48675832CA65BD10A532F597OIDCID é o ID do OIDC. O ID do OIDC para seu cluster é diferente. Você precisa desse valor de ID do OIDC para criar um perfil.

Se sua saída for None, significa que a versão do seu cliente é antiga. Para contornar esse problema, execute o comando apresentado a seguir:

aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC

O URL do OIDC é retornado da seguinte forma:

OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Criar um perfil do IAM
  1. Crie um arquivo chamado trust.json e insira o seguinte bloco de código de relação de confiança nele: Certifique-se de substituir todos os espaços reservados <OIDC ID>, <AWS account number> e <EKS Cluster region> por valores correspondentes ao seu cluster.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::<AWS account number>:oidc-provider/oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:aud": "sts.amazonaws.com", "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:sub": "system:serviceaccount:sagemaker-k8s-operator-system:sagemaker-k8s-operator-default" } } } ] }
  2. Execute o comando a seguir para criar um perfil com a relação de confiança definida no trust.json. Esse perfil permite que o cluster do Amazon EKS obtenha e atualize as credenciais do IAM.

    aws iam create-role --region ${AWS_REGION} --role-name <role name> --assume-role-policy-document file://trust.json --output=text

    A saída será semelhante a:

    ROLE arn:aws:iam::123456789012:role/my-role 2019-11-22T21:46:10Z / ABCDEFSFODNN7EXAMPLE my-role ASSUMEROLEPOLICYDOCUMENT 2012-10-17 STATEMENT sts:AssumeRoleWithWebIdentity Allow STRINGEQUALS sts.amazonaws.com system:serviceaccount:sagemaker-k8s-operator-system:sagemaker-k8s-operator-default PRINCIPAL arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/

    Anote o ROLE ARN; você transmitirá esse valor para seu operador.

Anexe a AmazonSageMakerFullAccess política à função

Para dar acesso à função à SageMaker IA, anexe a AmazonSageMakerFullAccesspolítica. Se quiser limitar as permissões para o operador, você pode criar sua própria política personalizada e anexá-la.

Para anexar a AmazonSageMakerFullAccess, execute o seguinte comando:

aws iam attach-role-policy --role-name <role name> --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess

O Kubernetes ServiceAccount sagemaker-k8s-operator-default deve ter permissões. AmazonSageMakerFullAccess Confirme isso ao instalar o operador.

Implantar o operador

Ao implantar seu operador, você pode usar um arquivo YAML ou charts do Helm.

Implantar o operador usando YAML

Essa é a maneira mais simples implantar seus operadores. O processo é o seguinte:

  1. Faça download da instrução do instalador usando o seguinte comando:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/installer.yaml
  2. Edite o arquivo installer.yaml para substituir eks.amazonaws.com/role-arn. Substitua o ARN aqui pelo nome do recurso da Amazon (ARN) para o perfil baseado no OIDC que você criou.

  3. Use o seguinte comando para implantar o cluster:

    kubectl apply -f installer.yaml
Implante o operador usando charts do Helm

Use o chart do Helm fornecido para instalar o operador.

  1. Clone o diretório do instalador do Helm usando o seguinte comando:

    git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
  2. Navegue para a pasta amazon-sagemaker-operator-for-k8s/hack/charts/installer. Edite o arquivo rolebased/values.yaml, que inclui parâmetros de alto nível para o gráfico. Substitua o ARN do perfil aqui pelo nome do recurso da Amazon (ARN) para o perfil baseado no OIDC que você criou.

  3. Instale o chart do Helm usando o seguinte comando:

    kubectl create namespace sagemaker-k8s-operator-system helm install --namespace sagemaker-k8s-operator-system sagemaker-operator rolebased/

    Se você decidir instalar o operador em um namespace diferente do especificado, precisará ajustar o namespace definido no arquivo de perfil do IAM trust.json para que corresponda.

  4. Depois de um momento, o gráfico será instalado com um nome gerado aleatoriamente. Verifique se a instalação teve êxito executando o seguinte comando:

    helm ls

    A saída será semelhante a:

    NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION sagemaker-operator sagemaker-k8s-operator-system 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0
Verificar a implantação do operador
  1. Você deve conseguir ver as definições de recursos personalizados de SageMaker IA (CRDs) de cada operador implantado em seu cluster executando o seguinte comando:

    kubectl get crd | grep sagemaker

    A saída será semelhante a:

    batchtransformjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z endpointconfigs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z hostingdeployments.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z hyperparametertuningjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z models.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z trainingjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z
  2. Verifique se o pod do operador está sendo executado com êxito. Use o seguinte comando para listar todos os pods:

    kubectl -n sagemaker-k8s-operator-system get pods

    Você deve ver um pod chamado sagemaker-k8s-operator-controller-manager-***** no namespace sagemaker-k8s-operator-system da seguinte forma:

    NAME READY STATUS RESTARTS AGE sagemaker-k8s-operator-controller-manager-12345678-r8abc 2/2 Running 0 23s

Implantação no escopo do Namespace

Você tem a opção de instalar seu operador dentro do escopo de um namespace individual do Kubernetes. Nesse modo, o controlador só monitora e reconcilia recursos com SageMaker IA se os recursos forem criados dentro desse namespace. Isso permite um controle mais refinado sobre qual controlador está gerenciando quais recursos. Isso é útil para implantar em várias AWS contas ou controlar quais usuários têm acesso a tarefas específicas.

Este guia descreve como instalar um operador em um namespace predefinido específico. Para implantar um controlador em um segundo namespace, siga o guia do início ao fim e altere o namespace em cada etapa.

Criar um provedor OIDC para o cluster Amazon EKS

As instruções a seguir mostram como criar e associar um provedor OIDC ao seu cluster do Amazon EKS.

  1. Defina as variáveis ambientais locais CLUSTER_NAME e AWS_REGION da seguinte forma:

    # Set the Region and cluster export CLUSTER_NAME="<your cluster name>" export AWS_REGION="<your region>"
  2. Use o comando a seguir para associar o provedor do OIDC ao seu cluster. Para obter mais informações, consulte Habilitar perfis do IAM para contas de serviço em seu cluster.

    eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \ --region ${AWS_REGION} --approve

    A saída será semelhante a:

    [_] eksctl version 0.10.1 [_] using region us-east-1 [_] IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"

Agora que o cluster tem um provedor de identidade OIDC, crie uma função e dê ServiceAccount permissão ao Kubernetes para assumir a função.

Obtenha ID do OIDC

Para configurar o ServiceAccount, primeiro obtenha a URL do emissor do OpenID Connect usando o seguinte comando:

aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \ --query cluster.identity.oidc.issuer --output text

O comando retorna um URL como o seguinte:

https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID

Nesse URL, o valor D48675832 CA65 BD1 0A532F597OIDCID é o ID do OIDC. O ID do OIDC para seu cluster é diferente. Você precisa desse valor de ID do OIDC para criar um perfil.

Se sua saída for None, significa que a versão do seu cliente é antiga. Para contornar esse problema, execute o comando apresentado a seguir:

aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC

O URL do OIDC é retornado da seguinte forma:

OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Criar seu perfil do IAM
  1. Crie um arquivo chamado trust.json e insira o seguinte bloco de código de relação de confiança nele: Certifique-se de substituir todos os espaços reservados <OIDC ID>, <AWS account number>, <EKS Cluster region> e <Namespace> por valores correspondentes ao seu cluster. Para os fins deste guia, my-namespace é usado para o valor <Namespace>.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::<AWS account number>:oidc-provider/oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:aud": "sts.amazonaws.com", "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:sub": "system:serviceaccount:<Namespace>:sagemaker-k8s-operator-default" } } } ] }
  2. Execute o comando a seguir para criar um perfil com a relação de confiança definida no trust.json. Esse perfil permite que o cluster do Amazon EKS obtenha e atualize as credenciais do IAM.

    aws iam create-role --region ${AWS_REGION} --role-name <role name> --assume-role-policy-document file://trust.json --output=text

    A saída será semelhante a:

    ROLE arn:aws:iam::123456789012:role/my-role 2019-11-22T21:46:10Z / ABCDEFSFODNN7EXAMPLE my-role ASSUMEROLEPOLICYDOCUMENT 2012-10-17 STATEMENT sts:AssumeRoleWithWebIdentity Allow STRINGEQUALS sts.amazonaws.com system:serviceaccount:my-namespace:sagemaker-k8s-operator-default PRINCIPAL arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/

Anote o ROLE ARN. Você transmitirá esse valor para seu operador.

Vincule a AmazonSageMakerFullAccess política à sua função

Para dar acesso à função à SageMaker IA, anexe a AmazonSageMakerFullAccesspolítica. Se quiser limitar as permissões para o operador, você pode criar sua própria política personalizada e anexá-la.

Para anexar a AmazonSageMakerFullAccess, execute o seguinte comando:

aws iam attach-role-policy --role-name <role name> --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess

O Kubernetes ServiceAccount sagemaker-k8s-operator-default deve ter permissões. AmazonSageMakerFullAccess Confirme isso ao instalar o operador.

Implantar o operador em seu namespace

Ao implantar seu operador, você pode usar um arquivo YAML ou gráficos do Helm.

Implantar o operador em seu namespace usando o YAML

Há duas partes na implantação de um operador dentro do escopo de um namespace. O primeiro é o conjunto dos CRDs que estão instalados em um nível de cluster. Essas definições de recursos só precisam ser instaladas uma vez por cluster do Kubernetes. A segunda parte são as permissões do operador e a implantação em si.

Se você ainda não instalou o CRDs no cluster, aplique o instalador do CRD YAML usando o seguinte comando:

kubectl apply -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml

Para instalar o operador no cluster:

  1. Faça download do instalador de operador do YAML usando o seguinte comando:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/operator.yaml
  2. Atualize o instalador YAML para colocar os recursos no namespace especificado usando o seguinte comando:

    sed -i -e 's/PLACEHOLDER-NAMESPACE/<YOUR NAMESPACE>/g' operator.yaml
  3. Edite o arquivo operator.yaml para colocar recursos em seu eks.amazonaws.com/role-arn. Substitua o ARN aqui pelo nome do recurso da Amazon (ARN) para o perfil baseado no OIDC que você criou.

  4. Use o seguinte comando para implantar o cluster:

    kubectl apply -f operator.yaml
Implantar o operador em seu namespace usando os charts do Helm

Há duas partes necessárias para implantar um operador dentro do escopo de um namespace. O primeiro é o conjunto dos CRDs que estão instalados em um nível de cluster. Essas definições de recursos só precisam ser instaladas uma vez por cluster do Kubernetes. A segunda parte são as permissões do operador e a implantação em si. Ao usar os charts do Helm, você deve primeiro criar o namespace usando o kubectl.

  1. Clone o diretório do instalador do Helm usando o seguinte comando:

    git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
  2. Navegue para a pasta amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced. Edite o arquivo rolebased/values.yaml, que inclui parâmetros de alto nível para o gráfico. Substitua o ARN do perfil aqui pelo nome do recurso da Amazon (ARN) para o perfil baseado no OIDC que você criou.

  3. Instale o chart do Helm usando o seguinte comando:

    helm install crds crd_chart/
  4. Crie o namespace necessário e instale o operador usando o seguinte comando:

    kubectl create namespace <namespace> helm install --n <namespace> op operator_chart/
  5. Depois de um momento, o gráfico será instalado com o nome sagemaker-operator. Verifique se a instalação teve êxito executando o seguinte comando:

    helm ls

    A saída será semelhante a:

    NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION sagemaker-operator my-namespace 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0
Verificar a implantação do operador em seu namespace
  1. Você deve conseguir ver as definições de recursos personalizados de SageMaker IA (CRDs) de cada operador implantado em seu cluster executando o seguinte comando:

    kubectl get crd | grep sagemaker

    A saída será semelhante a:

    batchtransformjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z endpointconfigs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z hostingdeployments.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z hyperparametertuningjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z models.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z trainingjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z
  2. Verifique se o pod do operador está sendo executado com êxito. Use o seguinte comando para listar todos os pods:

    kubectl -n my-namespace get pods

    Você deve ver um pod chamado sagemaker-k8s-operator-controller-manager-***** no namespace my-namespace da seguinte forma:

    NAME READY STATUS RESTARTS AGE sagemaker-k8s-operator-controller-manager-12345678-r8abc 2/2 Running 0 23s

Instale o kubectl plug-in SageMaker AI logs

Como parte dos operadores de SageMaker IA para Kubernetes, você pode usar o smlogs plug-in para. kubectl Isso permite que CloudWatch os registros de SageMaker IA sejam transmitidos comkubectl. kubectldeve ser instalado em seu PATH. Os comandos a seguir colocam o binário no diretório sagemaker-k8s-bin do seu diretório inicial e adicionam esse diretório ao seu PATH.

export os="linux" wget https://amazon-sagemaker-operator-for-k8s-us-east-1.s3.amazonaws.com/kubectl-smlogs-plugin/v1/${os}.amd64.tar.gz tar xvzf ${os}.amd64.tar.gz # Move binaries to a directory in your homedir. mkdir ~/sagemaker-k8s-bin cp ./kubectl-smlogs.${os}.amd64/kubectl-smlogs ~/sagemaker-k8s-bin/. # This line adds the binaries to your PATH in your .bashrc. echo 'export PATH=$PATH:~/sagemaker-k8s-bin' >> ~/.bashrc # Source your .bashrc to update environment variables: source ~/.bashrc

Use o seguinte comando para verificar se o plug-in do kubectl está instalado corretamente:

kubectl smlogs

Se o plug-in kubectl estiver instalado corretamente, sua saída deverá ter a seguinte aparência:

View SageMaker AI logs via Kubernetes Usage: smlogs [command] Aliases: smlogs, SMLogs, Smlogs Available Commands: BatchTransformJob View BatchTransformJob logs via Kubernetes TrainingJob View TrainingJob logs via Kubernetes help Help about any command Flags: -h, --help help for smlogs Use "smlogs [command] --help" for more information about a command.

Limpar os recursos

Para desinstalar o operador do seu cluster, você deve primeiro excluir todos os recursos de SageMaker IA do cluster. Não fazer isso causa a interrupção da operação de exclusão do operador. Execute os seguintes comandos para encerrar todos os trabalhos:

# Delete all SageMaker AI jobs from Kubernetes kubectl delete --all --all-namespaces hyperparametertuningjob.sagemaker.aws.amazon.com kubectl delete --all --all-namespaces trainingjobs.sagemaker.aws.amazon.com kubectl delete --all --all-namespaces batchtransformjob.sagemaker.aws.amazon.com kubectl delete --all --all-namespaces hostingdeployment.sagemaker.aws.amazon.com

Você deve ver uma saída semelhante a:

$ kubectl delete --all --all-namespaces trainingjobs.sagemaker.aws.amazon.com trainingjobs.sagemaker.aws.amazon.com "xgboost-mnist-from-for-s3" deleted $ kubectl delete --all --all-namespaces hyperparametertuningjob.sagemaker.aws.amazon.com hyperparametertuningjob.sagemaker.aws.amazon.com "xgboost-mnist-hpo" deleted $ kubectl delete --all --all-namespaces batchtransformjob.sagemaker.aws.amazon.com batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted $ kubectl delete --all --all-namespaces hostingdeployment.sagemaker.aws.amazon.com hostingdeployment.sagemaker.aws.amazon.com "host-xgboost" deleted

Depois de excluir todos os trabalhos de SageMaker IA, consulte Excluir operadores para excluir o operador do seu cluster.

Excluir operadores

Excluir operadores baseados em cluster

Operadores instalados usando o YAML

Para desinstalar o operador do seu cluster, certifique-se de que todos os recursos de SageMaker IA tenham sido excluídos do cluster. Não fazer isso causa a interrupção da operação de exclusão do operador.

nota

Antes de excluir seu cluster, certifique-se de excluir todos os recursos de SageMaker IA do cluster. Consulte Limpar os recursos para obter mais informações.

Depois de excluir todos os trabalhos de SageMaker IA, use kubectl para excluir o operador do cluster:

# Delete the operator and its resources kubectl delete -f /installer.yaml

Você deve ver uma saída semelhante a:

$ kubectl delete -f raw-yaml/installer.yaml namespace "sagemaker-k8s-operator-system" deleted customresourcedefinition.apiextensions.k8s.io "batchtransformjobs.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "endpointconfigs.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "hostingdeployments.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "hyperparametertuningjobs.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "models.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "trainingjobs.sagemaker.aws.amazon.com" deleted role.rbac.authorization.k8s.io "sagemaker-k8s-operator-leader-election-role" deleted clusterrole.rbac.authorization.k8s.io "sagemaker-k8s-operator-manager-role" deleted clusterrole.rbac.authorization.k8s.io "sagemaker-k8s-operator-proxy-role" deleted rolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-leader-election-rolebinding" deleted clusterrolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-manager-rolebinding" deleted clusterrolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-proxy-rolebinding" deleted service "sagemaker-k8s-operator-controller-manager-metrics-service" deleted deployment.apps "sagemaker-k8s-operator-controller-manager" deleted secrets "sagemaker-k8s-operator-abcde" deleted
Operadores instalados usando os charts do Helm

Para excluir o operador CRDs, primeiro exclua todos os trabalhos em execução. Em seguida, exclua o chart do Helm que foi usado para implantar os operadores usando os seguintes comandos:

# get the helm charts helm ls # delete the charts helm delete <chart_name>

Excluir operadores baseados em namespace

Operadores instalados com o YAML

Para desinstalar o operador do seu cluster, primeiro verifique se todos os recursos de SageMaker IA foram excluídos do cluster. Não fazer isso causa a interrupção da operação de exclusão do operador.

nota

Antes de excluir seu cluster, certifique-se de excluir todos os recursos de SageMaker IA do cluster. Consulte Limpar os recursos para obter mais informações.

Depois de excluir todos os trabalhos de SageMaker IA, use kubectl para excluir primeiro o operador do namespace e depois o CRDs do cluster. Execute os seguintes comandos para excluir o operador do cluster:

# Delete the operator using the same yaml file that was used to install the operator kubectl delete -f operator.yaml # Now delete the CRDs using the CRD installer yaml kubectl delete -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml # Now you can delete the namespace if you want kubectl delete namespace <namespace>
Operadores instalados com os charts do Helm

Para excluir o operador CRDs, primeiro exclua todos os trabalhos em execução. Em seguida, exclua o chart do Helm que foi usado para implantar os operadores usando os seguintes comandos:

# Delete the operator helm delete <chart_name> # delete the crds helm delete crds # optionally delete the namespace kubectl delete namespace <namespace>

Solução de problemas

Depurar um trabalho com falha

Use essas etapas para depurar um trabalho com falha.

  • Verifique o status do trabalho executando o seguinte:

    kubectl get <CRD Type> <job name>
  • Se o trabalho foi criado no SageMaker AI, você pode usar o comando a seguir para ver o STATUS e oSageMaker Job Name:

    kubectl get <crd type> <job name>
  • Você pode usar o smlogs para encontrar a causa do problema usando o seguinte comando:

    kubectl smlogs <crd type> <job name>
  • Você também pode usar o comando describe para obter mais detalhes sobre o trabalho usando o comando a seguir. A saída tem um campo additional com mais informações sobre o status do trabalho.

    kubectl describe <crd type> <job name>
  • Se o trabalho não foi criado no SageMaker AI, use os registros do pod do operador para encontrar a causa do problema da seguinte maneira:

    $ kubectl get pods -A | grep sagemaker # Output: sagemaker-k8s-operator-system sagemaker-k8s-operator-controller-manager-5cd7df4d74-wh22z 2/2 Running 0 3h33m $ kubectl logs -p <pod name> -c manager -n sagemaker-k8s-operator-system

Excluir um CRD de operador

Se a exclusão de um trabalho não estiver funcionando, verifique se o operador está em execução. Se o operador não estiver em execução, você precisará excluir o finalizador usando as seguintes etapas:

  1. Em um novo terminal, abra o trabalho em um editor usando o kubectl edit da seguinte maneira:

    kubectl edit <crd type> <job name>
  2. Edite o trabalho para excluir o finalizador removendo as duas linhas a seguir do arquivo. Salve o arquivo e o trabalho será excluído.

    finalizers: - sagemaker-operator-finalizer

Imagens e SMlogs em cada região

A tabela a seguir lista as imagens do operador disponíveis e SMLogs em cada região.

Região Imagem do controlador Linux SMLogs
us-east-1 957583890962.dkr.ecr.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1 https://s3.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz
us-east-2 922499468684.dkr.ecr.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1 https://s3.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz
us-west-2 640106867763.dkr.ecr.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1 https://s3.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-west-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz
eu-west-1 613661167059.dkr.ecr.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1 https://s3.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-eu-west-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz