SageMaker Operadores antigos para Kubernetes - 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á.

SageMaker Operadores antigos para Kubernetes

Esta seção é baseada na versão original de SageMaker Operators for Kubernetes.

Importante

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

Se você estiver usando a versão v1.2.2 ou inferior do 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 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 Operators for Kubernetes

SageMaker Operadores de instalação para Kubernetes

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

IAMconfiguração baseada em funções e implantação do operador

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 Operators for Kubernetes. Para instalar os novos SageMaker operadores ACK baseados no Kubernetes, consulte. SageMaker Operadores 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 uma kubectl versão que esteja dentro de uma versão secundária do seu plano de controle de EKS cluster da Amazon. Por exemplo, um cliente kubectl 1.13 funciona com clusters do Kubernetes 1.13 e 1.14. O OpenID Connect (OIDC) não é suportado em versões anteriores à 1.13.

    • eksctl versão 0.7.0 ou posterior

    • AWS CLIVersão 1.16.232 ou posterior

    • (opcional) Helm versão 3.0 ou posterior

    • aws-iam-authenticator

  • Tenha IAM permissões para criar funções e anexar políticas às funções.

  • 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 sua operadora usando uma IAM função, associe um provedor de identidade (IdPOIDC) do OpenID Connect () à sua função para se autenticar no serviço. IAM

Crie um OIDC provedor para seu cluster

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

  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 OIDC provedor ao seu cluster. Para obter mais informações, consulte Habilitando IAM funções 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 OIDC identidade, você pode criar uma função e dar ServiceAccount permissão ao Kubernetes para assumir a função.

Obtenha o OIDC ID

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

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

O comando retorna URL algo parecido com o seguinte:

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

Nesse casoURL, o valor D48675832CA65BD10A532F597OIDCID é o OIDC ID. O OIDC ID do seu cluster é diferente. Você precisa desse valor de OIDC ID para criar uma função.

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 OIDC URL é retornado da seguinte forma:

OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Crie uma IAM função
  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. Essa função permite que o EKS cluster da Amazon 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, 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 YAML arquivo ou gráficos do Helm.

Implante 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 ARN aqui pelo Amazon Resource Name (ARN) para a função OIDC baseada 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 gráfico do Helm fornecido para instalar o operador.

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

    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 a função ARN aqui pelo Amazon Resource Name (ARN) para a função OIDC baseada que você criou.

  3. Instale o gráfico do Helm usando o comando a seguir:

    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 IAM função trust.json para corresponder.

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

    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 SageMaker personalizadas (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 comando a seguir 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 SageMaker 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.

Crie um OIDC provedor para seu EKS cluster Amazon

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

  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 OIDC provedor ao seu cluster. Para obter mais informações, consulte Habilitando IAM funções 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 OIDC identidade, crie uma função e dê ServiceAccount permissão ao Kubernetes para assumir a função.

Obtenha seu OIDC ID

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

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

O comando retorna URL algo parecido com o seguinte:

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

Nesse casoURL, o valor D48675832 CA65BD1 0A532F597 é o ID. OIDCID OIDC O OIDC ID do seu cluster é diferente. Você precisa desse valor de OIDC ID para criar uma função.

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 OIDC URL é retornado da seguinte forma:

OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Crie sua IAM função
  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. Essa função permite que o EKS cluster da Amazon 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, 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 YAML arquivo ou gráficos do Helm.

Implante o operador em seu namespace usando 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 CRD instalador 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 o download do instalador do operador 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 ARN aqui pelo Amazon Resource Name (ARN) para a função OIDC baseada 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 gráficos 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 gráficos do Helm, você deve primeiro criar o namespace usando o kubectl.

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

    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 a função ARN aqui pelo Amazon Resource Name (ARN) para a função OIDC baseada que você criou.

  3. Instale o gráfico do Helm usando o comando a seguir:

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

    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 comando a seguir:

    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 SageMaker personalizadas (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 comando a seguir 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 de registros

Como parte dos SageMaker Operadores do Kubernetes, você pode usar o smlogs plug-in para. kubectl Isso permite que SageMaker CloudWatch os registros sejam transmitidos comkubectl. kubectldeve ser instalado no 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 comando a seguir 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 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 SageMaker recursos do cluster. Não fazer isso causa a interrupção da operação de exclusão do operador. Execute os comandos a seguir para encerrar todos os trabalhos:

# Delete all SageMaker 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 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 SageMaker trabalhos, consulte Excluir operadores para excluir o operador do seu cluster.

Excluir operadores

Excluir operadores baseados em cluster

Operadores instalados usando YAML

Para desinstalar o operador do seu cluster, verifique se todos os SageMaker recursos 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 SageMaker recursos do cluster. Consulte Limpar os recursos Para mais informações.

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

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

Você deve ver 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 gráficos do Helm

Para excluir o operadorCRDs, primeiro exclua todos os trabalhos em execução. Em seguida, exclua o gráfico 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 YAML

Para desinstalar o operador do seu cluster, primeiro verifique se todos os SageMaker recursos 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 SageMaker recursos do cluster. Consulte Limpar os recursos Para mais informações.

Depois de excluir todos os SageMaker trabalhos, use kubectl para excluir primeiro o operador do namespace e depois o CRDs do cluster. Execute os comandos a seguir 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 gráficos do Helm

Para excluir o operadorCRDs, primeiro exclua todos os trabalhos em execução. Em seguida, exclua o gráfico 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 em SageMaker, 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 em SageMaker, 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

Excluindo um operador CRD

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 etapas a seguir:

  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