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
Importante
Se attualmente utilizzi una versione v1.2.2
o precedente di SageMaker Operators for Kubernetes
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
Indice
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
Indice
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 unakubectl
versione che si trova all'interno di una versione secondaria del piano di controllo del EKS cluster Amazon. Ad esempio, un clientkubectl
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
-
-
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.
-
Imposta le variabili di ambiente locali
CLUSTER_NAME
eAWS_REGION
come segue:# Set the Region and cluster export CLUSTER_NAME="
<your cluster name>
" export AWS_REGION="<your region>
" -
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.
-
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" } } } ] } -
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. IAMaws iam create-role --region ${AWS_REGION} --role-name
<role name>
--assume-role-policy-document file://trust.json --output=textL'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 AmazonSageMakerFullAccess
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:
-
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
-
Modifica il file
installer.yaml
per sostituireeks.amazonaws.com/role-arn
. Sostituisci ARN qui con Amazon Resource Name (ARN) per il ruolo OIDC basato che hai creato. -
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.
-
Clona la directory del programma di installazione Helm utilizzando il seguente comando:
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
-
Accedi alla cartella
amazon-sagemaker-operator-for-k8s/hack/charts/installer
. Modifica il filerolebased/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. -
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. -
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
-
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
-
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 nomisagemaker-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.
-
Imposta le variabili di ambiente locali
CLUSTER_NAME
eAWS_REGION
come segue:# Set the Region and cluster export CLUSTER_NAME="
<your cluster name>
" export AWS_REGION="<your region>
" -
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
-
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" } } } ] } -
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. IAMaws iam create-role --region ${AWS_REGION} --role-name
<role name>
--assume-role-policy-document file://trust.json --output=textL'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 AmazonSageMakerFullAccess
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:
-
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
-
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 -
Modifica il file
operator.yaml
per inserire le risorse nel tuoeks.amazonaws.com/role-arn
. Sostituisci ARN qui con Amazon Resource Name (ARN) per il ruolo OIDC basato che hai creato. -
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
.
-
Clona la directory del programma di installazione Helm utilizzando il seguente comando:
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
-
Accedi alla cartella
amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced
. Modifica il filerolebased/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. -
Installare il grafico Helm utilizzando il seguente comando:
helm install crds crd_chart/
-
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/ -
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
-
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
-
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 nomimy-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
kubectl
deve essere installato sul tuo. PATHsagemaker-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 campoadditional
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:
-
In un nuovo terminale, apri il processo in un editor usando
kubectl edit
come segue:kubectl edit
<crd type>
<job name>
-
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 |