

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.

# Cómo poner en cuarentena, reemplazar o reiniciar manualmente un nodo
<a name="sagemaker-hyperpod-eks-resiliency-manual"></a>

Aprenda a poner en cuarentena, reemplazar y reiniciar manualmente un nodo defectuoso en SageMaker HyperPod clústeres organizados con Amazon EKS.

**Cómo poner en cuarentena un nodo y forzar la eliminación de un pod de entrenamiento**

```
kubectl cordon <node-name>
```

Tras la cuarentena, fuerce la expulsión del pod. Esto es útil cuando un pod se queda atascado en la terminación durante más de 30 minutos o `kubectl describe pod` muestra El nodo no está listo en Eventos.

```
kubectl delete pods <pod-name> --grace-period=0 --force
```

SageMaker HyperPod ofrece dos métodos para la recuperación manual de nodos. El enfoque preferido es utilizar el SageMaker HyperPod sistema Reboot and Replace APIs, que proporciona un proceso de recuperación más rápido y transparente que funciona en todos los orquestadores. Como alternativa, puedes usar los comandos kubectl para etiquetar los nodos para las operaciones de reinicio y reemplazo. Ambos métodos activan los mismos SageMaker HyperPod procesos de recuperación.

**Para reiniciar un nodo mediante la API de reinicio**

Para reiniciar un nodo, puede utilizar la BatchRebootClusterNodes API.

 A continuación, se muestra un ejemplo de cómo ejecutar la operación de reinicio en dos instancias de un clúster mediante AWS Command Line Interface:

```
 aws sagemaker batch-reboot-cluster-nodes \
        --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \
        --node-ids i-0123456789abcdef0 i-0fedcba9876543210
```

**Para reemplazar un nodo mediante la API Replace**

Para reemplazar un nodo, puedes usar la BatchReplaceClusterNodes API de la siguiente manera

 A continuación, se muestra un ejemplo de cómo ejecutar la operación de reemplazo en dos instancias de un clúster mediante AWS Command Line Interface:

```
 aws sagemaker batch-replace-cluster-nodes \
        --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \
        --node-ids i-0123456789abcdef0 i-0fedcba9876543210
```

**Clústeres gestionados por Karpenter**  
En el caso de SageMaker HyperPod los clústeres que utilizan Karpenter para el aprovisionamiento de nodos, la `BatchReplaceClusterNodes` API no garantiza la creación de un nodo de reemplazo. El nodo especificado se *cancelará*, pero el reemplazo dependerá del modelo de aprovisionamiento de Karpenter. pod-demand-based Karpenter solo crea nodos nuevos cuando hay pods en un `Pending` estado que no se puede programar en los nodos existentes.  
Si la carga de trabajo del nodo eliminado se puede reprogramar en los nodos restantes del clúster (por ejemplo, si esos nodos tienen suficiente capacidad), Karpenter no prevé ningún reemplazo. Para garantizar que se cree un nodo de reemplazo, compruebe que la configuración de la carga de trabajo (como las reglas de antiafinidad de los pods o las solicitudes de recursos) requiera un nodo nuevo para los pods desplazados.  
Somos conscientes de esta limitación y estamos trabajando activamente en una solución que obligue a sustituir los nodos cuando se solicite a través de la API.

**Para reemplazar un nodo mediante kubectl**

Etiquete el nodo por el que desea reemplazarlo`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement`, lo que activa el. SageMaker HyperPod [Recuperación automática de nodos](sagemaker-hyperpod-eks-resiliency-node-recovery.md) Tenga en cuenta que también debe activar la recuperación automática de nodos durante la creación o actualización del clúster.

```
kubectl label nodes <node-name> \
   sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement
```

**Para reiniciar un nodo mediante kubectl**

Etiquete el nodo con el que se va a reiniciar`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot`, lo que activa el. SageMaker HyperPod [Recuperación automática de nodos](sagemaker-hyperpod-eks-resiliency-node-recovery.md) Tenga en cuenta que también debe activar la recuperación automática de nodos durante la creación o actualización del clúster.

```
kubectl label nodes <node-name> \
   sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot
```

Una vez `UnschedulablePendingReboot` colocadas las etiquetas`UnschedulablePendingReplacement`, debería poder ver que el nodo finaliza o se reinicia en unos minutos. 