

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Vecchi operatori di intelligenza artificiale per Kubernetes SageMaker
<a name="kubernetes-sagemaker-operators-end-of-support"></a>

Questa sezione si basa sulla versione originale di [SageMaker AI Operators](https://github.com/aws/amazon-sagemaker-operator-for-k8s) for Kubernetes.

**Importante**  
[Stiamo interrompendo lo sviluppo e il supporto tecnico della versione originale di Operators for Kubernetes. SageMaker ](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master)  
Se attualmente utilizzi una versione `v1.2.2` o precedente di [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master), ti consigliamo di migrare le tue risorse al [controller di servizio ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) per Amazon. SageMaker [Il controller di servizio ACK è una nuova generazione di SageMaker Operators for Kubernetes basata su AWS Controllers for Kubernetes (ACK).](https://aws-controllers-k8s.github.io/community/)  
Per informazioni sulle fasi di migrazione, consulta [Migrazione di risorse verso gli operatori più recenti](kubernetes-sagemaker-operators-migrate.md).  
Per le risposte alle domande frequenti sulla fine del supporto della versione originale di Operators for Kubernetes, consulta SageMaker [Annuncio della fine del supporto della versione originale di SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

**Topics**
+ [Installa SageMaker AI Operators for Kubernetes](#kubernetes-sagemaker-operators-eos-install)
+ [Usa Amazon SageMaker AI Jobs](kubernetes-sagemaker-jobs.md)
+ [Migrazione di risorse verso gli operatori più recenti](kubernetes-sagemaker-operators-migrate.md)
+ [Annuncio della fine del supporto della versione originale di SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

## Installa SageMaker AI Operators for Kubernetes
<a name="kubernetes-sagemaker-operators-eos-install"></a>

Utilizza i seguenti passaggi per installare e utilizzare SageMaker AI Operators for Kubernetes per addestrare, ottimizzare e distribuire modelli di machine learning con Amazon AI. SageMaker 

**Topics**
+ [Configurazione basata su ruoli IAM e distribuzione dell'operatore](#iam-role-based-setup-and-operator-deployment)
+ [Eseguire la pulizia delle risorse](#cleanup-operator-resources)
+ [Eliminazione degli operatori](#delete-operators)
+ [Risoluzione dei problemi](#troubleshooting)
+ [Immagini e SMLog in ciascuna Regione](#images-and-smlogs-in-each-region)

### Configurazione basata su ruoli IAM e distribuzione dell'operatore
<a name="iam-role-based-setup-and-operator-deployment"></a>

Le sezioni seguenti descrivono le fasi della configurazione e della distribuzione della versione originale dell'operatore.

**avvertimento**  
**Promemoria:** i seguenti passaggi non installano la versione più recente di AI Operators for Kubernetes. SageMaker Per installare i nuovi operatori ACK-based SageMaker AI per Kubernetes, consulta. [Operatori SageMaker AI più recenti per Kubernetes](kubernetes-sagemaker-operators-ack.md)

#### Prerequisiti
<a name="prerequisites"></a>

Questa guida presuppone che siano stati soddisfatti i prerequisiti seguenti: 
+ Installa i seguenti strumenti sul computer client utilizzato per accedere al cluster Kubernetes: 
  + [https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) Versione 1.13 o successiva. Utilizza una versione `kubectl` immediatamente precedente a quella del piano di controllo del cluster Amazon EKS. Ad esempio, un client `kubectl` 1.13 deve funzionare con cluster Kubernetes 1.13 e 1.14. OpenID Connect (OIDC) non è supportato nelle versioni precedenti alla 1.13. 
  + [https://github.com/weaveworks/eksctl](https://github.com/weaveworks/eksctl) Versione 0.7.0 o successiva 
  + [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) versione 1.16.232 o successiva 
  + (opzionale) [Helm](https://helm.sh/docs/intro/install/) Versione 3.0 o successiva 
  + [aws-iam-authenticator](https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html) 
+ Verifica di avere le autorizzazioni IAM per creare ruoli e collegare le policy ai ruoli.
+ Creato un cluster Kubernetes su cui eseguire gli operatori. Dovrebbe essere la versione 1.13 o 1.14 di Kubernetes. Per la creazione automatica di cluster utilizzando `eksctl`, consulta [Nozioni di base su eksctl](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html). Il provisioning di un cluster richiede 20-30 minuti. 

#### Cluster-scoped distribuzione
<a name="cluster-scoped-deployment"></a>

Prima di poter distribuire il tuo operatore utilizzando un ruolo IAM, associa un provide di identità (IdP) OpenID Connect (OIDC) al tuo ruolo per l'autenticazione con il servizio IAM.

##### Per creare un provider di identità OIDC per il cluster
<a name="create-an-openid-connect-provider-for-your-cluster"></a>

Le seguenti istruzioni illustrano come creare e associare un provider OIDC al tuo cluster Amazon EKS.

1. Imposta le variabili di ambiente locali `CLUSTER_NAME` e `AWS_REGION` come segue:

   ```
   # Set the Region and cluster
   export CLUSTER_NAME="{{<your cluster name>}}"
   export AWS_REGION="{{<your region>}}"
   ```

1. Utilizza il comando seguente per associare il provider OIDC al cluster. Per ulteriori informazioni, consulta [Abilitazione dei ruoli IAM per gli account di servizio nel 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
   ```

   L'aspetto dell'output deve essere simile al seguente: 

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

Ora che il cluster dispone di un provider di identità OIDC, puoi creare un ruolo e concedere a Kubernetes l' ServiceAccount autorizzazione ad assumere il ruolo.

##### Ottieni l'ID OIDC
<a name="get-the-oidc-id"></a>

Per configurare ServiceAccount, ottieni l'URL dell'emittente OIDC utilizzando il seguente comando:

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

Questo comando restituisce un URL simile al seguente: 

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

In questo URL, il valore `D48675832CA65BD10A532F597OIDCID` è l'ID OIDC. L'ID OIDC del tuo cluster è diverso. È necessario questo valore ID OIDC per creare un ruolo. 

 Se l’output è `None`, significa che il client è di una versione precedente. Per aggirare questo problema, esegui il seguente comando: 

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

L'URL OIDC viene restituito come segue: 

```
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

##### Creazione di un ruolo IAM
<a name="create-an-iam-role"></a>

1. Crea un file denominato `trust.json` e inserisci il seguente blocco di codice di relazione di attendibilità al suo interno. Assicurati di sostituire tutti i placeholder `<OIDC ID>`, `<AWS account number>` e `<EKS Cluster region>` con i valori corrispondenti al tuo 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. Esegui il seguente comando per creare un ruolo con relazione di attendibilità definita in `trust.json`. Questo ruolo consente al cluster Amazon EKS di ottenere e aggiornare le credenziali da IAM. 

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

   L'aspetto dell'output deve essere simile al seguente: 

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

    Prendi nota di `ROLE ARN`; passerai questo valore al tuo operatore. 

##### Allega la AmazonSageMakerFullAccess policy al ruolo
<a name="attach-the-amazonsagemakerfullaccess-policy-to-the-role"></a>

Per consentire al ruolo di accedere all' SageMaker intelligenza artificiale, allega la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)policy. Se desideri limitare le autorizzazioni all'operatore, puoi creare una policy personalizzata e collegarla. 

 Per collegare `AmazonSageMakerFullAccess`, esegui il comando seguente: 

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

Kubernetes ServiceAccount `sagemaker-k8s-operator-default` dovrebbe avere le autorizzazioni. `AmazonSageMakerFullAccess` Confermalo mentre installi l'operatore. 

##### Distribuzione dell'operatore
<a name="deploy-the-operator"></a>

Quando si distribuisce l'operatore, è possibile utilizzare un file YAML o grafici Helm. 

##### Distribuzione dell'operatore utilizzando YAML
<a name="deploy-the-operator-using-yaml"></a>

Questo è il modo più semplice per distribuire i propri operatori. Di seguito è riportato il procedimento: 

1. Scarica lo script del programma di installazione tramite il seguente comando: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/installer.yaml
   ```

1. Modifica il file `installer.yaml` per sostituire `eks.amazonaws.com/role-arn`. Sostituisci qui l'ARN con l'Amazon Resource Name (ARN) per il OIDC-based ruolo che hai creato. 

1. Usa il comando seguente per distribuire il cluster: 

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

##### Distribuisci l'operatore utilizzando i grafici Helm
<a name="deploy-the-operator-using-helm-charts"></a>

Usa il grafico Helm fornito per installare l'operatore. 

1. Clona la directory del programma di installazione Helm utilizzando il seguente comando: 

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

1. Accedi alla cartella `amazon-sagemaker-operator-for-k8s/hack/charts/installer`. Modifica il file `rolebased/values.yaml`, che include i parametri di alto livello per il grafico. Sostituisci qui il ruolo ARN con l'Amazon Resource Name (ARN) per il OIDC-based ruolo che hai creato. 

1. Installare il grafico Helm utilizzando il seguente comando: 

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

   Se decidi di installare l'operatore in uno spazio dei nomi diverso da quello specificato, devi modificare lo spazio dei nomi definito nel file `trust.json` del ruolo IAM in modo che corrispondano. 

1. Dopo un instante, il grafico viene installato con un nome generato casualmente. Verifica che l’installazione sia andata a buon fine eseguendo il comando riportato di seguito: 

   ```
   helm ls
   ```

   L'aspetto dell'output deve essere simile al seguente: 

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

##### Verifica la distribuzione dell'operatore
<a name="verify-the-operator-deployment"></a>

1. Dovresti essere in grado di visualizzare le SageMaker AI Custom Resource Definitions (CRD) per ogni operatore distribuito nel tuo cluster eseguendo il seguente comando: 

   ```
   kubectl get crd | grep sagemaker
   ```

   L'aspetto dell'output deve essere simile al seguente: 

   ```
   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. Assicurati che il pod dell’operatore sia in esecuzione correttamente. Utilizza il seguente comando per elencare tutti i pod: 

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

   Dovresti vedere un pod denominato `sagemaker-k8s-operator-controller-manager-*****` nello spazio dei nomi `sagemaker-k8s-operator-system` come segue: 

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

#### Namespace-scoped distribuzione
<a name="namespace-scoped-deployment"></a>

Hai la possibilità di installare il tuo operatore nell'ambito di un singolo spazio dei nomi Kubernetes. In questa modalità, il controller monitora e riconcilia le risorse con l' SageMaker intelligenza artificiale solo se le risorse vengono create all'interno di quel namespace. Ciò consente di effettuare un controllo più preciso su quale controller gestisce quali risorse. Ciò è utile per l'implementazione su più AWS account o per controllare quali utenti hanno accesso a determinati lavori. 

Questa guida descrive come installare un operatore in un particolare spazio dei nomi predefinito. Per distribuire un controller in un secondo spazio dei nomi, segui la guida dall'inizio alla fine e modifica lo spazio dei nomi in ogni fase. 

##### Per creare un provider di identità OIDC per il cluster Amazon EKS
<a name="create-an-openid-connect-provider-for-your-eks-cluster"></a>

Le seguenti istruzioni illustrano come creare e associare un provider OIDC al tuo cluster Amazon EKS. 

1. Imposta le variabili di ambiente locali `CLUSTER_NAME` e `AWS_REGION` come segue: 

   ```
   # Set the Region and cluster
   export CLUSTER_NAME="{{<your cluster name>}}"
   export AWS_REGION="{{<your region>}}"
   ```

1. Utilizza il comando seguente per associare il provider OIDC al cluster. Per ulteriori informazioni, consulta [Abilitazione dei ruoli IAM per gli account di servizio nel 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
   ```

   L'aspetto dell'output deve essere simile al seguente: 

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

Ora che il cluster dispone di un provider di identità OIDC, crea un ruolo e concedi a Kubernetes ServiceAccount l'autorizzazione ad assumere il ruolo. 

##### Ottieni il tuo ID OIDC
<a name="get-your-oidc-id"></a>

Per configurare ServiceAccount, ottenete innanzitutto l'URL dell'emittente OpenID Connect utilizzando il seguente comando: 

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

Questo comando restituisce un URL simile al seguente: 

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

In questo URL, il valore D48675832CA65BD10A532F597OIDCID è l'ID OIDC. L'ID OIDC del tuo cluster è diverso. È necessario questo valore ID OIDC per creare un ruolo. 

 Se l’output è `None`, significa che il client è di una versione precedente. Per aggirare questo problema, esegui il seguente comando: 

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

L'URL OIDC viene restituito come segue: 

```
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
```

##### Creazione del ruolo IAM
<a name="create-your-iam-role"></a>

1. Crea un file denominato `trust.json` e inserisci il seguente blocco di codice di relazione di attendibilità al suo interno. Assicurati di sostituire tutti i placeholder `<OIDC ID>`, `<AWS account number>`, `<EKS Cluster region>` e `<Namespace>` con i valori corrispondenti al tuo cluster. Ai fini di questa guida, `my-namespace` viene utilizzato per il valore `<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. Esegui il seguente comando per creare un ruolo con relazione di attendibilità definita in `trust.json`. Questo ruolo consente al cluster Amazon EKS di ottenere e aggiornare le credenziali da IAM. 

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

   L'aspetto dell'output deve essere simile al seguente: 

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

Prendi nota di `ROLE ARN`. Passerai questo valore al tuo operatore. 

##### Allega la AmazonSageMakerFullAccess policy al tuo ruolo
<a name="attach-the-amazonsagemakerfullaccess-policy-to-your-role"></a>

Per consentire al ruolo di accedere all' SageMaker intelligenza artificiale, allega la [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)policy. Se desideri limitare le autorizzazioni all'operatore, puoi creare una policy personalizzata e collegarla. 

 Per collegare `AmazonSageMakerFullAccess`, esegui il comando seguente: 

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

Kubernetes ServiceAccount `sagemaker-k8s-operator-default` dovrebbe avere le autorizzazioni. `AmazonSageMakerFullAccess` Confermalo mentre installi l'operatore. 

##### Distribuisci l'operatore nel tuo spazio dei nomi
<a name="deploy-the-operator-to-your-namespace"></a>

Quando si distribuisce l'operatore, è possibile utilizzare un file YAML o grafici Helm. 

##### Distribuisci l'operatore nel tuo spazio dei nomi utilizzando YAML
<a name="deploy-the-operator-to-your-namespace-using-yaml"></a>

La distribuzione di un operatore nell'ambito di uno spazio dei nomi prevede due fasi. La prima è il set di CRD che vengono installati a livello di cluster. Queste definizioni di risorse devono essere installate solo una volta per cluster Kubernetes. La seconda parte riguarda le autorizzazioni dell'operatore e la distribuzione stessa. 

 Se non hai ancora installato i CRD nel cluster, applica il programma di installazione CRD YALM usando il seguente comando: 

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

Per installare l'operatore nel cluster: 

1. Scarica il programma di installazione dell’operatore YALM tramite il seguente comando: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/operator.yaml
   ```

1. Aggiorna il programma di installazione YAML per inserire le risorse nello spazio dei nomi specificato utilizzando il seguente comando: 

   ```
   sed -i -e 's/PLACEHOLDER-NAMESPACE/{{<YOUR NAMESPACE>}}/g' operator.yaml
   ```

1. Modifica il file `operator.yaml` per inserire le risorse nel tuo `eks.amazonaws.com/role-arn`. Sostituisci qui l'ARN con l'Amazon Resource Name (ARN) per il OIDC-based ruolo che hai creato. 

1. Usa il comando seguente per distribuire il cluster: 

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

##### Distribuisci l'operatore nel tuo spazio dei nomi utilizzando i grafici Helm
<a name="deploy-the-operator-to-your-namespace-using-helm-charts"></a>

La distribuzione di un operatore nell'ambito di uno spazio dei nomi prevede due fasi necessarie. La prima è il set di CRD che vengono installati a livello di cluster. Queste definizioni di risorse devono essere installate solo una volta per cluster Kubernetes. La seconda parte riguarda le autorizzazioni dell'operatore e la distribuzione stessa. Per usare i grafici Helm devi prima creare lo spazio dei nomi usando `kubectl`. 

1. Clona la directory del programma di installazione Helm utilizzando il seguente comando: 

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

1. Accedi alla cartella `amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced`. Modifica il file `rolebased/values.yaml`, che include i parametri di alto livello per il grafico. Sostituisci qui il ruolo ARN con l'Amazon Resource Name (ARN) per il OIDC-based ruolo che hai creato. 

1. Installare il grafico Helm utilizzando il seguente comando: 

   ```
   helm install crds crd_chart/
   ```

1. Crea lo spazio dei nomi richiesto e installa l'operatore utilizzando il seguente comando: 

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

1. Dopo un instante, il grafico viene installato con il nome `sagemaker-operator`. Verifica che l’installazione sia andata a buon fine eseguendo il comando riportato di seguito: 

   ```
   helm ls
   ```

   L'aspetto dell'output deve essere simile al seguente: 

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

##### Verifica la distribuzione dell'operatore nel tuo spazio dei nomi
<a name="verify-the-operator-deployment-to-your-namespace"></a>

1. Dovresti essere in grado di visualizzare le SageMaker AI Custom Resource Definitions (CRD) per ogni operatore distribuito nel tuo cluster eseguendo il seguente comando: 

   ```
   kubectl get crd | grep sagemaker
   ```

   L'aspetto dell'output deve essere simile al seguente: 

   ```
   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. Assicurati che il pod dell’operatore sia in esecuzione correttamente. Utilizza il seguente comando per elencare tutti i pod: 

   ```
   kubectl -n my-namespace get pods
   ```

   Dovresti vedere un pod denominato `sagemaker-k8s-operator-controller-manager-*****` nello spazio dei nomi `my-namespace` come segue: 

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

#### `Installa il plugin SageMaker AI logs kubectl`
<a name="install-the-amazon-sagemaker-logs-kubectl-plugin"></a>

 [Come parte di SageMaker AI Operators for Kubernetes, puoi utilizzare il plugin per. `smlogs`](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/) `kubectl` Ciò consente lo SageMaker streaming CloudWatch dei log AI. `kubectl` `kubectl`[deve essere installato sul tuo PATH.](http://www.linfo.org/path_env_var.html) I seguenti comandi inseriscono il file binario nella directory `sagemaker-k8s-bin` della home directory e aggiungono tale directory a `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
```

Utilizza il comando seguente per verificare che il plugin `kubectl` sia installato correttamente: 

```
kubectl smlogs
```

Se il plugin `kubectl` è installato correttamente, l'output deve essere simile al seguente: 

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

### Eseguire la pulizia delle risorse
<a name="cleanup-operator-resources"></a>

Per disinstallare l'operatore dal cluster, devi prima assicurarti di eliminare tutte le risorse SageMaker AI dal cluster. In caso contrario, l'operazione di eliminazione dell'operatore si arresta. Esegui i comandi seguenti per arrestare tutti i processi: 

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

Verrà visualizzato un output simile al seguente: 

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

Dopo aver eliminato tutti i job SageMaker AI, consulta l'articolo [Eliminazione degli operatori](#delete-operators) per eliminare l'operatore dal cluster.

### Eliminazione degli operatori
<a name="delete-operators"></a>

#### Eliminazione degli operatori basati sul cluster
<a name="delete-cluster-based-operators"></a>

##### Operatori installati con YAML
<a name="operators-installed-using-yaml"></a>

Per disinstallare l'operatore dal cluster, assicurati che tutte le risorse SageMaker AI siano state eliminate dal cluster. In caso contrario, l'operazione di eliminazione dell'operatore si arresta.

**Nota**  
Prima di eliminare il cluster, assicurati di eliminare tutte le risorse SageMaker AI dal cluster. Per ulteriori informazioni, consulta [Eseguire la pulizia delle risorse](#cleanup-operator-resources).

Dopo aver eliminato tutti i lavori SageMaker AI, utilizza `kubectl` per eliminare l'operatore dal cluster:

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

Verrà visualizzato un output simile al seguente: 

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

##### Operatori installati utilizzando grafici Helm
<a name="operators-installed-using-helm-charts"></a>

Per eliminare i CRD degli operatori, elimina prima tutti i processi in esecuzione. Quindi, elimina il grafico Helm utilizzato per distribuire gli operatori tramite i seguenti comandi: 

```
# get the helm charts
helm ls
  
# delete the charts
helm delete {{<chart_name>}}
```

#### Elimina gli operatori basati sullo spazio dei nomi
<a name="delete-namespace-based-operators"></a>

##### Operatori installati con YAML
<a name="operators-installed-with-yaml"></a>

Per disinstallare l'operatore dal cluster, assicurati innanzitutto che tutte le risorse SageMaker AI siano state eliminate dal cluster. In caso contrario, l'operazione di eliminazione dell'operatore si arresta.

**Nota**  
Prima di eliminare il cluster, assicurati di eliminare tutte le risorse SageMaker AI dal cluster. Per ulteriori informazioni, consulta [Eseguire la pulizia delle risorse](#cleanup-operator-resources).

Dopo aver eliminato tutti i lavori SageMaker AI, utilizza `kubectl` per eliminare prima l'operatore dallo spazio dei nomi e poi i CRD dal cluster. Esegui i comandi seguenti per eliminare l'operatore dal 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>}}
```

##### Operatori installati con grafici Helm
<a name="operators-installed-with-helm-charts"></a>

Per eliminare i CRD degli operatori, elimina prima tutti i processi in esecuzione. Quindi, elimina il grafico Helm utilizzato per distribuire gli operatori tramite i seguenti comandi: 

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

### Risoluzione dei problemi
<a name="troubleshooting"></a>

#### Esecuzione del debug di un processo non riuscito
<a name="debugging-a-failed-job"></a>

Completa la seguente procedura per eseguire il debug di un processo non riuscito.
+ Controlla lo stato del processo eseguendo quanto segue: 

  ```
  kubectl get {{<CRD Type>}} {{<job name>}}
  ```
+ Se il lavoro è stato creato in SageMaker AI, puoi utilizzare il seguente comando per visualizzare il e il`STATUS`: `SageMaker Job Name` 

  ```
  kubectl get {{<crd type>}} {{<job name>}}
  ```
+ È possibile utilizzare `smlogs` per trovare la causa del problema utilizzando il seguente comando: 

  ```
  kubectl smlogs {{<crd type>}} {{<job name>}}
  ```
+  È inoltre possibile utilizzare il comando `describe` per ricevere ulteriori dettagli sul processo utilizzando il comando seguente. L'output ha un campo `additional` che contiene ulteriori informazioni sullo stato del processo. 

  ```
  kubectl describe {{<crd type>}} {{<job name>}}
  ```
+ Se il lavoro non è stato creato in SageMaker AI, utilizza i log del pod dell'operatore per trovare la causa del problema nel modo seguente: 

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

#### Eliminazione di un CRD dell'operatore
<a name="deleting-an-operator-crd"></a>

Se l'eliminazione di un processo non funziona, controlla se l'operatore è in esecuzione. Se l'operatore non è in esecuzione, è necessario eliminare il finalizzatore completando la seguente procedura: 

1. In un nuovo terminale, apri il processo in un editor usando `kubectl edit` come segue: 

   ```
   kubectl edit {{<crd type>}} {{<job name>}}
   ```

1. Modifica il processo per eliminare il finalizzatore rimuovendo le due righe seguenti dal file. Salva il file e il processo verrà eliminato. 

   ```
   finalizers:
     - sagemaker-operator-finalizer
   ```

### Immagini e SMLog in ciascuna Regione
<a name="images-and-smlogs-in-each-region"></a>

La tabella seguente elenca le immagini degli operatori e gli SMLog disponibili in ciascuna Regione. 


|  Region  |  Immagine del controller  |  SMlog Linux  | 
| --- | --- | --- | 
|  us-east-1  |  957583890962.dkr.ecr.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 
|  us-east-2  |  922499468684.dkr.ecr.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 
|  us-west-2  |  640106867763.dkr.ecr.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-west-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-west-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 
|  eu-west-1  |  613661167059.dkr.ecr.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1  |  [https://s3.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-eu-west-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz](https://s3.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-eu-west-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz)  | 