Antiguos operadores de SageMaker IA para Kubernetes - Amazon SageMaker AI

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

importante

Vamos a detener el desarrollo y el soporte técnico de la versión original de SageMaker Operators for Kubernetes.

Si actualmente utilizas la versión v1.2.2 o anterior de SageMaker Operators for Kubernetes, te recomendamos migrar tus recursos al controlador de servicios ACK para Amazon. SageMaker El controlador de servicios ACK es una nueva generación de SageMaker operadores para Kubernetes basada en Controllers for Kubernetes (ACK).AWS

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

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

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 de kubectl 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 de kubectl 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).

    • aws-iam-authenticator

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

  1. 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>"
  2. 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
  1. 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" } } } ] }
  2. 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=text

    El 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 AmazonSageMakerFullAccesspolítica. Si desea limitar los permisos al operador, puede crear su propia política personalizada y asociarla.

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:

  1. 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
  2. Edite el archivo installer.yaml para reemplazar eks.amazonaws.com/role-arn. Reemplace el ARN por el nombre de recurso de Amazon (ARN) para el rol basado en OIDC que ha creado.

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

  1. Clone el directorio del instalador de Helm mediante el siguiente comando:

    git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
  2. Vaya a la carpeta amazon-sagemaker-operator-for-k8s/hack/charts/installer. Edite el archivo rolebased/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.

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

  4. 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
  1. 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
  2. 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 nombres sagemaker-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.

  1. 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>"
  2. 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
  1. 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 utiliza my-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" } } } ] }
  2. 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=text

    El 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 AmazonSageMakerFullAccesspolítica. Si desea limitar los permisos al operador, puede crear su propia política personalizada y asociarla.

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:

  1. 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
  2. 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
  3. Edite el archivo operator.yaml para colocar los recursos en su eks.amazonaws.com/role-arn. Reemplace el ARN por el nombre de recurso de Amazon (ARN) para el rol basado en OIDC que ha creado.

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

  1. Clone el directorio del instalador de Helm mediante el siguiente comando:

    git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
  2. Vaya a la carpeta amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced. Edite el archivo rolebased/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.

  3. Instale el gráfico de Helm mediante el siguiente comando:

    helm install crds crd_chart/
  4. 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/
  5. 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
  1. 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
  2. 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 nombres my-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 kubectldebe estar instalado en su PATH. Los siguientes comandos colocan el binario en el directorio sagemaker-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 campo additional 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:

  1. En una nueva terminal, abra el trabajo en un editor con kubectl edit siguiente manera:

    kubectl edit <crd type> <job name>
  2. 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