Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Operadores antiguos de Kubernetes SageMaker
Esta sección se basa en la versión original de SageMaker Operators
importante
Vamos a detener el desarrollo y el soporte técnico de la versión original de SageMaker Operators
Si actualmente utilizas la versión v1.2.2
o anterior de SageMaker Operators for Kubernetes
Para obtener información sobre los pasos de migración, consulte Migrar recursos a los operadores más recientes.
Para obtener respuestas a las preguntas frecuentes sobre la finalización del soporte de la versión original de Operators for Kubernetes, consulte SageMaker Anunciamos el fin del soporte de la versión original de SageMaker Operators for Kubernetes
Contenido
Instale Operators para Kubernetes SageMaker
Siga los siguientes pasos para instalar y usar SageMaker Operators for Kubernetes para entrenar, ajustar e implementar modelos de aprendizaje automático con Amazon. SageMaker
Contenido
IAMconfiguración basada en roles y despliegue de operadores
En las siguientes secciones se describen los pasos para configurar e implementar la versión original del operador.
aviso
Recordatorio: los siguientes pasos no permiten instalar la versión más reciente de SageMaker Operators for Kubernetes. Para instalar los nuevos SageMaker operadores ACK basados en Kubernetes, consulte. Operadores más recientes SageMaker para Kubernetes
Requisitos previos
En esta guía se supone que se han completado los siguientes requisitos previos:
-
Ha instalado las siguientes herramientas en el equipo cliente utilizado para acceder al clúster de Kubernetes:
-
Versión 1.13 o posterior de
kubectl
. Usa unakubectl
versión que se encuentre dentro de una versión secundaria del plano de control del EKS clúster de Amazon. Por ejemplo, un cliente dekubectl
1.13 debe funcionar con los clústeres 1.13 y 1.14 de Kubernetes. OpenID Connect (OIDC) no es compatible con versiones anteriores a la 1.13. -
Versión 0.7.0 o posterior de
eksctl
. -
AWS CLIVersión 1.16.232 o posterior
-
Versión 3.0 o posterior de Helm
(opcional).
-
-
Tienen IAM permisos para crear funciones y adjuntar políticas a las funciones.
-
Ha creado un clúster de Kubernetes en el que ejecutar los operadores. Debe ser la versión 1.13 o 1.14 de Kubernetes. Para la creación automática de clústeres mediante
eksctl
, consulte Introducción a eksctl. La provisión del clúster puede tardar de 20 a 30 minutos.
Implementación basada en clústeres
Antes de poder implementar su operador mediante un IAM rol, asocie un proveedor de identidad (IdPOIDC) de OpenID Connect () a su rol para autenticarse en el servicio. IAM
Cree un OIDC proveedor para su clúster
Las siguientes instrucciones muestran cómo crear y asociar un OIDC proveedor a tu EKS clúster de Amazon.
-
Establezca las variables local,
CLUSTER_NAME
, y de entorno,AWS_REGION
, de la siguiente manera:# Set the Region and cluster export CLUSTER_NAME="
<your cluster name>
" export AWS_REGION="<your region>
" -
Usa el siguiente comando para asociar el OIDC proveedor a tu clúster. Para obtener más información, consulte Habilitar IAM funciones para las cuentas de servicio en su clúster.
eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \ --region ${AWS_REGION} --approve
El resultado debería tener el siguiente aspecto:
[_] eksctl version 0.10.1 [_] using region us-east-1 [_] IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"
Ahora que el clúster tiene un proveedor de OIDC identidades, puedes crear un rol y conceder ServiceAccount permiso a Kubernetes para que lo asuma.
Obtén el ID OIDC
Para configurarlo ServiceAccount, obtén el OIDC emisor URL mediante el siguiente comando:
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \ --query cluster.identity.oidc.issuer --output text
El comando devuelve un resultado URL similar al siguiente:
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
En este URL caso, el valor D48675832CA65BD10A532F597OIDCID
es el OIDC ID. El OIDC ID del clúster es diferente. Necesita este valor OIDC de ID para crear un rol.
Si la salida es None
, significa que la versión de su cliente es antigua. Para solucionar este problema, ejecute el siguiente comando:
aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC
OIDCURLSe devuelve de la siguiente manera:
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Crea un IAM rol
-
Cree un archivo con un nombre
trust.json
e inserte en él el siguiente bloque de códigos de relación de confianza. Asegúrese de reemplazar todos los marcadores de posición<OIDC ID>
,<AWS account number>
y<EKS Cluster region>
por los valores correspondientes a su clúster.{ "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" } } } ] } -
Ejecute el siguiente comando para crear un rol con la relación de confianza definida en
trust.json
. Esta función permite al EKS clúster de Amazon obtener credenciales y actualizarlasIAM.aws iam create-role --region ${AWS_REGION} --role-name
<role name>
--assume-role-policy-document file://trust.json --output=textEl resultado debería tener el siguiente aspecto:
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/
Tome nota de
ROLE ARN
; pasará este valor a su operador.
Adjunta la AmazonSageMakerFullAccess política al rol
Para dar acceso al rol SageMaker, adjunte la AmazonSageMakerFullAccess
Para asociar AmazonSageMakerFullAccess
, ejecute el siguiente comando:
aws iam attach-role-policy --role-name
<role name>
--policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
Los Kubernetes ServiceAccount sagemaker-k8s-operator-default
deben tener permisos. AmazonSageMakerFullAccess
Confirme esto cuando instale el operador.
Implementación del operador
Al implementar su operador, puede usar un YAML archivo o gráficos de Helm.
Despliegue al operador usando YAML
Es la forma más sencilla de implementar los operadores. El proceso es el siguiente:
-
Descargue el script del instalador mediante el siguiente comando:
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/installer.yaml
-
Edite el archivo
installer.yaml
para reemplazareks.amazonaws.com/role-arn
. Sustituya ARN aquí por el nombre del recurso de Amazon (ARN) para el rol OIDC basado que ha creado. -
Utilice el siguiente comando para implementar el clúster:
kubectl apply -f installer.yaml
Implementación del operador mediante gráficos de Helm
Utilice el gráfico de Helm suministrado para instalar el operador.
-
Clone el directorio del instalador de Helm mediante el siguiente comando:
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
-
Vaya a la carpeta
amazon-sagemaker-operator-for-k8s/hack/charts/installer
. Edite el archivorolebased/values.yaml
, que incluye parámetros de alto nivel para el gráfico. Sustituya el rol ARN aquí por el nombre del recurso de Amazon (ARN) para el rol OIDC basado que ha creado. -
Instale el gráfico de Helm mediante el siguiente comando:
kubectl create namespace sagemaker-k8s-operator-system helm install --namespace sagemaker-k8s-operator-system sagemaker-operator rolebased/
Si decide instalar el operador en un espacio de nombres distinto del especificado, debe ajustar el espacio de nombres definido en el archivo de IAM rol
trust.json
para que coincida. -
Transcurrido un momento, el gráfico se instala con un nombre generado aleatoriamente. Ejecute el siguiente comando para comprobar que se ha instalado correctamente:
helm ls
El resultado debería tener el siguiente aspecto:
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
Verificación de la implementación del operador
-
Debería poder ver las definiciones de recursos SageMaker personalizadas (CRDs) de cada operador implementado en el clúster ejecutando el siguiente comando:
kubectl get crd | grep sagemaker
El resultado debería tener el siguiente aspecto:
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
-
Asegúrese de que el pod del operador se esté ejecutando correctamente. Utilice el siguiente comando para enumerar todos los pods.
kubectl -n sagemaker-k8s-operator-system get pods
Debería ver un pod denominado
sagemaker-k8s-operator-controller-manager-*****
en el espacio de nombressagemaker-k8s-operator-system
, como sigue:NAME READY STATUS RESTARTS AGE sagemaker-k8s-operator-controller-manager-12345678-r8abc 2/2 Running 0 23s
Implementación en el ámbito del espacio de nombres
Tiene la opción de instalar el operador dentro del ámbito de un espacio de nombres de Kubernetes individual. En este modo, el controlador solo monitorea y reconcilia los recursos SageMaker si los recursos se crean dentro de ese espacio de nombres. Esto permite un control más preciso sobre qué controlador administra qué recursos. Esto resulta útil para realizar la implementación en varias AWS cuentas o para controlar qué usuarios tienen acceso a determinadas tareas.
Esta guía describe cómo instalar un operador en un espacio de nombres específico y predefinido. Para implementar un controlador en un segundo espacio de nombres, siga la guía de principio a fin y cambie el espacio de nombres en cada paso.
Crea un OIDC proveedor para tu EKS clúster de Amazon
Las siguientes instrucciones muestran cómo crear y asociar un OIDC proveedor a tu EKS clúster de Amazon.
-
Establezca las variables local,
CLUSTER_NAME
, y de entorno,AWS_REGION
, de la siguiente manera:# Set the Region and cluster export CLUSTER_NAME="
<your cluster name>
" export AWS_REGION="<your region>
" -
Usa el siguiente comando para asociar el OIDC proveedor a tu clúster. Para obtener más información, consulte Habilitar IAM funciones para las cuentas de servicio en su clúster.
eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \ --region ${AWS_REGION} --approve
El resultado debería tener el siguiente aspecto:
[_] eksctl version 0.10.1 [_] using region us-east-1 [_] IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"
Ahora que el clúster tiene un proveedor de OIDC identidad, crea un rol y otorga ServiceAccount permiso a Kubernetes para que lo asuma.
Obtenga su ID OIDC
Para configurarlo ServiceAccount, primero obtenga el emisor de OpenID Connect URL mediante el siguiente comando:
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \ --query cluster.identity.oidc.issuer --output text
El comando devuelve un resultado URL similar al siguiente:
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
En este casoURL, el valor D48675832 CA65BD1 OIDCID 0A532F597 es el ID. OIDC El ID del clúster es diferente. OIDC Necesita este valor OIDC de ID para crear un rol.
Si la salida es None
, significa que la versión de su cliente es antigua. Para solucionar este problema, ejecute el siguiente comando:
aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC
OIDCURLSe devuelve de la siguiente manera:
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Crea tu IAM rol
-
Cree un archivo con un nombre
trust.json
e inserte en él el siguiente bloque de códigos de relación de confianza. Asegúrese de reemplazar todos los marcadores de posición<OIDC ID>
,<AWS account number>
,<EKS Cluster region>
y<Namespace>
por los valores correspondientes a su clúster. A los efectos de esta guía, se utilizamy-namespace
para el valor<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" } } } ] } -
Ejecute el siguiente comando para crear un rol con la relación de confianza definida en
trust.json
. Esta función permite al EKS clúster de Amazon obtener credenciales y actualizarlasIAM.aws iam create-role --region ${AWS_REGION} --role-name
<role name>
--assume-role-policy-document file://trust.json --output=textEl resultado debería tener el siguiente aspecto:
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/
Tome nota del ROLE ARN
. Pasará este valor a su operador.
Adjunta la AmazonSageMakerFullAccess política a tu función
Para dar acceso al rol SageMaker, adjunta la AmazonSageMakerFullAccess
Para asociar AmazonSageMakerFullAccess
, ejecute el siguiente comando:
aws iam attach-role-policy --role-name
<role name>
--policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
Los Kubernetes ServiceAccount sagemaker-k8s-operator-default
deben tener permisos. AmazonSageMakerFullAccess
Confirme esto cuando instale el operador.
Implementación del operador en su espacio de nombres
Al implementar su operador, puede usar un YAML archivo o gráficos de Helm.
Implemente el operador en su espacio de nombres mediante YAML
La implementación de un operador dentro del ámbito de un espacio de nombres consta de dos partes. El primero es el conjunto de los CRDs que están instalados a nivel de clúster. Estas definiciones de recursos solo se deben instalar una vez por clúster de Kubernetes. La segunda parte son los permisos del operador y la implementación en sí.
Si aún no lo ha instalado CRDs en el clúster, aplique el CRD instalador YAML mediante el siguiente comando:
kubectl apply -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml
Para instalar el operador en el clúster:
-
Descargue el instalador del operador YAML mediante el siguiente comando:
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/operator.yaml
-
Actualice el instalador YAML para colocar los recursos en el espacio de nombres especificado mediante el siguiente comando:
sed -i -e 's/PLACEHOLDER-NAMESPACE/
<YOUR NAMESPACE>
/g' operator.yaml -
Edite el archivo
operator.yaml
para colocar los recursos en sueks.amazonaws.com/role-arn
. Sustituya ARN aquí por el nombre del recurso de Amazon (ARN) para el rol OIDC basado que ha creado. -
Utilice el siguiente comando para implementar el clúster:
kubectl apply -f operator.yaml
Implementación del operador en su espacio de nombres mediante gráficos de Helm
La implementación de un operador dentro del ámbito de un espacio de nombres se compone de dos partes. El primero es el conjunto de los CRDs que están instalados a nivel de clúster. Estas definiciones de recursos solo se deben instalar una vez por clúster de Kubernetes. La segunda parte son los permisos del operador y la implementación en sí. Si usa gráficos de Helm, primero debe crear el espacio de nombres con kubectl
.
-
Clone el directorio del instalador de Helm mediante el siguiente comando:
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
-
Vaya a la carpeta
amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced
. Edite el archivorolebased/values.yaml
, que incluye parámetros de alto nivel para el gráfico. Sustituya el rol ARN aquí por el nombre del recurso de Amazon (ARN) para el rol OIDC basado que ha creado. -
Instale el gráfico de Helm mediante el siguiente comando:
helm install crds crd_chart/
-
Cree el espacio de nombres necesario e instale el operador mediante el siguiente comando:
kubectl create namespace
<namespace>
helm install --n<namespace>
op operator_chart/ -
Después de un momento, el gráfico se instala con el nombre
sagemaker-operator
. Ejecute el siguiente comando para comprobar que se ha instalado correctamente:helm ls
El resultado debería tener el siguiente aspecto:
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
Verificación de la implementación del operador en su espacio de nombres
-
Debería poder ver las definiciones de recursos SageMaker personalizadas (CRDs) de cada operador implementado en su clúster ejecutando el siguiente comando:
kubectl get crd | grep sagemaker
El resultado debería tener el siguiente aspecto:
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
-
Asegúrese de que el pod del operador se esté ejecutando correctamente. Utilice el siguiente comando para enumerar todos los pods.
kubectl -n my-namespace get pods
Debería ver un pod denominado
sagemaker-k8s-operator-controller-manager-*****
en el espacio de nombresmy-namespace
, como sigue:NAME READY STATUS RESTARTS AGE sagemaker-k8s-operator-controller-manager-12345678-r8abc 2/2 Running 0 23s
Instala el kubectl
complemento SageMaker de registros
Como parte de los SageMaker operadores de Kubernetes, puedes usar el smlogs
complemento para.kubectl
Esto permite transmitir SageMaker CloudWatch los registros. kubectl
kubectl
debe estar instalado en su. PATHsagemaker-k8s-bin
de su directorio principal y agregan ese directorio a su PATH
.
export os="linux" wget https://amazon-sagemaker-operator-for-k8s-us-east-1.s3.amazonaws.com/kubectl-smlogs-plugin/v1/${os}.amd64.tar.gz tar xvzf ${os}.amd64.tar.gz # Move binaries to a directory in your homedir. mkdir ~/sagemaker-k8s-bin cp ./kubectl-smlogs.${os}.amd64/kubectl-smlogs ~/sagemaker-k8s-bin/. # This line adds the binaries to your PATH in your .bashrc. echo 'export PATH=$PATH:~/sagemaker-k8s-bin' >> ~/.bashrc # Source your .bashrc to update environment variables: source ~/.bashrc
Use el siguiente comando para comprobar que el complemento kubectl
esté correctamente instalado:
kubectl smlogs
Si el complemento kubectl
está instalado correctamente, la salida debería tener el siguiente aspecto:
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.
Eliminar recursos
Para desinstalar el operador del clúster, primero debe asegurarse de eliminar todos los SageMaker recursos del clúster. Si no lo hace, la operación de eliminación por parte del operador se bloqueará. Ejecute el siguiente comando para detener todos los trabajos:
# 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
Debería ver una salida similar a esta:
$ 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
Después de eliminar todos los SageMaker trabajos, consulte Eliminación de operadores para eliminar el operador del clúster.
Eliminación de operadores
Eliminación de operadores basados en clústeres
Los operadores se instalaron mediante YAML
Para desinstalar el operador del clúster, asegúrese de que se hayan eliminado todos SageMaker los recursos del clúster. Si no lo hace, la operación de eliminación por parte del operador se bloqueará.
nota
Antes de eliminar el clúster, asegúrese de eliminar todos SageMaker los recursos del clúster. Para obtener más información, consulte Eliminar recursos.
Después de eliminar todos los SageMaker trabajos, utilice kubectl
esta opción para eliminar el operador del clúster:
# Delete the operator and its resources kubectl delete -f /installer.yaml
Debería ver una salida similar a esta:
$ kubectl delete -f raw-yaml/installer.yaml namespace "sagemaker-k8s-operator-system" deleted customresourcedefinition.apiextensions.k8s.io "batchtransformjobs.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "endpointconfigs.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "hostingdeployments.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "hyperparametertuningjobs.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "models.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "trainingjobs.sagemaker.aws.amazon.com" deleted role.rbac.authorization.k8s.io "sagemaker-k8s-operator-leader-election-role" deleted clusterrole.rbac.authorization.k8s.io "sagemaker-k8s-operator-manager-role" deleted clusterrole.rbac.authorization.k8s.io "sagemaker-k8s-operator-proxy-role" deleted rolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-leader-election-rolebinding" deleted clusterrolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-manager-rolebinding" deleted clusterrolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-proxy-rolebinding" deleted service "sagemaker-k8s-operator-controller-manager-metrics-service" deleted deployment.apps "sagemaker-k8s-operator-controller-manager" deleted secrets "sagemaker-k8s-operator-abcde" deleted
Operadores instalados mediante gráficos de Helm
Para eliminar el operadorCRDs, borre primero todos los trabajos en ejecución. A continuación, elimine el gráfico de Helm que se utilizó para implementar los operadores mediante los siguientes comandos:
# get the helm charts helm ls # delete the charts helm delete
<chart_name>
Eliminación de operadores basados en espacio de nombres
Operadores instalados con YAML
Para desinstalar el operador del clúster, asegúrese primero de que se hayan eliminado todos SageMaker los recursos del clúster. Si no lo hace, la operación de eliminación por parte del operador se bloqueará.
nota
Antes de eliminar el clúster, asegúrese de eliminar todos SageMaker los recursos del clúster. Para obtener más información, consulte Eliminar recursos.
Después de eliminar todos los SageMaker trabajos, primero kubectl
borra el operador del espacio de nombres y, después, el CRDs del clúster. Ejecute los siguientes comandos para eliminar el operador del clúster:
# Delete the operator using the same yaml file that was used to install the operator kubectl delete -f operator.yaml # Now delete the CRDs using the CRD installer yaml kubectl delete -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml # Now you can delete the namespace if you want kubectl delete namespace
<namespace>
Operadores instalados con gráficos de Helm
Para eliminar el operadorCRDs, borre primero todos los trabajos en ejecución. A continuación, elimine el gráfico de Helm que se utilizó para implementar los operadores mediante los siguientes comandos:
# Delete the operator helm delete
<chart_name>
# delete the crds helm delete crds # optionally delete the namespace kubectl delete namespace<namespace>
Resolución de problemas
Depuración de un trabajo con errores
Siga estos pasos para depurar un trabajo con errores.
-
Para comprobar el estado del trabajo, ejecute lo siguiente:
kubectl get
<CRD Type>
<job name>
-
Si el trabajo se creó en SageMaker, puede usar el siguiente comando para ver los
STATUS
y losSageMaker Job Name
:kubectl get
<crd type>
<job name>
-
Puede utilizar
smlogs
para encontrar la causa del problema mediante el siguiente comando:kubectl smlogs
<crd type>
<job name>
-
También puede utilizar el comando
describe
para obtener más detalles sobre el trabajo mediante el siguiente comando. La salida tiene un campoadditional
que contiene más información sobre el estado del trabajo.kubectl describe
<crd type>
<job name>
-
Si el trabajo no se creó en SageMaker, utilice los registros del módulo del operador para encontrar la causa del problema de la siguiente manera:
$ 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
Eliminar un operador CRD
Si la eliminación de un trabajo no funciona, compruebe si el operador está en ejecución. Si el operador no se está ejecutando, debe eliminar el finalizador conforme a los siguientes pasos:
-
En una nueva terminal, abra el trabajo en un editor con
kubectl edit
siguiente manera:kubectl edit
<crd type>
<job name>
-
Edite el trabajo para eliminar el finalizador eliminando las dos líneas siguientes del archivo. Guarde el archivo y se eliminará el trabajo.
finalizers: - sagemaker-operator-finalizer
Imágenes y SMlogs en cada región
La siguiente tabla muestra las imágenes de los operadores disponibles SMLogs en cada región.
Región | Imagen del controlador | Linux SMLogs |
---|---|---|
us-east-1 |
957583890962.dkr.ecr.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1
|
https://s3.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz |
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 |