Vecchi operatori di intelligenza artificiale per Kubernetes SageMaker - Amazon SageMaker AI

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

Questa sezione è basata sulla versione originale di SageMaker AI Operators for Kubernetes.

Importante

Stiamo interrompendo lo sviluppo e il supporto tecnico della versione originale di Operators for Kubernetes. SageMaker

Se attualmente utilizzi una versione v1.2.2 o precedente di SageMaker Operators for Kubernetes, ti consigliamo di migrare le tue risorse al controller di servizio ACK per Amazon. SageMaker Il controller di servizio ACK è una nuova generazione di SageMaker Operators for Kubernetes basata su AWS Controllers for Kubernetes (ACK).

Per informazioni sulle fasi di migrazione, consulta Migrazione di risorse verso gli operatori più recenti.

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

Installa SageMaker AI Operators for Kubernetes

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

Configurazione basata su ruoli IAM e distribuzione dell'operatore

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 SageMaker AI basati su ACK per Kubernetes, consulta. Operatori SageMaker AI più recenti per Kubernetes

Prerequisiti

Questa guida presuppone che siano stati soddisfatti i prerequisiti seguenti:

  • Installa i seguenti strumenti sul computer client utilizzato per accedere al cluster Kubernetes:

    • kubectl 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.

    • eksctl Versione 0.7.0 o successiva

    • AWS CLI versione 1.16.232 o successiva

    • (opzionale) Helm Versione 3.0 o successiva

    • aws-iam-authenticator

  • 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. Il provisioning di un cluster richiede 20-30 minuti.

Distribuzione in ambito cluster

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

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>"
  2. 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.

    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'autorizzazione ad ServiceAccount assumerlo.

Ottieni l'ID OIDC

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::<AWS account number>:oidc-provider/oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:aud": "sts.amazonaws.com", "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:sub": "system:serviceaccount:sagemaker-k8s-operator-system:sagemaker-k8s-operator-default" } } } ] }
  2. 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

Per consentire al ruolo di accedere all' SageMaker intelligenza artificiale, allega la AmazonSageMakerFullAccesspolicy. 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

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

Distribuzione dell'operatore utilizzando YAML

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
  2. Modifica il file installer.yaml per sostituire eks.amazonaws.com/role-arn. Sostituisci l'ARN qui con il nome della risorsa Amazon (ARN) per il ruolo basato su OIDC che hai creato.

  3. Usa il comando seguente per distribuire il cluster:

    kubectl apply -f installer.yaml
Distribuisci l'operatore utilizzando i grafici Helm

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
  2. 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 l'ARN del ruolo qui con il nome della risorsa Amazon (ARN) per il ruolo basato su OIDC che hai creato.

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

  4. 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
  1. Dovresti essere in grado di vedere le SageMaker AI Custom Resource Definitions (CRDs) 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
  2. 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

Distribuzione nell'ambito dello spazio dei nomi

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

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>"
  2. 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.

    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

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 D48675832 CA65 BD1 0A532F597OIDCID è 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
  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>.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::<AWS account number>:oidc-provider/oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:aud": "sts.amazonaws.com", "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:sub": "system:serviceaccount:<Namespace>:sagemaker-k8s-operator-default" } } } ] }
  2. 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.

AmazonSageMakerFullAccess Allega la politica al tuo ruolo

Per consentire al ruolo di accedere all' SageMaker intelligenza artificiale, allega la AmazonSageMakerFullAccesspolicy. 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

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

Distribuisci l'operatore nel tuo spazio dei nomi utilizzando YAML

La distribuzione di un operatore nell'ambito di uno spazio dei nomi prevede due fasi. Il primo è l'insieme di CRDs quelli 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 lo avete già installato nel cluster, applicate il programma di installazione CRD YAML usando il seguente comando: CRDs

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
  2. 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
  3. Modifica il file operator.yaml per inserire le risorse nel tuo eks.amazonaws.com/role-arn. Sostituisci l'ARN qui con il nome della risorsa Amazon (ARN) per il ruolo basato su OIDC che hai creato.

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

La distribuzione di un operatore nell'ambito di uno spazio dei nomi prevede due fasi necessarie. Il primo è l'insieme di CRDs quelli 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
  2. 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 l'ARN del ruolo qui con il nome della risorsa Amazon (ARN) per il ruolo basato su OIDC che hai creato.

  3. Installare il grafico Helm utilizzando il seguente comando:

    helm install crds crd_chart/
  4. 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/
  5. 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
  1. Dovresti essere in grado di vedere le SageMaker AI Custom Resource Definitions (CRDs) 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
  2. 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 plug-in SageMaker AI logs kubectl

Come parte di SageMaker AI Operators for Kubernetes, puoi utilizzare il plugin per. smlogs kubectl Ciò consente lo SageMaker streaming CloudWatch dei log AI. kubectl kubectldeve essere installato sul tuo PATH. 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.

Pulizia delle risorse

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 per eliminare l'operatore dal cluster.

Eliminazione degli operatori

Eliminazione degli operatori basati sul cluster

Operatori installati con YAML

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 Pulizia delle risorse.

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

Per eliminare l'operatore CRDs, elimina prima tutti i lavori 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

Operatori installati con YAML

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 Pulizia delle risorse.

Dopo aver eliminato tutti i lavori SageMaker AI, utilizza kubectl per eliminare prima l'operatore dallo spazio dei nomi e poi il CRDs 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

Per eliminare l'operatore CRDs, elimina prima tutti i lavori 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

Esecuzione del debug di un processo non riuscito

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 usare il seguente comando per visualizzare il STATUS e ilSageMaker 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

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>
  2. 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 SMlogs in ogni regione

La tabella seguente elenca le immagini dell'operatore disponibili SMLogs in ciascuna regione.

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