

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
<a name="kubernetes-sagemaker-operators-end-of-support"></a>

Esta seção é baseada na versão original do [ SageMaker AI Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s).

**Importante**  
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 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 para Amazon. SageMaker ](https://github.com/aws-controllers-k8s/sagemaker-controller) O controlador de serviço ACK é uma nova geração de SageMaker operadores para Kubernetes baseada em [AWS Controllers for Kubernetes (ACK). ](https://aws-controllers-k8s.github.io/community/)  
Para obter informações sobre as etapas de migração, consulte [Migre recursos para os operadores mais recentes](kubernetes-sagemaker-operators-migrate.md).  
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 dos operadores de SageMaker IA para Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

**Topics**
+ [Instale operadores de SageMaker IA para Kubernetes](#kubernetes-sagemaker-operators-eos-install)
+ [Use empregos de SageMaker IA da Amazon](kubernetes-sagemaker-jobs.md)
+ [Migre recursos para os operadores mais recentes](kubernetes-sagemaker-operators-migrate.md)
+ [Anunciando o fim do suporte da versão original dos operadores de SageMaker IA para Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

## Instale operadores de SageMaker IA para Kubernetes
<a name="kubernetes-sagemaker-operators-eos-install"></a>

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

**Topics**
+ [Configuração baseada em perfil do IAM e implantação de operadores](#iam-role-based-setup-and-operator-deployment)
+ [Limpar os recursos](#cleanup-operator-resources)
+ [Excluir operadores](#delete-operators)
+ [Solução de problemas](#troubleshooting)
+ [Imagens e SMLogs em cada Região](#images-and-smlogs-in-each-region)

### Configuração baseada em perfil do IAM e implantação de operadores
<a name="iam-role-based-setup-and-operator-deployment"></a>

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 ACK-based SageMaker IA para Kubernetes, consulte. [Operadores de SageMaker IA mais recentes para Kubernetes](kubernetes-sagemaker-operators-ack.md)

#### Pré-requisitos
<a name="prerequisites"></a>

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`](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html). 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`](https://github.com/weaveworks/eksctl) versão 0.7.0 ou posterior 
  + [AWS CLI ](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) versão 1.16.232 ou posterior 
  + (opcional) [Helm](https://helm.sh/docs/intro/install/) versão 3.0 ou posterior 
  + [aws-iam-authenticator](https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html) 
+ 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](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html). Leva de 20 a 30 minutos para provisionar o cluster. 

#### Cluster-scoped implantação
<a name="cluster-scoped-deployment"></a>

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
<a name="create-an-openid-connect-provider-for-your-cluster"></a>

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

1. 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](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html). 

   ```
   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
<a name="get-the-oidc-id"></a>

Para configurar o ServiceAccount, obtenha o 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
<a name="create-an-iam-role"></a>

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. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::{{111122223333}}: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"
             }
           }
         }
       ]
     }
   ```

------

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws-cn:iam::{{111122223333}}: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"
             }
           }
         }
       ]
     }
   ```

------

1. 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
<a name="attach-the-amazonsagemakerfullaccess-policy-to-the-role"></a>

Para dar à função acesso à SageMaker IA, anexe a [ AmazonSageMakerFullAccess ](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess) polí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
<a name="deploy-the-operator"></a>

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

##### Implantar o operador usando YAML
<a name="deploy-the-operator-using-yaml"></a>

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

1. Edite o arquivo `installer.yaml` para substituir `eks.amazonaws.com/role-arn`. Substitua o ARN aqui pelo nome de recurso da Amazon (ARN) da OIDC-based função que você criou. 

1. Use o seguinte comando para implantar o cluster: 

   ```
   kubectl apply -f installer.yaml
   ```

##### Implante o operador usando charts do Helm
<a name="deploy-the-operator-using-helm-charts"></a>

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

1. 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 da função aqui pelo nome de recurso da Amazon (ARN) da OIDC-based função que você criou. 

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

1. 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
<a name="verify-the-operator-deployment"></a>

1. Você deve conseguir ver as definições de recursos personalizados de SageMaker IA (CRDs) para 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
   ```

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

#### Namespace-scoped implantação
<a name="namespace-scoped-deployment"></a>

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 a 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
<a name="create-an-openid-connect-provider-for-your-eks-cluster"></a>

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

1. 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](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html). 

   ```
   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
<a name="get-your-oidc-id"></a>

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 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 seu perfil do IAM
<a name="create-your-iam-role"></a>

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

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
           "Federated": "arn:aws:iam::{{111122223333}}: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"
             }
           }
         }
       ]
     }
   ```

------

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws-cn:iam::{{111122223333}}: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"
             }
           }
         }
       ]
     }
   ```

------

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

##### Anexe a AmazonSageMakerFullAccess política à sua função
<a name="attach-the-amazonsagemakerfullaccess-policy-to-your-role"></a>

Para dar à função acesso à SageMaker IA, anexe a [`AmazonSageMakerFullAccess`](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess) polí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
<a name="deploy-the-operator-to-your-namespace"></a>

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

##### Implantar o operador em seu namespace usando o YAML
<a name="deploy-the-operator-to-your-namespace-using-yaml"></a>

Há duas partes na implantação de um operador dentro do escopo de um namespace. A primeira é o conjunto de CRDs que sã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 os CRDs no cluster, aplique o instalador de CRD do 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
   ```

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

1. Edite o arquivo `operator.yaml` para colocar recursos em seu `eks.amazonaws.com/role-arn`. Substitua o ARN aqui pelo nome de recurso da Amazon (ARN) da OIDC-based função que você criou. 

1. Use o seguinte comando para implantar o cluster: 

   ```
   kubectl apply -f operator.yaml
   ```

##### Implantar o operador em seu namespace usando os charts do Helm
<a name="deploy-the-operator-to-your-namespace-using-helm-charts"></a>

Há duas partes necessárias para implantar um operador dentro do escopo de um namespace. A primeira é o conjunto de CRDs que sã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
   ```

1. 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 da função aqui pelo nome de recurso da Amazon (ARN) da OIDC-based função que você criou. 

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

   ```
   helm install crds crd_chart/
   ```

1. Crie o namespace necessário e instale o operador usando o seguinte comando: 

   ```
   kubectl create namespace {{<namespace>}}
   helm install --n {{<namespace>}} op operator_chart/
   ```

1. 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
<a name="verify-the-operator-deployment-to-your-namespace"></a>

1. Você deve conseguir ver as definições de recursos personalizados de SageMaker IA (CRDs) para 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
   ```

1. 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 plugin `` kubectl de registros do SageMaker AI
<a name="install-the-amazon-sagemaker-logs-kubectl-plugin"></a>

 Como parte do SageMaker AI Operators for Kubernetes, você pode usar o `smlogs` [ plug-in para. ](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/) `kubectl` Isso permite que CloudWatch os registros de SageMaker IA sejam transmitidos com`kubectl`. `kubectl`deve ser instalado em seu [ PATH](http://www.linfo.org/path_env_var.html). 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
<a name="cleanup-operator-resources"></a>

Para desinstalar o operador do seu cluster, primeiro certifique-se de 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](#delete-operators) como excluir o operador do seu cluster.

### Excluir operadores
<a name="delete-operators"></a>

#### Excluir operadores baseados em cluster
<a name="delete-cluster-based-operators"></a>

##### Operadores instalados usando o YAML
<a name="operators-installed-using-yaml"></a>

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](#cleanup-operator-resources) 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
<a name="operators-installed-using-helm-charts"></a>

Para excluir os CRDs do operador, 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
<a name="delete-namespace-based-operators"></a>

##### Operadores instalados com o YAML
<a name="operators-installed-with-yaml"></a>

Para desinstalar o operador do seu cluster, primeiro 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](#cleanup-operator-resources) 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 os 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
<a name="operators-installed-with-helm-charts"></a>

Para excluir os CRDs do operador, 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
<a name="troubleshooting"></a>

#### Depurar um trabalho com falha
<a name="debugging-a-failed-job"></a>

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 na SageMaker IA, você pode usar o comando a seguir para ver o `STATUS` e o`SageMaker 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 na SageMaker IA, use os registros do pod do operador para encontrar a causa do problema da seguinte forma: 

  ```
  $ 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
<a name="deleting-an-operator-crd"></a>

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

1. 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 name="images-and-smlogs-in-each-region"></a>

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


|  Região  |  Imagem do controlador  |  SMLogs Linux  | 
| --- | --- | --- | 
|  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](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](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](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](https://s3.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-eu-west-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 