

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 de IA para Kubernetes
<a name="kubernetes-sagemaker-operators"></a>

SageMaker Os operadores de IA para Kubernetes facilitam que desenvolvedores e cientistas de dados que usam o Kubernetes treinem, ajustem e implantem modelos de aprendizado de máquina (ML) em IA. SageMaker Você pode instalar esses operadores de SageMaker IA em seu cluster Kubernetes no Amazon Elastic Kubernetes Service (Amazon EKS SageMaker ) para criar trabalhos de IA de forma nativa usando a API do Kubernetes e ferramentas de linha de comando do Kubernetes, como. `kubectl` Este guia mostra como configurar e usar os operadores para executar treinamento de modelos, ajuste de hiperparâmetros ou inferência (em tempo real e em lote) na SageMaker IA a partir de um cluster Kubernetes. Os procedimentos e diretrizes deste capítulo pressupõem que você esteja familiarizado com o Kubernetes e seus comandos básicos.

**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 atualmente 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 da Amazon](https://github.com/aws-controllers-k8s/sagemaker-controller). SageMaker O controlador de serviço ACK é uma nova geração de SageMaker operadores para Kubernetes com base em [AWS controladores para Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
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 do SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

**nota**  
Não há custo adicional para o uso desses operadores. Você incorre em cobranças por todos os recursos de SageMaker IA usados por meio desses operadores.

## O que é um operador?
<a name="kubernetes-sagemaker-operators-overview"></a>

Um operador do Kubernetes é um controlador de aplicações que gerencia aplicações em nome de um usuário do Kubernetes. Os controladores do ambiente de gerenciamento abrangem vários circuitos de controle que atendem a um gerenciador central de estado (ETCD) para regular o estado da aplicação que eles controlam. Exemplos de tais aplicações incluem [C loud-controller-manager](https://kubernetes.io/docs/concepts/architecture/cloud-controller/) `[kube-controller-manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)` e. Os operadores normalmente fornecem uma abstração de nível mais alto do que a API bruta do Kubernetes, facilitando a implantação e o gerenciamento de aplicações pelos usuários. Para adicionar novos recursos ao Kubernetes, os desenvolvedores podem estender a API do Kubernetes criando um **recurso personalizado** que contém a lógica e os componentes específicos da aplicação ou do domínio. Os operadores no Kubernetes permitem que os usuários invoquem esses recursos personalizados de forma nativa e automatizem os fluxos de trabalho associados.

### Como funcionam AWS os Controllers for Kubernetes (ACK)?
<a name="kubernetes-sagemaker-operators-explained"></a>

Os operadores de SageMaker IA para Kubernetes permitem que você gerencie trabalhos em SageMaker IA a partir do seu cluster Kubernetes. A versão mais recente do SageMaker AI Operators for Kubernetes é baseada nos AWS Controllers for Kubernetes (ACK). O ACK inclui um tempo de execução de controlador comum, um gerador de código e um conjunto de controladores AWS específicos do serviço, um dos quais é o SageMaker controlador de IA.

O diagrama a seguir mostra como o ACK funciona.

![\[Explicação do operador de SageMaker IA baseado em ACK para Kubernetes.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/k8s-orchestration/sagemaker-operators-for-kubernetes-ack-controller.png)


Neste diagrama, um usuário do Kubernetes quer executar um treinamento de modelo em SageMaker IA de dentro do cluster Kubernetes usando a API Kubernetes. O usuário faz uma chamada para`kubectl apply`, transmitindo um arquivo que descreve um recurso personalizado do Kubernetes descrevendo o SageMaker trabalho de treinamento. `kubectl apply`passa esse arquivo, chamado de manifesto, para o servidor da API Kubernetes em execução no nó controlador do Kubernetes (etapa *1* no diagrama do fluxo de trabalho). *O servidor da API Kubernetes recebe o manifesto com a especificação do trabalho de SageMaker treinamento e determina se o usuário tem permissão para criar um recurso personalizado do tipo `sageMaker.services.k8s.aws/TrainingJob` e se o recurso personalizado está formatado corretamente (Etapa 2).* Se o usuário for autorizado e o recurso personalizado for válido, o servidor da API do Kubernetes grava (Etapa *3*) o recurso personalizado em seu armazenamento de dados etcd e, em seguida, responde (Etapa *4*) ao usuário informando que o recurso personalizado foi criado. O controlador de SageMaker IA, que está sendo executado em um nó de trabalho do Kubernetes dentro do contexto de um pod normal do Kubernetes, é notificado (etapa *5*) de que um novo recurso personalizado do tipo foi criado. `sageMaker.services.k8s.aws/TrainingJob` O controlador de SageMaker IA então se comunica (Etapa *6*) com a SageMaker API, chamando a `CreateTrainingJob` API de SageMaker IA para criar o trabalho de treinamento em AWS. Depois de se comunicar com a SageMaker API, o controlador de SageMaker IA chama o servidor da API Kubernetes para atualizar (Etapa *7*) o status do recurso personalizado com as informações recebidas da IA. SageMaker Portanto, o controlador de SageMaker IA fornece aos desenvolvedores as mesmas informações que eles teriam recebido usando o AWS SDK.

### Visão geral das permissões
<a name="kubernetes-sagemaker-operators-authentication"></a>

Os operadores acessam os recursos de SageMaker IA em seu nome. A função do IAM que o operador assume para interagir com os AWS recursos é diferente das credenciais que você usa para acessar o cluster do Kubernetes. A função também difere da função que AWS assume ao executar seus trabalhos de aprendizado de máquina. 

A imagem a seguir explica as várias camadas de autenticação.

![\[SageMaker Operador de IA para várias camadas de autenticação do Kubernetes.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/k8s-orchestration/sagemaker-operators-for-kubernetes-authentication.png)


# Operadores de SageMaker IA mais recentes para Kubernetes
<a name="kubernetes-sagemaker-operators-ack"></a>

Esta seção é baseada na versão mais recente dos operadores de SageMaker IA para Kubernetes usando AWS controladores para Kubernetes (ACK).

**Importante**  
Se você estiver usando atualmente 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 da Amazon](https://github.com/aws-controllers-k8s/sagemaker-controller). SageMaker O controlador de serviço ACK é uma nova geração de SageMaker operadores para Kubernetes com base em [AWS controladores para Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
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 do SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

A versão mais recente do [SageMaker AI Operators for Kubernetes](https://github.com/aws-controllers-k8s/sagemaker-controller) é baseada nos [AWS Controllers for Kubernetes (ACK), uma estrutura para criar controladores personalizados do Kubernetes](https://aws-controllers-k8s.github.io/community/ ) em que cada controlador se comunica com uma API de serviço. AWS Esses controladores permitem que os usuários do Kubernetes provisionem recursos AWS como bancos de dados ou filas de mensagens usando a API do Kubernetes.

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

**Topics**
+ [Instale operadores de SageMaker IA para Kubernetes](#kubernetes-sagemaker-operators-ack-install)
+ [Use operadores de SageMaker IA para Kubernetes](#kubernetes-sagemaker-operators-ack-use)
+ [Referência](#kubernetes-sagemaker-operators-ack-reference)

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

Para configurar a versão mais recente disponível dos operadores de SageMaker IA para Kubernetes, consulte a seção *Configuração* em [Machine Learning com o ACK SageMaker ](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup) AI Controller.

## Use operadores de SageMaker IA para Kubernetes
<a name="kubernetes-sagemaker-operators-ack-use"></a>

Para ver um tutorial sobre como treinar um modelo de aprendizado de máquina com o controlador de serviço ACK para Amazon SageMaker AI usando o Amazon EKS, consulte [Machine Learning with the ACK SageMaker AI Controller](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/).

Para ver um exemplo de escalonamento automático, consulte [Dimensionar cargas de trabalho de SageMaker IA com](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/) Application Auto Scaling

## Referência
<a name="kubernetes-sagemaker-operators-ack-reference"></a>

Veja também o [controlador de serviço ACK para o GitHub repositório Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller) ou leia a documentação de [AWS Controllers for Kubernetes](https://aws-controllers-k8s.github.io/community/docs/community/overview/). 

# Operadores de SageMaker IA antigos para Kubernetes
<a name="kubernetes-sagemaker-operators-end-of-support"></a>

Esta seção é baseada na versão original dos [operadores de SageMaker IA para 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 atualmente 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 da Amazon](https://github.com/aws-controllers-k8s/sagemaker-controller). SageMaker O controlador de serviço ACK é uma nova geração de SageMaker operadores para Kubernetes com base em [AWS controladores para Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
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 do SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

**Topics**
+ [Instale operadores de SageMaker IA para Kubernetes](#kubernetes-sagemaker-operators-eos-install)
+ [Use Amazon SageMaker AI Jobs](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 do SageMaker AI Operators for 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 operadores de SageMaker IA para 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 SageMaker IA baseados em ACK 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 [https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html](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. 
  + [https://github.com/weaveworks/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. 

#### Implantação no escopo do cluster
<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 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
<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 acesso à função à 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 do recurso da Amazon (ARN) para o perfil baseado no OIDC 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 do perfil aqui pelo nome do recurso da Amazon (ARN) para o perfil baseado no OIDC 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) 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
   ```

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

#### Implantação no escopo do Namespace
<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 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 D48675832 CA65 BD10 A532F597OIDCID é 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. 

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

Para dar acesso à função à SageMaker IA, anexe a [https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/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. 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
   ```

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 do recurso da Amazon (ARN) para o perfil baseado no OIDC 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. 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
   ```

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 do perfil aqui pelo nome do recurso da Amazon (ARN) para o perfil baseado no OIDC 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) 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
   ```

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 `kubectl` plug-in SageMaker AI logs
<a name="install-the-amazon-sagemaker-logs-kubectl-plugin"></a>

 [Como parte dos operadores de SageMaker IA para 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, 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](#delete-operators) para 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 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
<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 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](#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 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
<a name="operators-installed-with-helm-charts"></a>

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
<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 no SageMaker AI, 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 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
<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 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](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)  | 

# Use Amazon SageMaker AI Jobs
<a name="kubernetes-sagemaker-jobs"></a>

Esta seção é baseada na versão original dos [operadores de SageMaker IA para 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 atualmente 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 da Amazon](https://github.com/aws-controllers-k8s/sagemaker-controller). SageMaker O controlador de serviço ACK é uma nova geração de SageMaker operadores para Kubernetes com base em [AWS controladores para Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).  
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 do SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Para executar um trabalho do Amazon SageMaker AI usando os Operadores para Kubernetes, você pode aplicar um arquivo YAML ou usar os Helm Charts fornecidos. 

Todos os trabalhos de operador de amostra nos tutoriais a seguir usam dados de amostra retirados de um conjunto de dados público do MNIST. Para executar essas amostras, baixe o conjunto de dados em seu bucket do Amazon S3. Você pode encontrar o conjunto de dados em [Baixar o conjunto de dados do MNIST](https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-preprocess-data-pull-data.html). 

**Topics**
+ [O TrainingJob operador](#trainingjob-operator)
+ [O HyperParameterTuningJob operador](#hyperparametertuningjobs-operator)
+ [O BatchTransformJob operador](#batchtransformjobs-operator)
+ [O HostingDeployment operador](#hosting-deployment-operator)
+ [O ProcessingJob operador](#kubernetes-processing-job-operator)
+ [HostingAutoscalingPolicy Operador (HAP)](#kubernetes-hap-operator)

## O TrainingJob operador
<a name="trainingjob-operator"></a>

Os operadores de trabalho de treinamento reconciliam sua especificação de trabalho de treinamento especificada com a SageMaker IA, lançando-a para você na IA. SageMaker Você pode aprender mais sobre trabalhos SageMaker de treinamento na [documentação da CreateTrainingJob API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTrainingJob.html) de SageMaker IA. 

**Topics**
+ [Crie um TrainingJob usando um arquivo YAML](#create-a-trainingjob-using-a-simple-yaml-file)
+ [Crie um TrainingJob usando um gráfico de leme](#create-a-trainingjob-using-a-helm-chart)
+ [Lista TrainingJobs](#list-training-jobs)
+ [Descreva um TrainingJob](#describe-a-training-job)
+ [Exibir registros de TrainingJobs](#view-logs-from-training-jobs)
+ [Excluir TrainingJobs](#delete-training-jobs)

### Crie um TrainingJob usando um arquivo YAML
<a name="create-a-trainingjob-using-a-simple-yaml-file"></a>

1. Faça download do arquivo YAML de exemplo para treinamento usando o seguinte comando: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-trainingjob.yaml
   ```

1. Edite o `xgboost-mnist-trainingjob.yaml` arquivo para substituir o `roleArn` parâmetro pelo seu `<sagemaker-execution-role>` e `outputPath` pelo seu bucket do Amazon S3 ao qual a função de execução de SageMaker IA tem acesso de gravação. Eles `roleArn` devem ter permissões para que a SageMaker IA possa acessar o Amazon S3 CloudWatch, o Amazon e outros serviços em seu nome. Para obter mais informações sobre como criar uma SageMaker IA ExecutionRole, consulte [Funções de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms). Aplique o arquivo YAML utilizando o seguinte comando: 

   ```
   kubectl apply -f xgboost-mnist-trainingjob.yaml
   ```

### Crie um TrainingJob usando um gráfico de leme
<a name="create-a-trainingjob-using-a-helm-chart"></a>

Você pode usar o Helm Charts para executar TrainingJobs. 

1. Clone o GitHub repositório para obter a fonte usando o seguinte comando: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Navegue até a pasta `amazon-sagemaker-operator-for-k8s/hack/charts/training-jobs/` e edite o arquivo `values.yaml` para substituir valores como `rolearn` e `outputpath` por valores que correspondam à sua conta. O RoLearn deve ter permissões para que a SageMaker IA possa acessar o Amazon S3, o CloudWatch Amazon e outros serviços em seu nome. Para obter mais informações sobre como criar uma SageMaker IA ExecutionRole, consulte [Funções de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms). 

#### Crie o TrainingJob
<a name="create-the-training-job"></a>

Com os perfis e os buckets do Amazon S3 substituídos pelos valores apropriados no `values.yaml`, você pode criar um trabalho de treinamento usando o seguinte comando: 

```
helm install . --generate-name
```

A saída será semelhante a: 

```
NAME: chart-12345678
LAST DEPLOYED: Wed Nov 20 23:35:49 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thanks for installing the sagemaker-k8s-trainingjob.
```

#### Verifique seu chart do Helm de treinamento
<a name="verify-your-training-helm-chart"></a>

Para verificar se o chart do Helm foi criado com êxito, execute: 

```
helm ls
```

A saída será semelhante a: 

```
NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
chart-12345678        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
rolebased-12345678    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
```

O `helm install`cria um recurso do `TrainingJob` do Kubernetes. O operador inicia o trabalho de treinamento real em SageMaker IA e atualiza o recurso `TrainingJob` Kubernetes para refletir o status do trabalho em IA. SageMaker Você incorre em cobranças pelos recursos de SageMaker IA usados durante a duração do seu trabalho. Você não incorre em nenhuma cobrança quando seu trabalho for concluído ou interrompido. 

**Observação**: a SageMaker IA não permite que você atualize um trabalho de treinamento em execução. Você não pode editar nenhum parâmetro e reaplicar o arquivo de configuração. Altere o nome dos metadados ou exclua o trabalho existente e crie um novo. Semelhante aos operadores de trabalho de treinamento existentes, como TFJob no Kubeflow, não `update` é suportado. 

### Lista TrainingJobs
<a name="list-training-jobs"></a>

Use o seguinte comando para listar todos os trabalhos criados usando o operador do Kubernetes: 

```
kubectl get TrainingJob
```

A saída que lista todos os trabalhos deve ser a seguinte: 

```
kubectl get trainingjobs
NAME                        STATUS       SECONDARY-STATUS   CREATION-TIME          SAGEMAKER-JOB-NAME
xgboost-mnist-from-for-s3   InProgress   Starting           2019-11-20T23:42:35Z   xgboost-mnist-from-for-s3-examplef11eab94e0ed4671d5a8f
```

Um trabalho de treinamento continua sendo listado após a conclusão ou falha do trabalho. Você pode remover um trabalho `TrainingJob` da lista seguindo as etapas [Excluir TrainingJobs](#delete-training-jobs). Os trabalhos concluídos ou interrompidos não incorrem em nenhuma cobrança pelos recursos de SageMaker IA. 

#### TrainingJob valores de status
<a name="training-job-status-values"></a>

O campo `STATUS` pode ter um dos seguintes valores: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Esses status vêm diretamente da [documentação oficial da API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-TrainingJobStatus) de SageMaker IA. 

Além do status oficial de SageMaker IA, é possível `STATUS` que seja`SynchronizingK8sJobWithSageMaker`. Isso significa que o operador ainda não processou o trabalho. 

#### Valores de status secundários
<a name="secondary-status-values"></a>

Os status secundários vêm diretamente da [documentação oficial da API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-SecondaryStatus) de SageMaker IA. Eles contêm informações mais granulares sobre o status do trabalho. 

### Descreva um TrainingJob
<a name="describe-a-training-job"></a>

Você pode obter mais detalhes sobre o trabalho de treinamento usando o comando `describe` do `kubectl`. Isso geralmente é usado para depurar um problema ou verificar os parâmetros de um trabalho de treinamento. Para obter informações sobre o trabalho de treinamento, use o seguinte comando: 

```
kubectl describe trainingjob xgboost-mnist-from-for-s3
```

A saída do trabalho de treinamento será semelhante a: 

```
Name:         xgboost-mnist-from-for-s3
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  sagemaker.aws.amazon.com/v1
Kind:         TrainingJob
Metadata:
  Creation Timestamp:  2019-11-20T23:42:35Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  23119
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/trainingjobs/xgboost-mnist-from-for-s3
  UID:               6d7uiui-0bef-11ea-b94e-0ed467example
Spec:
  Algorithm Specification:
    Training Image:       8256416981234.dkr.ecr.us-east-2.amazonaws.com/xgboost:1
    Training Input Mode:  File
  Hyper Parameters:
    Name:   eta
    Value:  0.2
    Name:   gamma
    Value:  4
    Name:   max_depth
    Value:  5
    Name:   min_child_weight
    Value:  6
    Name:   num_class
    Value:  10
    Name:   num_round
    Value:  10
    Name:   objective
    Value:  multi:softmax
    Name:   silent
    Value:  0
  Input Data Config:
    Channel Name:      train
    Compression Type:  None
    Content Type:      text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Distribution Type:  FullyReplicated
        S 3 Data Type:               S3Prefix
        S 3 Uri:                     https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/
    Channel Name:                    validation
    Compression Type:                None
    Content Type:                    text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Distribution Type:  FullyReplicated
        S 3 Data Type:               S3Prefix
        S 3 Uri:                     https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/
  Output Data Config:
    S 3 Output Path:  s3://amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost/
  Region:             us-east-2
  Resource Config:
    Instance Count:     1
    Instance Type:      ml.m4.xlarge
    Volume Size In GB:  5
  Role Arn:             arn:aws:iam::12345678910:role/service-role/AmazonSageMaker-ExecutionRole
  Stopping Condition:
    Max Runtime In Seconds:  86400
  Training Job Name:         xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0example
Status:
  Cloud Watch Log URL:           https://us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logStream:group=/aws/sagemaker/TrainingJobs;prefix=<example>;streamFilter=typeLogStreamPrefix
  Last Check Time:               2019-11-20T23:44:29Z
  Sage Maker Training Job Name:  xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94eexample
  Secondary Status:              Downloading
  Training Job Status:           InProgress
Events:                          <none>
```

### Exibir registros de TrainingJobs
<a name="view-logs-from-training-jobs"></a>

Use o seguinte comando para visualizar os logs em log do trabalho de treinamento `kmeans-mnist`: 

```
kubectl smlogs trainingjob xgboost-mnist-from-for-s3
```

O resultado deve ser semelhante ao seguinte: Os logs em log das instâncias são ordenados cronologicamente. 

```
"xgboost-mnist-from-for-s3" has SageMaker TrainingJobName "xgboost-mnist-from-for-s3-123456789" in region "us-east-2", status "InProgress" and secondary status "Starting"
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC Arguments: train
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Running standalone xgboost training.
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] File size need to be processed in the node: 1122.95mb. Available memory size in the node: 8586.0mb
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Determined delimiter of CSV input is ','
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [23:45:22] S3DistributionType set as FullyReplicated
```

### Excluir TrainingJobs
<a name="delete-training-jobs"></a>

Use o comando a seguir para interromper um trabalho de treinamento na Amazon SageMaker AI: 

```
kubectl delete trainingjob xgboost-mnist-from-for-s3
```

Esse comando remove o trabalho de SageMaker treinamento do Kubernetes. Esse comando retorna a seguinte saída: 

```
trainingjob.sagemaker.aws.amazon.com "xgboost-mnist-from-for-s3" deleted
```

Se o trabalho ainda estiver em andamento na SageMaker IA, o trabalho será interrompido. Você não incorre em nenhuma cobrança por recursos de SageMaker IA após o término ou conclusão do trabalho. 

**Observação**: a SageMaker IA não exclui trabalhos de treinamento. Os trabalhos interrompidos continuam aparecendo no console de SageMaker IA. O `delete` comando leva cerca de 2 minutos para limpar os recursos da SageMaker IA. 

## O HyperParameterTuningJob operador
<a name="hyperparametertuningjobs-operator"></a>

Os operadores da tarefa de ajuste de hiperparâmetros reconciliam sua especificação de tarefa de ajuste de hiperparâmetros especificada com a SageMaker IA, iniciando-a na IA. SageMaker Você pode aprender mais sobre os trabalhos de ajuste de hiperparâmetros de SageMaker IA na [documentação da CreateHyperParameterTuningJob API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateHyperParameterTuningJob.html) de SageMaker IA. 

**Topics**
+ [Crie um HyperparameterTuningJob usando um arquivo YAML](#create-a-hyperparametertuningjob-using-a-simple-yaml-file)
+ [Crie um HyperparameterTuningJob usando um Helm Chart](#create-a-hyperparametertuningjob-using-a-helm-chart)
+ [Lista HyperparameterTuningJobs](#list-hyperparameter-tuning-jobs)
+ [Descreva um HyperparameterTuningJob](#describe-a-hyperparameter-tuning-job)
+ [Exibir registros de HyperparameterTuningJobs](#view-logs-from-hyperparametertuning-jobs)
+ [Excluir um HyperparameterTuningJob](#delete-hyperparametertuning-jobs)

### Crie um HyperparameterTuningJob usando um arquivo YAML
<a name="create-a-hyperparametertuningjob-using-a-simple-yaml-file"></a>

1. Faça download do arquivo YAML de exemplo para o trabalho de ajuste de hiperparâmetros usando o seguinte comando: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hpo.yaml
   ```

1. Edite o arquivo `xgboost-mnist-hpo.yaml` para substituir o parâmetro `roleArn` pelo seu `sagemaker-execution-role`. Para que o trabalho de ajuste de hiperparâmetros seja bem-sucedido, você também deve alterar os valores de `s3InputPath` e `s3OutputPath` para que correspondem à sua conta. Aplique a atualização do arquivo YAML utilizando o seguinte comando: 

   ```
   kubectl apply -f xgboost-mnist-hpo.yaml
   ```

### Crie um HyperparameterTuningJob usando um Helm Chart
<a name="create-a-hyperparametertuningjob-using-a-helm-chart"></a>

Você pode usar charts do Helm para executar trabalhos de ajuste de hiperparâmetros. 

1. Clone o GitHub repositório para obter a fonte 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/hyperparameter-tuning-jobs/`. 

1. Edite o arquivo `values.yaml` para substituir o parâmetro `roleArn` pelo seu `sagemaker-execution-role`. Para que o trabalho de ajuste de hiperparâmetros seja bem-sucedido, você também deve alterar os valores de `s3InputPath` e `s3OutputPath` para que correspondem à sua conta. 

#### Crie o HyperparameterTuningJob
<a name="create-the-hpo-job"></a>

Com os perfis e os caminhos do Amazon S3 substituídos pelos valores apropriados no `values.yaml`, você pode criar um trabalho de ajuste de hiperparâmetros usando o seguinte comando: 

```
helm install . --generate-name
```

O resultado deve ser semelhante ao seguinte: 

```
NAME: chart-1574292948
LAST DEPLOYED: Wed Nov 20 23:35:49 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thanks for installing the sagemaker-k8s-hyperparametertuningjob.
```

#### Verificar a instalação do gráfico
<a name="verify-chart-installation"></a>

Para verificar se o chart do Helm foi criado com êxito, execute o seguinte comando: 

```
helm ls
```

A saída será semelhante a: 

```
NAME                    NAMESPACE       REVISION        UPDATED
chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-hyperparametertuningjob-0.1.0                               STATUS          CHART                           APP VERSION
chart-1574292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
rolebased-1574291698    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
```

O `helm install`cria um recurso do `HyperParameterTuningJob` do Kubernetes. O operador inicia o trabalho real de otimização de hiperparâmetros na SageMaker IA e atualiza o recurso `HyperParameterTuningJob` Kubernetes para refletir o status do trabalho na IA. SageMaker Você incorre em cobranças pelos recursos de SageMaker IA usados durante a duração do seu trabalho. Você não incorre em nenhuma cobrança quando seu trabalho for concluído ou interrompido. 

**Observação**: a SageMaker IA não permite que você atualize um trabalho de ajuste de hiperparâmetros em execução. Você não pode editar nenhum parâmetro e reaplicar o arquivo de configuração. Você pode alterar o nome dos metadados ou excluir o trabalho existente e crie um novo. Semelhante aos operadores de trabalho de treinamento existentes, como o `TFJob` no Kubeflow, a `update` não é compatível. 

### Lista HyperparameterTuningJobs
<a name="list-hyperparameter-tuning-jobs"></a>

Use o seguinte comando para listar todos os trabalhos criados usando o operador do Kubernetes: 

```
kubectl get hyperparametertuningjob
```

A saída será semelhante a: 

```
NAME         STATUS      CREATION-TIME          COMPLETED   INPROGRESS   ERRORS   STOPPED   BEST-TRAINING-JOB                               SAGEMAKER-JOB-NAME
xgboost-mnist-hpo   Completed   2019-10-17T01:15:52Z   10          0            0        0         xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a123   xgboostha92f5e3cf07b11e9bf6c123
```

Um trabalho de ajuste de hiperparâmetros continua sendo listado após a conclusão ou falha do trabalho. Você pode remover um `hyperparametertuningjob` da lista seguindo as etapas em [Excluir um HyperparameterTuningJob](#delete-hyperparametertuning-jobs). Os trabalhos concluídos ou interrompidos não incorrem em nenhuma cobrança pelos recursos de SageMaker IA.

#### Valores de status de trabalho de ajuste de hiperparâmetros
<a name="hyperparameter-tuning-job-status-values"></a>

O campo `STATUS` pode ter um dos seguintes valores: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Esses status vêm diretamente da [documentação oficial da API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus) de SageMaker IA. 

Além do status oficial de SageMaker IA, é possível `STATUS` que seja`SynchronizingK8sJobWithSageMaker`. Isso significa que o operador ainda não processou o trabalho. 

#### Contadores de status
<a name="status-counters"></a>

A saída tem vários contadores, como `COMPLETED` e `INPROGRESS`. Eles representam quantos trabalhos de treinamento foram concluídos e quantos estão em andamento, respectivamente. Para obter mais informações sobre como elas são determinadas, consulte [TrainingJobStatusCounters](https://docs.aws.amazon.com/sagemaker/latest/dg/API_TrainingJobStatusCounters.html)a documentação SageMaker da API. 

#### Melhor TrainingJob
<a name="best-training-job"></a>

Essa coluna contém o nome do `TrainingJob` que melhor otimizou a métrica selecionada. 

Para ver um resumo dos hiperparâmetros ajustados, execute: 

```
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
```

Para ver informações detalhadas sobre o `TrainingJob`, execute: 

```
kubectl describe trainingjobs <job name>
```

#### Desovado TrainingJobs
<a name="spawned-training-jobs"></a>

Você também pode acompanhar todos os 10 trabalhos de treinamento no Kubernetes iniciados pelo `HyperparameterTuningJob` executando o seguinte comando: 

```
kubectl get trainingjobs
```

### Descreva um HyperparameterTuningJob
<a name="describe-a-hyperparameter-tuning-job"></a>

Você pode obter detalhes de depuração usando o comando `describe` do `kubectl`.

```
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
```

Além das informações sobre o trabalho de ajuste, o operador de SageMaker IA para Kubernetes também expõe o [melhor trabalho de treinamento encontrado pelo trabalho](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-monitor.html#automatic-model-tuning-best-training-job) de ajuste de hiperparâmetros na saída, da seguinte forma: `describe` 

```
Name:         xgboost-mnist-hpo
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HyperparameterTuningJob","metadata":{"annotations":{},"name":"xgboost-mnist-hpo","namespace":...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         HyperparameterTuningJob
Metadata:
  Creation Timestamp:  2019-10-17T01:15:52Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  8167
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hyperparametertuningjobs/xgboost-mnist-hpo
  UID:               a92f5e3c-f07b-11e9-bf6c-06d6f303uidu
Spec:
  Hyper Parameter Tuning Job Config:
    Hyper Parameter Tuning Job Objective:
      Metric Name:  validation:error
      Type:         Minimize
    Parameter Ranges:
      Integer Parameter Ranges:
        Max Value:     20
        Min Value:     10
        Name:          num_round
        Scaling Type:  Linear
    Resource Limits:
      Max Number Of Training Jobs:     10
      Max Parallel Training Jobs:      10
    Strategy:                          Bayesian
    Training Job Early Stopping Type:  Off
  Hyper Parameter Tuning Job Name:     xgboostha92f5e3cf07b11e9bf6c06d6
  Region:                              us-east-2
  Training Job Definition:
    Algorithm Specification:
      Training Image:       12345678910.dkr.ecr.us-east-2.amazonaws.com/xgboost:1
      Training Input Mode:  File
    Input Data Config:
      Channel Name:  train
      Content Type:  text/csv
      Data Source:
        s3DataSource:
          s3DataDistributionType:  FullyReplicated
          s3DataType:              S3Prefix
          s3Uri:                   https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/
      Channel Name:                validation
      Content Type:                text/csv
      Data Source:
        s3DataSource:
          s3DataDistributionType:  FullyReplicated
          s3DataType:              S3Prefix
          s3Uri:                   https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/
    Output Data Config:
      s3OutputPath:  https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost
    Resource Config:
      Instance Count:     1
      Instance Type:      ml.m4.xlarge
      Volume Size In GB:  5
    Role Arn:             arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
    Static Hyper Parameters:
      Name:   base_score
      Value:  0.5
      Name:   booster
      Value:  gbtree
      Name:   csv_weights
      Value:  0
      Name:   dsplit
      Value:  row
      Name:   grow_policy
      Value:  depthwise
      Name:   lambda_bias
      Value:  0.0
      Name:   max_bin
      Value:  256
      Name:   max_leaves
      Value:  0
      Name:   normalize_type
      Value:  tree
      Name:   objective
      Value:  reg:linear
      Name:   one_drop
      Value:  0
      Name:   prob_buffer_row
      Value:  1.0
      Name:   process_type
      Value:  default
      Name:   rate_drop
      Value:  0.0
      Name:   refresh_leaf
      Value:  1
      Name:   sample_type
      Value:  uniform
      Name:   scale_pos_weight
      Value:  1.0
      Name:   silent
      Value:  0
      Name:   sketch_eps
      Value:  0.03
      Name:   skip_drop
      Value:  0.0
      Name:   tree_method
      Value:  auto
      Name:   tweedie_variance_power
      Value:  1.5
    Stopping Condition:
      Max Runtime In Seconds:  86400
Status:
  Best Training Job:
    Creation Time:  2019-10-17T01:16:14Z
    Final Hyper Parameter Tuning Job Objective Metric:
      Metric Name:        validation:error
      Value:
    Objective Status:     Succeeded
    Training End Time:    2019-10-17T01:20:24Z
    Training Job Arn:     arn:aws:sagemaker:us-east-2:123456789012:training-job/xgboostha92f5e3cf07b11e9bf6c06d6-009-4sample
    Training Job Name:    xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a3059
    Training Job Status:  Completed
    Training Start Time:  2019-10-17T01:18:35Z
    Tuned Hyper Parameters:
      Name:                                    num_round
      Value:                                   18
  Hyper Parameter Tuning Job Status:           Completed
  Last Check Time:                             2019-10-17T01:21:01Z
  Sage Maker Hyper Parameter Tuning Job Name:  xgboostha92f5e3cf07b11e9bf6c06d6
  Training Job Status Counters:
    Completed:            10
    In Progress:          0
    Non Retryable Error:  0
    Retryable Error:      0
    Stopped:              0
    Total Error:          0
Events:                   <none>
```

### Exibir registros de HyperparameterTuningJobs
<a name="view-logs-from-hyperparametertuning-jobs"></a>

Os trabalhos de ajuste hiperparâmetros não têm logs, mas todos os trabalhos de treinamento lançados por eles têm logs. Esses logs podem ser acessados como se fossem um trabalho normal de treinamento. Para obter mais informações, consulte [Exibir registros de TrainingJobs](#view-logs-from-training-jobs).

### Excluir um HyperparameterTuningJob
<a name="delete-hyperparametertuning-jobs"></a>

Use o comando a seguir para interromper um trabalho de hiperparâmetros na SageMaker IA. 

```
kubectl delete hyperparametertuningjob xgboost-mnist-hpo
```

Esse comando remove o trabalho de ajuste de hiperparâmetros e os trabalhos de treinamento associados do seu cluster Kubernetes e os interrompe na IA. SageMaker Os trabalhos que foram interrompidos ou concluídos não incorrem em nenhuma cobrança pelos recursos de SageMaker IA. SageMaker A IA não exclui trabalhos de ajuste de hiperparâmetros. Os trabalhos interrompidos continuam aparecendo no console de SageMaker IA. 

A saída será semelhante a: 

```
hyperparametertuningjob.sagemaker.aws.amazon.com "xgboost-mnist-hpo" deleted
```

**Observação**: o comando delete leva cerca de 2 minutos para limpar os recursos da SageMaker IA. 

## O BatchTransformJob operador
<a name="batchtransformjobs-operator"></a>

Os operadores de trabalho de transformação em lote reconciliam sua especificação de trabalho de transformação em lote especificada com a SageMaker IA, iniciando-a na IA. SageMaker Você pode aprender mais sobre o SageMaker trabalho de transformação em lote da SageMaker IA na [documentação da CreateTransformJob API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTransformJob.html) de IA. 

**Topics**
+ [Crie um BatchTransformJob usando um arquivo YAML](#create-a-batchtransformjob-using-a-simple-yaml-file)
+ [Crie um BatchTransformJob usando um Helm Chart](#create-a-batchtransformjob-using-a-helm-chart)
+ [Lista BatchTransformJobs](#list-batch-transform-jobs)
+ [Descreva um BatchTransformJob](#describe-a-batch-transform-job)
+ [Exibir registros de BatchTransformJobs](#view-logs-from-batch-transform-jobs)
+ [Excluir um BatchTransformJob](#delete-a-batch-transform-job)

### Crie um BatchTransformJob usando um arquivo YAML
<a name="create-a-batchtransformjob-using-a-simple-yaml-file"></a>

1. Faça download do arquivo YAML de exemplo para o trabalho de transformação de lotes usando o seguinte comando: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-batchtransform.yaml
   ```

1. Edite o arquivo `xgboost-mnist-batchtransform.yaml` para alterar os parâmetros necessários para substituí-los `inputdataconfig` pelos dados de entrada e pelos `s3OutputPath` buckets do Amazon S3 aos quais a função de execução de SageMaker IA tem acesso de gravação. 

1. Aplique o arquivo YAML utilizando o seguinte comando: 

   ```
   kubectl apply -f xgboost-mnist-batchtransform.yaml
   ```

### Crie um BatchTransformJob usando um Helm Chart
<a name="create-a-batchtransformjob-using-a-helm-chart"></a>

Você pode usar gráficos de Helm para executar trabalhos de transformação de lote. 

#### Obtenha o diretório do instalador de Helm
<a name="get-the-helm-installer-directory"></a>

Clone o GitHub repositório para obter a fonte usando o seguinte comando: 

```
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
```

#### Configurar o gráfico de Helm
<a name="configure-the-helm-chart"></a>

Navegue para a pasta `amazon-sagemaker-operator-for-k8s/hack/charts/batch-transform-jobs/`. 

Edite o `values.yaml` arquivo para `inputdataconfig` substituir o pelos dados de entrada e o OutputPath pelos buckets do S3 aos quais a função de execução de SageMaker IA tem acesso de gravação. 

#### Crie um BatchTransformJob
<a name="create-a-batch-transform-job"></a>

1. Use o seguinte comando para criar um trabalho de transformação de lote: 

   ```
   helm install . --generate-name
   ```

   A saída será semelhante a: 

   ```
   NAME: chart-1574292948
   LAST DEPLOYED: Wed Nov 20 23:35:49 2019
   NAMESPACE: default
   STATUS: deployed
   REVISION: 1
   TEST SUITE: None
   NOTES:
   Thanks for installing the sagemaker-k8s-batch-transform-job.
   ```

1. Para verificar se o chart do Helm foi criado com êxito, execute o seguinte comando: 

   ```
   helm ls
   NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
   chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-batchtransformjob-0.1.0
   chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-hyperparametertuningjob-0.1.0
   chart-1574292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
   rolebased-1574291698    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
   ```

   O comando cria um recurso `BatchTransformJob` do Kubernetes. O operador inicia o trabalho de transformação real em SageMaker IA e atualiza o recurso `BatchTransformJob` Kubernetes para refletir o status do trabalho em IA. SageMaker Você incorre em cobranças pelos recursos de SageMaker IA usados durante a duração do seu trabalho. Você não incorre em nenhuma cobrança quando seu trabalho for concluído ou interrompido. 

**Observação**: a SageMaker IA não permite que você atualize um trabalho de transformação em lote em execução. Você não pode editar nenhum parâmetro e reaplicar o arquivo de configuração. Você pode alterar o nome dos metadados ou excluir o trabalho existente e crie um novo. Semelhante aos operadores de trabalho de treinamento existentes, como o `TFJob` no Kubeflow, a `update` não é compatível. 

### Lista BatchTransformJobs
<a name="list-batch-transform-jobs"></a>

Use o seguinte comando para listar todos os trabalhos criados usando o operador do Kubernetes: 

```
kubectl get batchtransformjob
```

A saída será semelhante a: 

```
NAME                                STATUS      CREATION-TIME          SAGEMAKER-JOB-NAME
xgboost-mnist-batch-transform       Completed   2019-11-18T03:44:00Z   xgboost-mnist-a88fb19809b511eaac440aa8axgboost
```

Um trabalho de transformação de lote continua sendo listado após a conclusão ou falha do trabalho. Você pode remover um `hyperparametertuningjob` da lista seguindo as etapas [Excluir um BatchTransformJob](#delete-a-batch-transform-job). Os trabalhos concluídos ou interrompidos não incorrem em nenhuma cobrança pelos recursos de SageMaker IA. 

#### Valores de status da transformação em lote
<a name="batch-transform-status-values"></a>

O campo `STATUS` pode ter um dos seguintes valores: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Esses status vêm diretamente da [documentação oficial da API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus) de SageMaker IA. 

Além do status oficial de SageMaker IA, é possível `STATUS` que seja`SynchronizingK8sJobWithSageMaker`. Isso significa que o operador ainda não processou o trabalho.

### Descreva um BatchTransformJob
<a name="describe-a-batch-transform-job"></a>

Você pode obter detalhes de depuração usando o comando `describe` do `kubectl`.

```
kubectl describe batchtransformjob xgboost-mnist-batch-transform
```

A saída será semelhante a: 

```
Name:         xgboost-mnist-batch-transform
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"BatchTransformJob","metadata":{"annotations":{},"name":"xgboost-mnist","namespace"...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         BatchTransformJob
Metadata:
  Creation Timestamp:  2019-11-18T03:44:00Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  21990924
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/batchtransformjobs/xgboost-mnist
  UID:               a88fb198-09b5-11ea-ac44-0aa8a9UIDNUM
Spec:
  Model Name:  TrainingJob-20190814SMJOb-IKEB
  Region:      us-east-1
  Transform Input:
    Content Type:  text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Type:  S3Prefix
        S 3 Uri:        s3://amzn-s3-demo-bucket/mnist_kmeans_example/input
  Transform Job Name:   xgboost-mnist-a88fb19809b511eaac440aa8a9SMJOB
  Transform Output:
    S 3 Output Path:  s3://amzn-s3-demo-bucket/mnist_kmeans_example/output
  Transform Resources:
    Instance Count:  1
    Instance Type:   ml.m4.xlarge
Status:
  Last Check Time:                2019-11-19T22:50:40Z
  Sage Maker Transform Job Name:  xgboost-mnist-a88fb19809b511eaac440aaSMJOB
  Transform Job Status:           Completed
Events:                           <none>
```

### Exibir registros de BatchTransformJobs
<a name="view-logs-from-batch-transform-jobs"></a>

Use o seguinte comando para visualizar os logs em log do trabalho de transformação de lote `xgboost-mnist`: 

```
kubectl smlogs batchtransformjob xgboost-mnist-batch-transform
```

### Excluir um BatchTransformJob
<a name="delete-a-batch-transform-job"></a>

Use o comando a seguir para interromper um trabalho de transformação em lote na SageMaker IA. 

```
kubectl delete batchTransformJob xgboost-mnist-batch-transform
```

A saída será semelhante a: 

```
batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted
```

Esse comando remove o trabalho de transformação em lote do seu cluster Kubernetes e o interrompe na IA. SageMaker Os trabalhos que foram interrompidos ou concluídos não incorrem em nenhuma cobrança pelos recursos de SageMaker IA. A exclusão leva cerca de 2 minutos para limpar os recursos da SageMaker IA. 

**Observação**: a SageMaker IA não exclui trabalhos de transformação em lote. Os trabalhos interrompidos continuam aparecendo no console de SageMaker IA. 

## O HostingDeployment operador
<a name="hosting-deployment-operator"></a>

HostingDeployment os operadores oferecem suporte à criação e exclusão de um endpoint, bem como à atualização de um endpoint existente, para inferência em tempo real. O operador de implantação de hospedagem reconcilia sua especificação de trabalho de implantação de hospedagem especificada com a SageMaker IA criando modelos, configurações de endpoints e endpoints na IA. SageMaker Você pode aprender mais sobre inferência de SageMaker IA na [documentação da CreateEndpoint API](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html) de SageMaker IA. 

**Topics**
+ [Configurar um HostingDeployment recurso](#configure-a-hostingdeployment-resource)
+ [Crie um HostingDeployment](#create-a-hostingdeployment)
+ [Lista HostingDeployments](#list-hostingdeployments)
+ [Descreva um HostingDeployment](#describe-a-hostingdeployment)
+ [Invocar o endpoint](#invoking-the-endpoint)
+ [Atualizar HostingDeployment](#update-hostingdeployment)
+ [Exclua o HostingDeployment](#delete-the-hostingdeployment)

### Configurar um HostingDeployment recurso
<a name="configure-a-hostingdeployment-resource"></a>

Faça download do arquivo YAML de exemplo para o trabalho de implantação de hospedagem usando o seguinte comando: 

```
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hostingdeployment.yaml
```

O `xgboost-mnist-hostingdeployment.yaml` arquivo tem os seguintes componentes que podem ser editados conforme necessário: 
+ *ProductionVariants*. Uma variante de produção é um conjunto de instâncias que atendem a um único modelo. SageMaker A IA equilibra a carga entre todas as variantes de produção de acordo com os pesos definidos. 
+ *Modelos*. Um modelo são os contêineres e o ARN da função de execução necessários para servir a um modelo. Isso requer pelo menos um único contêiner. 
+ *Contêineres*. Um contêiner especifica o conjunto de dados e a imagem de veiculação. Se você estiver usando seu próprio algoritmo personalizado em vez de um algoritmo fornecido pela SageMaker IA, o código de inferência deve atender aos requisitos de SageMaker IA. Para obter mais informações, consulte [Usando seus próprios algoritmos com SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). 

### Crie um HostingDeployment
<a name="create-a-hostingdeployment"></a>

Para criar um HostingDeployment, use `kubectl` para aplicar o arquivo `hosting.yaml` com o seguinte comando: 

```
kubectl apply -f hosting.yaml
```

SageMaker A IA cria um endpoint com a configuração especificada. Você incorre em cobranças pelos recursos de SageMaker IA usados durante a vida útil do seu endpoint. Você não incorre em nenhuma cobrança depois que seu endpoint é excluído. 

A criação do processo leva aproximadamente 10 minutos. 

### Lista HostingDeployments
<a name="list-hostingdeployments"></a>

Para verificar se o HostingDeployment foi criado, use o seguinte comando: 

```
kubectl get hostingdeployments
```

A saída será semelhante a: 

```
NAME           STATUS     SAGEMAKER-ENDPOINT-NAME
host-xgboost   Creating   host-xgboost-def0e83e0d5f11eaaa450aSMLOGS
```

#### HostingDeployment valores de status
<a name="hostingdeployment-status-values"></a>

O campo de status pode ser um dos vários valores: 
+ `SynchronizingK8sJobWithSageMaker`: o operador está se preparando para criar o endpoint. 
+ `ReconcilingEndpoint`: o operador está criando, atualizando ou excluindo recursos do endpoint. Se HostingDeployment permanecer nesse estado, use `kubectl describe` para ver o motivo no `Additional` campo. 
+ `OutOfService`: o endpoint não está disponível para receber solicitações. 
+ `Creating`: [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html)está em execução. 
+ `Updating`: [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpoint.html)ou [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)está em execução. 
+ `SystemUpdating`: o endpoint está passando por manutenção e não pode ser atualizado, excluído ou redimensionado até que seja concluído. Essa operação de manutenção não altera nenhum valor especificado pelo cliente, como configuração de VPC, AWS KMS criptografia, modelo, tipo de instância ou contagem de instâncias. 
+ `RollingBack`: o endpoint não consegue diminuir ou aumentar a escala verticalmente ou alterar o peso da variante e está voltando à configuração anterior. Depois que a reversão for concluída, o endpoint retornará a um status `InService`. Esse status de transição só se aplica a um endpoint que tem o escalonamento automático ativado e está passando por alterações de peso ou capacidade de variantes como parte de uma [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)chamada ou quando a [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)operação é chamada explicitamente. 
+ `InService`: o endpoint não está disponível para receber solicitações. 
+ `Deleting`: [DeleteEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DeleteEndpoint.html)está em execução. 
+ `Failed`: o endpoint não pôde ser criado, atualizado ou redimensionado. Uso [DescribeEndpoint: FailureReason](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeEndpoint.html#SageMaker-DescribeEndpoint-response-FailureReason) para obter informações sobre a falha. [DeleteEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DeleteEndpoint.html)é a única operação que pode ser executada em um endpoint com falha. 

### Descreva um HostingDeployment
<a name="describe-a-hostingdeployment"></a>

Você pode obter detalhes de depuração usando o comando `describe` do `kubectl`.

```
kubectl describe hostingdeployment
```

A saída será semelhante a: 

```
Name:         host-xgboost
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HostingDeployment","metadata":{"annotations":{},"name":"host-xgboost","namespace":"def..."
API Version:  sagemaker.aws.amazon.com/v1
Kind:         HostingDeployment
Metadata:
  Creation Timestamp:  2019-11-22T19:40:00Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        1
  Resource Version:  4258134
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hostingdeployments/host-xgboost
  UID:               def0e83e-0d5f-11ea-aa45-0a3507uiduid
Spec:
  Containers:
    Container Hostname:  xgboost
    Image:               123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest
    Model Data URL:      s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz
  Models:
    Containers:
      xgboost
    Execution Role Arn:  arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
    Name:                xgboost-model
    Primary Container:   xgboost
  Production Variants:
    Initial Instance Count:  1
    Instance Type:           ml.c5.large
    Model Name:              xgboost-model
    Variant Name:            all-traffic
  Region:                    us-east-2
Status:
  Creation Time:         2019-11-22T19:40:04Z
  Endpoint Arn:          arn:aws:sagemaker:us-east-2:123456789012:endpoint/host-xgboost-def0e83e0d5f11eaaaexample
  Endpoint Config Name:  host-xgboost-1-def0e83e0d5f11e-e08f6c510d5f11eaaa450aexample
  Endpoint Name:         host-xgboost-def0e83e0d5f11eaaa450a350733ba06
  Endpoint Status:       Creating
  Endpoint URL:          https://runtime.sagemaker.us-east-2.amazonaws.com/endpoints/host-xgboost-def0e83e0d5f11eaaaexample/invocations
  Last Check Time:       2019-11-22T19:43:57Z
  Last Modified Time:    2019-11-22T19:40:04Z
  Model Names:
    Name:   xgboost-model
    Value:  xgboost-model-1-def0e83e0d5f11-df5cc9fd0d5f11eaaa450aexample
Events:     <none>
```

O campo de status fornece mais informações usando os seguintes campos: 
+ `Additional`: informações adicionais sobre o status da implantação da hospedagem. Esse campo é opcional e só é preenchido em caso de erro. 
+ `Creation Time`: quando o endpoint foi criado na SageMaker IA. 
+ `Endpoint ARN`: O ARN do endpoint de SageMaker IA. 
+ `Endpoint Config Name`: o nome da SageMaker IA da configuração do endpoint. 
+ `Endpoint Name`: o nome da SageMaker IA do endpoint. 
+ `Endpoint Status`: o status do endpoint. 
+ `Endpoint URL`: o URL HTTPS que pode ser usado para acessar o endpoint. Para obter mais informações, consulte [Implantar um modelo em serviços de hospedagem de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html). 
+ `FailureReason`: se um comando de criação, atualização ou exclusão falhar, a causa será mostrada aqui. 
+ `Last Check Time`: a última vez que o operador verificou o status do endpoint. 
+ `Last Modified Time`: a última vez que o endpoint foi modificado. 
+ `Model Names`: um par de valores-chave de nomes de HostingDeployment modelos com nomes de modelos de SageMaker IA. 

### Invocar o endpoint
<a name="invoking-the-endpoint"></a>

Quando o status do endpoint for`InService`, você poderá invocar o endpoint de duas maneiras: usando a AWS CLI, que faz a autenticação e a assinatura da solicitação de URL, ou usando um cliente HTTP como cURL. Se você usa seu próprio cliente, precisa fazer a assinatura e a autenticação de URL AWS v4 por conta própria. 

Para invocar o endpoint usando a AWS CLI, execute o comando a seguir. Certifique-se de substituir o nome da região e do endpoint pelo nome da região e do endpoint de SageMaker IA do seu endpoint. Essas informações podem ser obtidas na saída de `kubectl describe`. 

```
# Invoke the endpoint with mock input data.
aws sagemaker-runtime invoke-endpoint \
  --region us-east-2 \
  --endpoint-name <endpoint name> \
  --body $(seq 784 | xargs echo | sed 's/ /,/g') \
  >(cat) \
  --content-type text/csv > /dev/null
```

Por exemplo, se sua região for `us-east-2` e o nome de configuração do endpoint for`host-xgboost-f56b6b280d7511ea824b129926example`, o seguinte comando invocaria o endpoint: 

```
aws sagemaker-runtime invoke-endpoint \
  --region us-east-2 \
  --endpoint-name host-xgboost-f56b6b280d7511ea824b1299example \
  --body $(seq 784 | xargs echo | sed 's/ /,/g') \
  >(cat) \
  --content-type text/csv > /dev/null
4.95847082138
```

Aqui `4.95847082138` está a predição de modelo para os dados simulados. 

### Atualizar HostingDeployment
<a name="update-hostingdeployment"></a>

1. Quando a HostingDeployment tem um status de`InService`, ele pode ser atualizado. Pode levar cerca de 10 minutos HostingDeployment para entrar em serviço. Para verificar se o status é `InService`, use o seguinte comando: 

   ```
   kubectl get hostingdeployments
   ```

1. Eles HostingDeployment podem ser atualizados antes que o status seja`InService`. O operador espera até que o endpoint de SageMaker IA esteja pronto `InService` antes de aplicar a atualização. 

   Para aplicar uma atualização, modifique o `hosting.yaml` arquivo. Por exemplo, altere o campo `initialInstanceCount` de 1 para 2 da seguinte forma: 

   ```
   apiVersion: sagemaker.aws.amazon.com/v1
   kind: HostingDeployment
   metadata:
     name: host-xgboost
   spec:
       region: us-east-2
       productionVariants:
           - variantName: all-traffic
             modelName: xgboost-model
             initialInstanceCount: 2
             instanceType: ml.c5.large
       models:
           - name: xgboost-model
             executionRoleArn: arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
             primaryContainer: xgboost
             containers:
               - xgboost
       containers:
           - containerHostname: xgboost
             modelDataUrl: s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz
             image: 123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest
   ```

1. Salve o arquivo e use `kubectl` para aplicar sua atualização da seguinte maneira: Você deve ver o status mudar de `InService` para `ReconcilingEndpoint`, então `Updating`. 

   ```
   $ kubectl apply -f hosting.yaml
   hostingdeployment.sagemaker.aws.amazon.com/host-xgboost configured
   
   $ kubectl get hostingdeployments
   NAME           STATUS                SAGEMAKER-ENDPOINT-NAME
   host-xgboost   ReconcilingEndpoint   host-xgboost-def0e83e0d5f11eaaa450a350abcdef
   
   $ kubectl get hostingdeployments
   NAME           STATUS     SAGEMAKER-ENDPOINT-NAME
   host-xgboost   Updating   host-xgboost-def0e83e0d5f11eaaa450a3507abcdef
   ```

SageMaker A IA implanta um novo conjunto de instâncias com seus modelos, troca o tráfego para usar as novas instâncias e drena as instâncias antigas. Assim que esse processo começa, o status se torna `Updating`. Depois que a atualização for concluída, seu endpoint se tornará `InService`. Este processo leva aproximadamente 10 minutos. 

### Exclua o HostingDeployment
<a name="delete-the-hostingdeployment"></a>

1. Use `kubectl` para excluir um HostingDeployment com o seguinte comando: 

   ```
   kubectl delete hostingdeployments host-xgboost
   ```

   A saída será semelhante a: 

   ```
   hostingdeployment.sagemaker.aws.amazon.com "host-xgboost" deleted
   ```

1. Para verificar se a implantação da hospedagem foi excluída, use o seguinte comando: 

   ```
   kubectl get hostingdeployments
   No resources found.
   ```

Os endpoints que foram excluídos não incorrem em nenhuma cobrança pelos recursos de SageMaker IA. 

## O ProcessingJob operador
<a name="kubernetes-processing-job-operator"></a>

ProcessingJob operadores são usados para iniciar trabalhos de SageMaker processamento da Amazon. Para obter mais informações sobre SageMaker processamento de trabalhos, consulte [CreateProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html). 

**Topics**
+ [Crie um ProcessingJob usando um arquivo YAML](#kubernetes-processing-job-yaml)
+ [Lista ProcessingJobs](#kubernetes-processing-job-list)
+ [Descreva um ProcessingJob](#kubernetes-processing-job-description)
+ [Excluir um ProcessingJob](#kubernetes-processing-job-delete)

### Crie um ProcessingJob usando um arquivo YAML
<a name="kubernetes-processing-job-yaml"></a>

Siga estas etapas para criar um trabalho de SageMaker processamento da Amazon usando um arquivo YAML:

1. Baixe o script de `kmeans_preprocessing.py` pré-processamento.

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans_preprocessing.py
   ```

1. Em um de seus buckets do Amazon Simple Storage Service (Amazon S3), crie `mnist_kmeans_example/processing_code` uma pasta e carregue o script na pasta.

1. Faça download do arquivo `kmeans-mnist-processingjob.yaml`.

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans-mnist-processingjob.yaml
   ```

1. Edite o arquivo YAML para especificar sua `sagemaker-execution-role` e substituir todas as instâncias do pelo seu `amzn-s3-demo-bucket` bucket do S3.

   ```
   ...
   metadata:
     name: kmeans-mnist-processing
   ...
     roleArn: arn:aws:iam::<acct-id>:role/service-role/<sagemaker-execution-role>
     ...
     processingOutputConfig:
       outputs:
         ...
             s3Output:
               s3Uri: s3://<amzn-s3-demo-bucket>/mnist_kmeans_example/output/
     ...
     processingInputs:
       ...
           s3Input:
             s3Uri: s3://<amzn-s3-demo-bucket>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py
   ```

   Eles `sagemaker-execution-role` devem ter permissões para que a SageMaker IA possa acessar seu bucket do S3, a Amazon CloudWatch e outros serviços em seu nome. Para obter mais informações sobre como criar uma função de execução, consulte [Funções de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms).

1. Aplique o arquivo YAML utilizando um dos seguintes comandos:

   Para instalação com escopo de cluster:

   ```
   kubectl apply -f kmeans-mnist-processingjob.yaml
   ```

   Para instalação com escopo de namespace:

   ```
   kubectl apply -f kmeans-mnist-processingjob.yaml -n <NAMESPACE>
   ```

### Lista ProcessingJobs
<a name="kubernetes-processing-job-list"></a>

Use um dos comandos a seguir para listar todos os trabalhos criados usando o ProcessingJob operador. `SAGEMAKER-JOB-NAME `vem da `metadata` seção do arquivo YAML.

Para instalação com escopo de cluster:

```
kubectl get ProcessingJob kmeans-mnist-processing
```

Para instalação com escopo de namespace:

```
kubectl get ProcessingJob -n <NAMESPACE> kmeans-mnist-processing
```

O resultado deve ser semelhante ao seguinte:

```
NAME                    STATUS     CREATION-TIME        SAGEMAKER-JOB-NAME
kmeans-mnist-processing InProgress 2020-09-22T21:13:25Z kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385
```

A saída lista todos os trabalhos, independentemente de seu status. Para remover um trabalho da lista, consulte [Excluir um trabalho de processamento](https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-processing-job-operator.html#kubernetes-processing-job-delete).

**ProcessingJob Status**
+ `SynchronizingK8sJobWithSageMaker`: o trabalho é enviado primeiro ao cluster. O operador recebeu a solicitação e está se preparando para criar o trabalho de processamento.
+ `Reconciling`: o operador está inicializando ou se recuperando de erros transitórios, junto com outros. Se o trabalho de processamento permanecer nesse estado, use o comando `describe` do `kubectl` para ver o motivo no campo `Additional`.
+ `InProgress | Completed | Failed | Stopping | Stopped`— Status do trabalho SageMaker de processamento. Para obter mais informações, consulte [DescribeProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html#sagemaker-DescribeProcessingJob-response-ProcessingJobStatus).
+ `Error`: o operador não pode se recuperar por meio da reconciliação.

Trabalhos concluídos, interrompidos ou falhados não incorrem em cobranças adicionais pelos recursos de SageMaker IA.

### Descreva um ProcessingJob
<a name="kubernetes-processing-job-description"></a>

Use um dos comandos a seguir para obter mais detalhes sobre um trabalho de processamento. Esses comandos são normalmente usados para depurar um problema ou verificar os parâmetros de um trabalho de processamento.

Para instalação com escopo de cluster:

```
kubectl describe processingjob kmeans-mnist-processing
```

Para instalação com escopo de namespace:

```
kubectl describe processingjob kmeans-mnist-processing -n <NAMESPACE>
```

A saída do seu trabalho de processamento deve ser semelhante à seguinte:

```
$ kubectl describe ProcessingJob kmeans-mnist-processing
Name:         kmeans-mnist-processing
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"ProcessingJob","metadata":{"annotations":{},"name":"kmeans-mnist-processing",...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         ProcessingJob
Metadata:
  Creation Timestamp:  2020-09-22T21:13:25Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  21746658
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/processingjobs/kmeans-mnist-processing
  UID:               7410ed52-fd18-11ea-b19a-165ae9f9e385
Spec:
  App Specification:
    Container Entrypoint:
      python
      /opt/ml/processing/code/kmeans_preprocessing.py
    Image Uri:  763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:1.5.0-cpu-py36-ubuntu16.04
  Environment:
    Name:   MYVAR
    Value:  my_value
    Name:   MYVAR2
    Value:  my_value2
  Network Config:
  Processing Inputs:
    Input Name:  mnist_tar
    s3Input:
      Local Path:   /opt/ml/processing/input
      s3DataType:   S3Prefix
      s3InputMode:  File
      s3Uri:        s3://<s3bucket>-us-west-2/algorithms/kmeans/mnist/mnist.pkl.gz
    Input Name:     source_code
    s3Input:
      Local Path:   /opt/ml/processing/code
      s3DataType:   S3Prefix
      s3InputMode:  File
      s3Uri:        s3://<s3bucket>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py
  Processing Output Config:
    Outputs:
      Output Name:  train_data
      s3Output:
        Local Path:    /opt/ml/processing/output_train/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
      Output Name:     test_data
      s3Output:
        Local Path:    /opt/ml/processing/output_test/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
      Output Name:     valid_data
      s3Output:
        Local Path:    /opt/ml/processing/output_valid/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
  Processing Resources:
    Cluster Config:
      Instance Count:     1
      Instance Type:      ml.m5.xlarge
      Volume Size In GB:  20
  Region:                 us-west-2
  Role Arn:               arn:aws:iam::<acct-id>:role/m-sagemaker-role
  Stopping Condition:
    Max Runtime In Seconds:  1800
  Tags:
    Key:    tagKey
    Value:  tagValue
Status:
  Cloud Watch Log URL:             https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#logStream:group=/aws/sagemaker/ProcessingJobs;prefix=kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385;streamFilter=typeLogStreamPrefix
  Last Check Time:                 2020-09-22T21:14:29Z
  Processing Job Status:           InProgress
  Sage Maker Processing Job Name:  kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385
Events:                            <none>
```

### Excluir um ProcessingJob
<a name="kubernetes-processing-job-delete"></a>

Quando você exclui uma tarefa de processamento, a tarefa SageMaker de processamento é removida do Kubernetes, mas a tarefa não é excluída da IA. SageMaker Se o status do trabalho na SageMaker IA for, `InProgress` o trabalho será interrompido. Os trabalhos de processamento que são interrompidos não incorrem em nenhuma cobrança pelos recursos de SageMaker IA. Use um dos comandos a seguir para excluir um trabalho de processamento. 

Para instalação com escopo de cluster:

```
kubectl delete processingjob kmeans-mnist-processing
```

Para instalação com escopo de namespace:

```
kubectl delete processingjob kmeans-mnist-processing -n <NAMESPACE>
```

A saída do seu trabalho de processamento deve ser semelhante à seguinte:

```
processingjob.sagemaker.aws.amazon.com "kmeans-mnist-processing" deleted
```



**nota**  
SageMaker A IA não exclui a tarefa de processamento. Os trabalhos interrompidos continuam aparecendo no console de SageMaker IA. O `delete` comando leva alguns minutos para limpar os recursos da SageMaker IA.

## HostingAutoscalingPolicy Operador (HAP)
<a name="kubernetes-hap-operator"></a>

O operador HostingAutoscalingPolicy (HAP) usa uma lista de recursos IDs como entrada e aplica a mesma política a cada um deles. Cada ID de recurso é uma combinação de um nome de endpoint e um nome de variante. O operador HAP executa duas etapas: registra o recurso IDs e depois aplica a política de escalabilidade a cada ID de recurso. `Delete`desfaz as duas ações. [Você pode aplicar o HAP a um endpoint de SageMaker IA existente ou criar um novo endpoint de SageMaker IA usando o operador. HostingDeployment ](https://docs.aws.amazon.com/sagemaker/latest/dg/hosting-deployment-operator.html#create-a-hostingdeployment) Você pode ler mais sobre o escalonamento automático de SageMaker IA na documentação da política de [escalonamento automático de aplicativos](https://docs.aws.amazon.com/sagemaker/latest/dg/endpoint-auto-scaling.html).

**nota**  
Em seus comandos `kubectl`, você pode usar a forma abreviada, `hap`, no lugar de `hostingautoscalingpolicy`.

**Topics**
+ [Crie um HostingAutoscalingPolicy usando um arquivo YAML](#kubernetes-hap-job-yaml)
+ [Lista HostingAutoscalingPolicies](#kubernetes-hap-list)
+ [Descreva um HostingAutoscalingPolicy](#kubernetes-hap-describe)
+ [Atualizar um HostingAutoscalingPolicy](#kubernetes-hap-update)
+ [Excluir um HostingAutoscalingPolicy](#kubernetes-hap-delete)
+ [Atualizar ou excluir um endpoint com um HostingAutoscalingPolicy](#kubernetes-hap-update-delete-endpoint)

### Crie um HostingAutoscalingPolicy usando um arquivo YAML
<a name="kubernetes-hap-job-yaml"></a>

Use um arquivo YAML para criar um HostingAutoscalingPolicy (HAP) que aplique uma métrica predefinida ou personalizada a um ou vários SageMaker endpoints de IA.

A Amazon SageMaker AI exige valores específicos para aplicar o escalonamento automático à sua variante. Se esses valores não forem especificados na especificação YAML, o operador HAP aplicará os seguintes valores padrão:

```
# Do not change
Namespace                    = "sagemaker"
# Do not change
ScalableDimension            = "sagemaker:variant:DesiredInstanceCount"
# Only one supported
PolicyType                   = "TargetTrackingScaling"
# This is the default policy name but can be changed to apply a custom policy
DefaultAutoscalingPolicyName = "SageMakerEndpointInvocationScalingPolicy"
```

Use os exemplos a seguir para criar um HAP que aplique uma métrica predefinida ou personalizada a um ou vários endpoints.

#### Exemplo 1: aplicar uma métrica predefinida a uma única variante de endpoint
<a name="kubernetes-hap-predefined-metric"></a>

1. Faça download do arquivo YAML de exemplo para uma métrica predefinida usando o seguinte comando:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
   ```

1. Edite o arquivo YAML para especificar seu `endpointName`, `variantName` e `Region`.

1. Use um dos comandos a seguir para aplicar uma métrica predefinida a uma única ID de recurso (combinação de nome do endpoint e nome da variante).

   Para instalação com escopo de cluster:

   ```
   kubectl apply -f hap-predefined-metric.yaml
   ```

   Para instalação com escopo de namespace:

   ```
   kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>
   ```

#### Exemplo 2: aplicar uma métrica personalizada a uma única variante de endpoint
<a name="kubernetes-hap-custom-metric"></a>

1. Faça download do arquivo YAML de exemplo para uma métrica personalizada usando o seguinte comando:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-custom-metric.yaml
   ```

1. Edite o arquivo YAML para especificar seu `endpointName`, `variantName` e `Region`.

1. Use um dos comandos a seguir para aplicar uma métrica personalizada a um único ID de recurso (combinação de nome do endpoint e nome da variante) no lugar do `SageMakerVariantInvocationsPerInstance` recomendado.
**nota**  
A Amazon SageMaker AI não verifica a validade da sua especificação YAML.

   Para instalação com escopo de cluster:

   ```
   kubectl apply -f hap-custom-metric.yaml
   ```

   Para instalação com escopo de namespace:

   ```
   kubectl apply -f hap-custom-metric.yaml -n <NAMESPACE>
   ```

#### Exemplo 3: aplicar uma política de escalabilidade a vários endpoints e variantes
<a name="kubernetes-hap-scaling-policy"></a>

Você pode usar o operador HAP para aplicar a mesma política de escalabilidade a vários recursos. IDs Uma `scaling_policy` solicitação separada é criada para cada ID de recurso (combinação de nome do endpoint e nome da variante).

1. Faça download do arquivo YAML de exemplo para uma métrica predefinida usando o seguinte comando:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
   ```

1. Edite o arquivo YAML para especificar seus `Region`, vários `endpointName` e valores `variantName`.

1. Use um dos comandos a seguir para aplicar uma métrica predefinida a vários recursos IDs (combinações de nome de endpoint e nome de variante).

   Para instalação com escopo de cluster:

   ```
   kubectl apply -f hap-predefined-metric.yaml
   ```

   Para instalação com escopo de namespace:

   ```
   kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>
   ```

#### Considerações HostingAutoscalingPolicies para vários endpoints e variantes
<a name="kubernetes-hap-scaling-considerations"></a>

As considerações a seguir se aplicam quando você usa vários recursos IDs:
+ Se você aplicar uma única política em vários recursos IDs, um PolicyArn será criado por ID de recurso. Cinco endpoints têm cinco políticasARNs. Quando você executa o comando `describe` na política, as respostas aparecem como um trabalho e incluem um único status de trabalho.
+ Se você aplicar uma métrica personalizada a vários recursos IDs, a mesma dimensão ou valor será usado para todos os valores de ID do recurso (variante). Por exemplo, se você aplicar uma métrica de cliente para as instâncias 1 a 5 e a dimensão da variante do endpoint for mapeada para a variante 1, quando a variante 1 exceder as métricas, todos os endpoints terão a escala aumentada ou reduzida verticalmente.
+ O operador HAP suporta a atualização da lista de recursos IDs. Se você modificar, adicionar ou excluir recursos da especificação, IDs a política de escalonamento automático será removida da lista anterior de variantes e aplicada às combinações de IDs de recursos recém-especificadas. Use o [https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-hap-operator.html#kubernetes-hap-describe](https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-hap-operator.html#kubernetes-hap-describe)comando para listar o recurso IDs ao qual a política está atualmente aplicada.

### Lista HostingAutoscalingPolicies
<a name="kubernetes-hap-list"></a>

Use um dos comandos a seguir para listar tudo HostingAutoscalingPolicies (HAPs) criado usando o operador HAP.

Para instalação com escopo de cluster:

```
kubectl get hap
```

Para instalação com escopo de namespace:

```
kubectl get hap -n <NAMESPACE>
```

O resultado deve ser semelhante ao seguinte:

```
NAME             STATUS   CREATION-TIME
hap-predefined   Created  2021-07-13T21:32:21Z
```

Use o comando a seguir para verificar o status do seu HostingAutoscalingPolicy (HAP).

```
kubectl get hap <job-name>
```

Ele tem um dos seguintes valores:
+ `Reconciling`: certos tipos de erros mostram o status como `Reconciling` em vez de `Error`. Alguns exemplos são erros do lado do servidor e endpoints no estado `Creating` ou `Updating`. Verifique o campo `Additional` no status ou nos logs do operador para obter mais detalhes.
+ `Created`
+ `Error`

**Para visualizar o endpoint de ajuste de escala automático ao qual você aplicou a política**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel do lado esquerdo, expanda **Inferência**.

1. Selecione **Endpoints**.

1. Selecione o nome do endpoint de interesse.

1. Role até a seção **Definições de runtime do endpoint**.

### Descreva um HostingAutoscalingPolicy
<a name="kubernetes-hap-describe"></a>

Use o comando a seguir para obter mais detalhes sobre um HostingAutoscalingPolicy (HAP). Esses comandos são normalmente usados para depurar um problema ou verificar o recurso IDs (combinações de nome de endpoint e nome de variante) de um HAP.

```
kubectl describe hap <job-name>
```

### Atualizar um HostingAutoscalingPolicy
<a name="kubernetes-hap-update"></a>

O operador HostingAutoscalingPolicy (HAP) oferece suporte a atualizações. Você pode editar sua especificação YAML para alterar os valores e depois reaplicar a política. O operador do HAP exclui a política existente e aplica a nova política.

### Excluir um HostingAutoscalingPolicy
<a name="kubernetes-hap-delete"></a>

Use um dos comandos a seguir para excluir uma política HostingAutoscalingPolicy (HAP).

Para instalação com escopo de cluster:

```
kubectl delete hap hap-predefined
```

Para instalação com escopo de namespace:

```
kubectl delete hap hap-predefined -n <NAMESPACE>
```

Esse comando exclui a política de escalabilidade e cancela o registro do alvo de escalabilidade do Kubernetes. Este comando retorna a seguinte saída:

```
hostingautoscalingpolicies.sagemaker.aws.amazon.com "hap-predefined" deleted
```

### Atualizar ou excluir um endpoint com um HostingAutoscalingPolicy
<a name="kubernetes-hap-update-delete-endpoint"></a>

Para atualizar um endpoint que tenha um HostingAutoscalingPolicy (HAP), use o `kubectl` `delete` comando para remover o HAP, atualizar o endpoint e reaplicar o HAP.

Para excluir um endpoint que tenha um HAP, use o comando `kubectl` `delete` para remover o HAP antes de excluir o endpoint.

# Migre recursos para os operadores mais recentes
<a name="kubernetes-sagemaker-operators-migrate"></a>

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 atualmente 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 da Amazon](https://github.com/aws-controllers-k8s/sagemaker-controller). SageMaker O controlador de serviço ACK é uma nova geração de SageMaker operadores para Kubernetes com base em [AWS controladores para Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).

Para obter respostas às perguntas frequentes sobre o fim do suporte da versão original do SageMaker Operators for Kubernetes, consulte [Anunciando o fim do suporte da versão original do SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

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

**nota**  
Os operadores de SageMaker IA mais recentes para Kubernetes não são compatíveis com versões anteriores.

**Topics**
+ [Pré-requisitos](#migrate-resources-to-new-operators-prerequisites)
+ [Adote recursos](#migrate-resources-to-new-operators-steps)
+ [Limpe os recursos antigos](#migrate-resources-to-new-operators-cleanup)
+ [Use os novos operadores de SageMaker IA para Kubernetes](#migrate-resources-to-new-operators-tutorials)

## Pré-requisitos
<a name="migrate-resources-to-new-operators-prerequisites"></a>

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

1. Instale os operadores de SageMaker IA mais recentes para Kubernetes. Consulte [Configuração](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/#setup) no *Machine Learning com o ACK SageMaker AI Controller* para step-by-step obter instruções.

1. Se você estiver usando [HostingAutoscalingPolicy recursos](#migrate-resources-to-new-operators-hap), instale o novo Application Auto Scaling Operators. Consulte [Configuração](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/#setup) em *escala de cargas de trabalho de SageMaker IA com Application Auto* Scaling step-by-step para obter instruções. Essa etapa é opcional se você não estiver usando HostingAutoScalingPolicy recursos.

Se as permissões forem configuradas corretamente, o controlador de serviço ACK SageMaker AI poderá determinar a especificação e o status do AWS recurso e reconciliar o recurso como se o controlador ACK o tivesse criado originalmente.

## Adote recursos
<a name="migrate-resources-to-new-operators-steps"></a>

Os novos operadores de SageMaker IA para Kubernetes oferecem a capacidade de adotar recursos que não foram originalmente criados pelo controlador de serviço ACK. Para obter mais informações, consulte [Adotar AWS recursos existentes](https://aws-controllers-k8s.github.io/community/docs/user-docs/adopted-resource/) na documentação do ACK.

As etapas a seguir mostram como os novos operadores de SageMaker IA para Kubernetes podem adotar um endpoint de IA existente SageMaker . Salve o código de amostra a seguir em um arquivo chamado `adopt-endpoint-sample.yaml`. 

```
apiVersion: services.k8s.aws/v1alpha1
kind: AdoptedResource
metadata:
  name: adopt-endpoint-sample
spec:  
  aws:
    # resource to adopt, not created by ACK
    nameOrID: xgboost-endpoint
  kubernetes:
    group: sagemaker.services.k8s.aws
    kind: Endpoint
    metadata:
      # target K8s CR name
      name: xgboost-endpoint
```

Envie o recurso personalizado (CR) usando `kubectl apply`:

```
kubectl apply -f adopt-endpoint-sample.yaml
```

Use `kubectl describe` para verificar as condições de status do seu recurso adotado.

```
kubectl describe adoptedresource adopt-endpoint-sample
```

Verifique se a condição `ACK.Adopted` é `True`. A saída deve ser semelhante ao seguinte exemplo:

```
---
kind: AdoptedResource
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: '{"apiVersion":"services.k8s.aws/v1alpha1","kind":"AdoptedResource","metadata":{"annotations":{},"name":"xgboost-endpoint","namespace":"default"},"spec":{"aws":{"nameOrID":"xgboost-endpoint"},"kubernetes":{"group":"sagemaker.services.k8s.aws","kind":"Endpoint","metadata":{"name":"xgboost-endpoint"}}}}'
  creationTimestamp: '2021-04-27T02:49:14Z'
  finalizers:
  - finalizers.services.k8s.aws/AdoptedResource
  generation: 1
  name: adopt-endpoint-sample
  namespace: default
  resourceVersion: '12669876'
  selfLink: "/apis/services.k8s.aws/v1alpha1/namespaces/default/adoptedresources/adopt-endpoint-sample"
  uid: 35f8fa92-29dd-4040-9d0d-0b07bbd7ca0b
spec:
  aws:
    nameOrID: xgboost-endpoint
  kubernetes:
    group: sagemaker.services.k8s.aws
    kind: Endpoint
    metadata:
      name: xgboost-endpoint
status:
  conditions:
  - status: 'True'
    type: ACK.Adopted
```

Verifique se seu recurso existe em seu cluster:

```
kubectl describe endpoints.sagemaker xgboost-endpoint
```

### HostingAutoscalingPolicy recursos
<a name="migrate-resources-to-new-operators-hap"></a>

O recurso `HostingAutoscalingPolicy` (HAP) consiste em vários recursos do Application Auto Scaling: `ScalableTarget` e `ScalingPolicy`. Ao adotar um recurso HAP com ACK, primeiro instale o [controlador Application Autox Scaling](https://github.com/aws-controllers-k8s/applicationautoscaling-controller). Para adotar os recursos do HAP, você precisa adotar tanto o recurso `ScalableTarget` como o `ScalingPolicy`. Você pode encontrar o identificador de recursos para esses recursos no status do `HostingAutoscalingPolicy` recurso ()`status.ResourceIDList`.

### HostingDeployment recursos
<a name="migrate-resources-to-new-operators-hosting-deployment"></a>

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

Para obter uma lista de todos os recursos de SageMaker IA compatíveis, consulte a [Referência da API ACK](https://aws-controllers-k8s.github.io/community/reference/).

## Limpe os recursos antigos
<a name="migrate-resources-to-new-operators-cleanup"></a>

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

### Etapa 1: desinstalar o operador antigo
<a name="migrate-resources-to-new-operators-uninstall"></a>

Para desinstalar o operador antigo, consulte [Excluir operadores](kubernetes-sagemaker-operators-end-of-support.md#delete-operators).

**Atenção**  
Desinstale o operador antigo antes de excluir qualquer recurso antigo.

### Etapa 2: remover finalizadores e excluir recursos antigos
<a name="migrate-resources-to-new-operators-delete-resources"></a>

**Atenção**  
Antes de excluir recursos antigos, certifique-se de ter desinstalado o operador antigo.

Depois de desinstalar o operador antigo, você deve remover explicitamente os finalizadores para excluir os recursos antigos do operador. O exemplo de script a seguir mostra como excluir todos os trabalhos de treinamento gerenciados pelo operador antigo em um determinado namespace. Você pode usar um padrão semelhante para excluir recursos adicionais depois que eles forem adotados pelo novo operador.

**nota**  
Você deve usar nomes completos de recursos para obter recursos. Por exemplo, use `kubectl get trainingjobs.sagemaker.aws.amazon.com` em vez de `kubectl get trainingjob`.

```
namespace=sagemaker_namespace
training_jobs=$(kubectl get trainingjobs.sagemaker.aws.amazon.com -n $namespace -ojson | jq -r '.items | .[] | .metadata.name')
 
for job in $training_jobs
do
    echo "Deleting $job resource in $namespace namespace"
    kubectl patch trainingjobs.sagemaker.aws.amazon.com $job -n $namespace -p '{"metadata":{"finalizers":null}}' --type=merge
    kubectl delete trainingjobs.sagemaker.aws.amazon.com $job -n $namespace
done
```

## Use os novos operadores de SageMaker IA para Kubernetes
<a name="migrate-resources-to-new-operators-tutorials"></a>

Para obter guias detalhados sobre como usar os novos operadores de SageMaker IA para Kubernetes, consulte [Use operadores de SageMaker IA para Kubernetes](kubernetes-sagemaker-operators-ack.md#kubernetes-sagemaker-operators-ack-use)

# Anunciando o fim do suporte da versão original do SageMaker AI Operators for Kubernetes
<a name="kubernetes-sagemaker-operators-eos-announcement"></a>

Esta página anuncia o fim do suporte para a versão original do [SageMaker AI Operators for Kubernetes e fornece respostas para](https://github.com/aws/amazon-sagemaker-operator-for-k8s) perguntas frequentes, bem como informações de migração sobre o [controlador de serviços ACK para Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller), uma nova geração de operadores de SageMaker IA totalmente compatíveis para Kubernetes. Para obter informações gerais sobre os novos operadores de SageMaker IA para Kubernetes, consulte. [Operadores de SageMaker IA mais recentes para Kubernetes](kubernetes-sagemaker-operators-ack.md) 

## Perguntas frequentes sobre o Fim do suporte
<a name="kubernetes-sagemaker-operators-eos-faq"></a>

**Topics**
+ [Por que estamos encerrando o suporte para a versão original do SageMaker AI Operators for Kubernetes?](#kubernetes-sagemaker-operators-eos-faq-why)
+ [Onde posso encontrar mais informações sobre os novos operadores de SageMaker IA para Kubernetes e ACK?](#kubernetes-sagemaker-operators-eos-faq-more)
+ [O que significa fim da compatibilidade (EOS)?](#kubernetes-sagemaker-operators-eos-faq-definition)
+ [Como posso migrar minha carga de trabalho para os novos operadores de SageMaker IA para Kubernetes para treinamento e inferência?](#kubernetes-sagemaker-operators-eos-faq-how)
+ [Para qual versão do ACK devo migrar?](#kubernetes-sagemaker-operators-eos-faq-version)
+ [Os operadores de SageMaker IA iniciais para Kubernetes e os novos operadores (controlador de serviço ACK para Amazon SageMaker AI) são funcionalmente equivalentes?](#kubernetes-sagemaker-operators-eos-faq-parity)

### Por que estamos encerrando o suporte para a versão original do SageMaker AI Operators for Kubernetes?
<a name="kubernetes-sagemaker-operators-eos-faq-why"></a>

Agora, os usuários podem aproveitar o [controlador de serviço ACK para Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller). O controlador de serviço ACK é uma nova geração de operadores de SageMaker IA para Kubernetes com base em [AWS Controllers for Kubernetes (ACK), um projeto orientado pela comunidade otimizado para](https://aws-controllers-k8s.github.io/community/) produção, padronizando a forma de expor serviços por meio de um operador Kubernetes. AWS Portanto, estamos anunciando o fim do suporte (EOS) para a versão original (não baseada em ACK) do [ SageMaker AI Operators](https://github.com/aws/amazon-sagemaker-operator-for-k8s) for Kubernetes. O suporte termina em **15 de fevereiro de 2023** junto com o [Amazon Elastic Kubernetes Service Kubernetes 1.21](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar). 

Para obter mais informações sobre o ACK, consulte o [histórico e os princípios do ACK](https://aws-controllers-k8s.github.io/community/docs/community/background/).

### Onde posso encontrar mais informações sobre os novos operadores de SageMaker IA para Kubernetes e ACK?
<a name="kubernetes-sagemaker-operators-eos-faq-more"></a>
+ Para obter mais informações sobre os novos operadores de SageMaker IA para Kubernetes, consulte o controlador de [serviço ACK para o GitHub repositório Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller) ou leia a documentação de [AWS Controllers](https://aws-controllers-k8s.github.io/community/docs/community/overview/) for Kubernetes.
+ Para ver um tutorial sobre como treinar um modelo de aprendizado de máquina com o controlador de serviço ACK para Amazon SageMaker AI usando o Amazon EKS, veja este [exemplo de SageMaker IA](https://aws-controllers-k8s.github.io/community/docs/tutorials/sagemaker-example/).

  Para ver um exemplo de escalonamento automático, consulte [Dimensionar cargas de trabalho de SageMaker IA com Application Auto Scaling.](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/)
+ Para obter informações sobre o Controlador da AWS para Kubernetes (ACK), consulte a documentação dos [Controladores da AWS para Kubernetes](https://aws-controllers-k8s.github.io/community/) (ACK).
+ Para ver uma lista dos recursos de SageMaker IA compatíveis, consulte a [Referência da API ACK](https://aws-controllers-k8s.github.io/community/reference/).

### O que significa fim da compatibilidade (EOS)?
<a name="kubernetes-sagemaker-operators-eos-faq-definition"></a>

Embora os usuários possam continuar usando suas operadoras atuais, não estamos mais desenvolvendo novos recursos para as operadoras, nem lançaremos patches ou atualizações de segurança para os problemas encontrados. `v1.2.2`é a última versão do [SageMaker AI Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master). Os usuários devem migrar suas cargas de trabalho para usar o [controlador de serviço ACK para Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller).

### Como posso migrar minha carga de trabalho para os novos operadores de SageMaker IA para Kubernetes para treinamento e inferência?
<a name="kubernetes-sagemaker-operators-eos-faq-how"></a>

Para obter informações sobre como migrar recursos dos antigos para os novos operadores de SageMaker IA do Kubernetes, siga. [Migre recursos para os operadores mais recentes](kubernetes-sagemaker-operators-migrate.md)

### Para qual versão do ACK devo migrar?
<a name="kubernetes-sagemaker-operators-eos-faq-version"></a>

Os usuários devem migrar para a versão mais recente do [controlador de serviço ACK para Amazon SageMaker AI](https://github.com/aws-controllers-k8s/sagemaker-controller/tags).

### Os operadores de SageMaker IA iniciais para Kubernetes e os novos operadores (controlador de serviço ACK para Amazon SageMaker AI) são funcionalmente equivalentes?
<a name="kubernetes-sagemaker-operators-eos-faq-parity"></a>

Sim, eles estão em paridade de atributos.

Alguns destaques das principais diferenças notáveis entre as duas versões incluem:
+ As definições de recursos personalizados (CRD) usadas pelos operadores de SageMaker IA baseados em ACK para Kubernetes seguem a definição da AWS API, tornando-a incompatível com as especificações de recursos personalizados dos operadores de SageMaker IA para Kubernetes em sua versão original. Consulte o [CRDs](https://github.com/aws-controllers-k8s/sagemaker-controller/tree/main/helm/crds)novo controlador ou use o guia de migração para adotar os recursos e usar o novo controlador. 
+ A `Hosting Autoscaling` política não faz mais parte dos novos operadores de SageMaker IA para Kubernetes e foi migrada para o controlador ACK de escalonamento automático de [aplicativos](https://github.com/aws-controllers-k8s/applicationautoscaling-controller). [Para saber como usar o controlador de escalonamento automático do aplicativo para configurar o escalonamento automático nos SageMaker AI Endpoints, siga este exemplo de escalonamento automático.](https://aws-controllers-k8s.github.io/community/docs/tutorials/autoscaling-example/) 
+ O `HostingDeployment` recurso foi usado para criar modelos, configurações de endpoints e endpoints em um CRD. Os novos operadores de SageMaker IA para Kubernetes têm um CRD separado para cada um desses recursos. 