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
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
Conteúdo
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
Conteúdo
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 umakubectl
versão que esteja dentro de uma versão secundária do seu plano de controle de EKS cluster da Amazon. Por exemplo, um clientekubectl
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
-
-
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.
-
Defina as variáveis ambientais locais
CLUSTER_NAME
eAWS_REGION
da seguinte forma:# Set the Region and cluster export CLUSTER_NAME="
<your cluster name>
" export AWS_REGION="<your region>
" -
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
-
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" } } } ] } -
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. IAMaws iam create-role --region ${AWS_REGION} --role-name
<role name>
--assume-role-policy-document file://trust.json --output=textA 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 AmazonSageMakerFullAccess
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:
-
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
-
Edite o arquivo
installer.yaml
para substituireks.amazonaws.com/role-arn
. Substitua ARN aqui pelo Amazon Resource Name (ARN) para a função OIDC baseada que você criou. -
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.
-
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
-
Navegue para a pasta
amazon-sagemaker-operator-for-k8s/hack/charts/installer
. Edite o arquivorolebased/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. -
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. -
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
-
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
-
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 namespacesagemaker-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.
-
Defina as variáveis ambientais locais
CLUSTER_NAME
eAWS_REGION
da seguinte forma:# Set the Region and cluster export CLUSTER_NAME="
<your cluster name>
" export AWS_REGION="<your region>
" -
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
-
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" } } } ] } -
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. IAMaws iam create-role --region ${AWS_REGION} --role-name
<role name>
--assume-role-policy-document file://trust.json --output=textA 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 AmazonSageMakerFullAccess
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:
-
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
-
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 -
Edite o arquivo
operator.yaml
para colocar recursos em seueks.amazonaws.com/role-arn
. Substitua ARN aqui pelo Amazon Resource Name (ARN) para a função OIDC baseada que você criou. -
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
.
-
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
-
Navegue para a pasta
amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced
. Edite o arquivorolebased/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. -
Instale o gráfico do Helm usando o comando a seguir:
helm install crds crd_chart/
-
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/ -
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
-
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
-
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 namespacemy-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
. kubectl
deve ser instalado no seu PATHsagemaker-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 campoadditional
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:
-
Em um novo terminal, abra o trabalho em um editor usando o
kubectl edit
da seguinte maneira:kubectl edit
<crd type>
<job name>
-
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.