SageMaker Vecchi operatori per Kubernetes - Amazon SageMaker

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

SageMaker Vecchi operatori per Kubernetes

Questa sezione si basa sulla versione originale di SageMaker 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 service ACKcontroller per Amazon. SageMaker Il ACK service controller è una nuova generazione di SageMaker Operators for Kubernetes basata su Controller for Kubernetes ().AWS 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 per la versione originale di SageMaker Operators for Kubernetes

Installa Operators for Kubernetes SageMaker

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

IAMconfigurazione basata sui ruoli e implementazione da parte dell'operatore

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

avvertimento

Promemoria: i passaggi seguenti non installano la versione più recente di SageMaker Operators for Kubernetes. Per installare i nuovi SageMaker operatori ACK basati su Kubernetes, consulta. Operatori più recenti SageMaker 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 kubectl versione che si trova all'interno di una versione secondaria del piano di controllo del EKS cluster Amazon. 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 CLIVersione 1.16.232 o successiva

    • (opzionale) Helm Versione 3.0 o successiva

    • aws-iam-authenticator

  • Disponi IAM delle autorizzazioni per creare ruoli e allegare politiche 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 implementare l'operatore utilizzando un IAM ruolo, associate un OpenID OIDC Connect () Identity Provider (IdP) al vostro ruolo per l'autenticazione con il servizio. IAM

Crea un provider per il tuo OIDC cluster

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

  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. Usa il comando seguente per associare il OIDC provider al tuo cluster. Per ulteriori informazioni, vedere Abilitazione IAM dei ruoli 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 OIDC identità, puoi creare un ruolo e concedere a Kubernetes l' ServiceAccount autorizzazione ad assumere il ruolo.

Ottieni l'ID OIDC

Per configurare ServiceAccount, ottenete l'OIDCemittente URL usando il seguente comando:

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

Il comando restituisce un messaggio URL simile al seguente:

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

In questo URL caso, il valore D48675832CA65BD10A532F597OIDCID è l'OIDCID. L'OIDCID del tuo cluster è diverso. È necessario questo valore OIDC ID 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

OIDCURLViene restituito come segue:

OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Creare 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 EKS cluster Amazon 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 l'accesso al ruolo SageMaker, 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 deve disporre delle autorizzazioni. AmazonSageMakerFullAccess Confermalo mentre installi l'operatore.

Distribuzione dell'operatore

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

Distribuisci l'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 ARN qui con Amazon Resource Name (ARN) per il ruolo OIDC basato 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 il ruolo ARN qui con Amazon Resource Name (ARN) per il ruolo OIDC basato 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 del IAM ruolo trust.json in modo che corrisponda.

  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 visualizzare le definizioni SageMaker personalizzate delle risorse (CRDs) per ogni operatore distribuito nel cluster eseguendo il comando seguente:

    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 solo SageMaker se le risorse sono state create all'interno di quel namespace. Ciò consente di effettuare un controllo più preciso su quale controller gestisce quali risorse. Ciò è utile per la distribuzione 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.

Crea un OIDC provider per il tuo EKS cluster Amazon

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

  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. Usa il comando seguente per associare il OIDC provider al tuo cluster. Per ulteriori informazioni, vedere Abilitazione IAM dei ruoli 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 OIDC identità, crea un ruolo e concedi a Kubernetes l' ServiceAccount autorizzazione ad assumere il ruolo.

Ottieni il tuo ID OIDC

Per configurare ServiceAccount, procuratevi innanzitutto l'emittente OpenID Connect URL usando il seguente comando:

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

Il comando restituisce un risultato URL simile al seguente:

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

In questo casoURL, il valore D48675832 CA65BD1 OIDCID 0A532F597 è l'ID. OIDC L'ID del cluster è diverso. OIDC È necessario questo valore OIDC ID 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

OIDCURLViene restituito come segue:

OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Crea il tuo IAM ruolo
  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 EKS cluster Amazon 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

Per consentire l'accesso al ruolo SageMaker, 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 deve disporre delle autorizzazioni. AmazonSageMakerFullAccess Confermalo mentre installi l'operatore.

Distribuisci l'operatore nel tuo spazio dei nomi

Quando si implementa l'operatore, è possibile utilizzare un YAML file 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 è il set 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 CRDs nel cluster, applicate il CRD programma di installazione YAML utilizzando 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. Scaricate il programma di installazione dell'operatore YAML utilizzando il seguente comando:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/operator.yaml
  2. Aggiornate il programma YAML di installazione 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 ARN qui con Amazon Resource Name (ARN) per il ruolo OIDC basato 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 è il set 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 il ruolo ARN qui con Amazon Resource Name (ARN) per il ruolo OIDC basato 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 visualizzare le SageMaker 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 per i SageMaker registri kubectl

Come parte di SageMaker Operators for Kubernetes, puoi utilizzare il plugin per. smlogs kubectl Ciò consente lo streaming SageMaker CloudWatch dei log con. 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 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 SageMaker risorse 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 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 SageMaker job, vedi Eliminazione degli operatori per eliminare l'operatore dal cluster.

Eliminazione degli operatori

Eliminazione degli operatori basati sul cluster

Operatori installati utilizzando YAML

Per disinstallare l'operatore dal cluster, assicurati che tutte le SageMaker risorse 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 SageMaker risorse dal cluster. Per ulteriori informazioni, consulta Pulizia delle risorse.

Dopo aver eliminato tutti i SageMaker lavori, 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'operatoreCRDs, 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 SageMaker le risorse 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 SageMaker risorse dal cluster. Per ulteriori informazioni, consulta Pulizia delle risorse.

Dopo aver eliminato tutti i SageMaker lavori, 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'operatoreCRDs, 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, è possibile utilizzare 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, 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 operatore CRD

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