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.
Antiguos operadores de SageMaker IA para Kubernetes
Esta sección se basa en la versión original de SageMaker AI 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 AI Operators para Kubernetes
Contenido
Instale operadores de SageMaker IA para Kubernetes
Siga los siguientes pasos para instalar y usar SageMaker AI Operators for Kubernetes para entrenar, ajustar e implementar modelos de aprendizaje automático con Amazon AI. SageMaker
Contenido
Configuración basada en roles de IAM e implementación 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 AI Operators for Kubernetes. Para instalar los nuevos operadores de SageMaker IA basados en ACK para Kubernetes, consulte. Los últimos operadores de SageMaker IA 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
. Use una versión dekubectl
con una diferencia de versión de menos de un número que el plano de control del clúster de Amazon EKS. Por ejemplo, un cliente dekubectl
1.13 debe funcionar con los clústeres 1.13 y 1.14 de Kubernetes. Las versiones anteriores a la 1.13 no son compatibles con OpenID Connect (OIDC). -
Versión 0.7.0 o posterior de
eksctl
. -
AWS CLI versión 1.16.232 o posterior
-
Versión 3.0 o posterior de Helm
(opcional).
-
-
Tiene permisos para crear un rol de IAM y asociar políticas a los roles.
-
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 rol de IAM, asocie un proveedor de identidades (IdP) de OpenID Connect (OIDC) a su rol para autenticarse en el servicio de IAM.
Creación de un proveedor de OIDC para su clúster
Las siguientes instrucciones muestran cómo crear y asociar un proveedor de OIDC a su clúster de Amazon EKS.
-
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>
" -
Utilice el siguiente comando para asociar el proveedor de OIDC con el clúster. Para obtener más información, consulte Enabling IAM Roles for Service Accounts on your Cluster.
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 identidades OIDC, puedes crear un rol y dar permiso a ServiceAccount Kubernetes para que lo asuma.
Obtención del ID de OIDC
Para configurarlo ServiceAccount, obtén la URL del emisor del OIDC mediante el siguiente comando:
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \ --query cluster.identity.oidc.issuer --output text
El comando devuelve una URL similar a la siguiente:
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
En esta URL, el valor D48675832CA65BD10A532F597OIDCID
es el ID de OIDC. El ID de OIDC del clúster es diferente. Necesita este valor de ID de OIDC 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
La URL de OIDC se devuelve de la siguiente manera:
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Creación de un rol de IAM
-
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
. Este rol permite que el clúster de Amazon EKS obtenga y actualice las credenciales de IAM.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.
Adjunte la AmazonSageMakerFullAccess política al rol
Para dar acceso al rol a la SageMaker IA, 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
Al implementar el operador, puede usar un archivo YAML o gráficos de Helm.
Implementación del operador mediante 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
. Reemplace el ARN por el nombre de recurso de Amazon (ARN) para el rol basado en OIDC 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. Reemplace el ARN del rol por el nombre de recurso de Amazon (ARN) para el rol basado en OIDC 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, tendrá que ajustar el espacio de nombres definido en el archivo
trust.json
de rol de IAM 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ías poder ver las definiciones de recursos personalizadas de SageMaker IA (CRDs) de cada operador implementado en tu 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 con la SageMaker IA 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 despliegues 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.
Creación de un proveedor de OIDC para su clúster de Amazon EKS
Las siguientes instrucciones muestran cómo crear y asociar un proveedor de OIDC a su clúster de Amazon EKS.
-
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>
" -
Utilice el siguiente comando para asociar el proveedor de OIDC con el clúster. Para obtener más información, consulte Enabling IAM Roles for Service Accounts on your Cluster.
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 identidad OIDC, cree un rol y dé ServiceAccount permiso a Kubernetes para que lo asuma.
Obtención del ID de OIDC
Para configurarlo ServiceAccount, primero obtenga la URL del emisor de OpenID Connect mediante el siguiente comando:
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \ --query cluster.identity.oidc.issuer --output text
El comando devuelve una URL similar a la siguiente:
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
En esta URL, el valor D48675832 0A532F597OIDCID CA65 BD1 es el ID del OIDC. El ID de OIDC del clúster es diferente. Necesita este valor de ID de OIDC 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
La URL de OIDC se devuelve de la siguiente manera:
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Creación de su rol de IAM
-
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
. Este rol permite que el clúster de Amazon EKS obtenga y actualice las credenciales de IAM.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.
AmazonSageMakerFullAccess Adjunta la política a tu función
Para dar acceso al rol a la SageMaker IA, 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 el operador, puede usar un archivo YAML o gráficos de Helm.
Implementación del 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 instalador de CRD 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 YAML del instalador del operador mediante el siguiente comando:
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/operator.yaml
-
Actualice el YAML del instalador 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
. Reemplace el ARN por el nombre de recurso de Amazon (ARN) para el rol basado en OIDC 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. Reemplace el ARN del rol por el nombre de recurso de Amazon (ARN) para el rol basado en OIDC 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 personalizadas de SageMaker IA (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 AI logs
Como parte de los operadores de SageMaker IA para Kubernetes, puedes usar el smlogs
complemento para.kubectl
Esto permite transmitir CloudWatch los registros de SageMaker IA. 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 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.
Eliminar recursos
Para desinstalar el operador del clúster, primero debe asegurarse de eliminar todos los recursos de SageMaker IA 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 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
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
Una vez que hayas eliminado todos los trabajos de SageMaker IA, asegúrate de Eliminación de operadores eliminar el operador de tu clúster.
Eliminación de operadores
Eliminación de operadores basados en clústeres
Operadores instalados mediante YAML
Para desinstalar el operador del clúster, asegúrese de que se hayan eliminado todos los recursos de SageMaker IA 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úrate de eliminar todos los recursos de SageMaker IA del clúster. Para obtener más información, consulta Eliminar recursos.
Después de eliminar todos los trabajos de SageMaker IA, kubectl
úsalo 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 operador CRDs, 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, primero asegúrese de que se hayan eliminado todos los recursos de SageMaker IA 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úrate de eliminar todos los recursos de SageMaker IA del clúster. Para obtener más información, consulta Eliminar recursos.
Después de eliminar todos los trabajos de SageMaker IA, kubectl
primero 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 operador CRDs, borra 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>
Solució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 IA, puede usar el siguiente comando para ver el
STATUS
y elSageMaker 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 la SageMaker IA, 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
Eliminación del CRD del operador
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 |