Operadores antiguos de Kubernetes SageMaker - Amazon SageMaker

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 for 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 ACKcontrolador de servicios de Amazon. SageMaker El controlador ACK de servicios es una nueva generación de SageMaker operadores para Kubernetes basada en Controllers for Kubernetes ().AWS ACK

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

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

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

    • aws-iam-authenticator

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

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

Adjunta la AmazonSageMakerFullAccess política al rol

Para dar acceso al rol SageMaker, adjunte 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 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:

  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. Sustituya ARN aquí por el nombre del recurso de Amazon (ARN) para el rol OIDC basado 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. Sustituya el rol ARN aquí por el nombre del recurso de Amazon (ARN) para el rol OIDC basado 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, debe ajustar el espacio de nombres definido en el archivo de IAM rol trust.json 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í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
  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 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.

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

Adjunta la AmazonSageMakerFullAccess política a tu función

Para dar acceso al rol SageMaker, 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 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:

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

  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