

 **Ayude a mejorar esta página** 

Para contribuir a esta guía del usuario, elija el enlace **Edit this page on GitHub** que se encuentra en el panel derecho de cada página.

# Ejecución de complementos esenciales en instancias dedicadas
<a name="critical-workload"></a>

En este tema, aprenderá a implementar una carga de trabajo con una tolerancia `CriticalAddonsOnly` para que el modo automático de EKS la programe en el grupo de nodos de `system`.

El grupo de nodos del `system` integrado del modo automático de EKS está diseñado para ejecutar complementos esenciales en instancias dedicadas. Esta división asegura que los componentes esenciales dispongan de recursos dedicados y se mantengan aislados de las cargas de trabajo generales, mejorando así la estabilidad y el rendimiento global del clúster.

Esta guía muestra cómo implementar complementos en el grupo de nodos del `system` mediante la tolerancia `CriticalAddonsOnly` y los selectores de nodos adecuados. Si sigue estos pasos, podrá asegurarse de que las aplicaciones críticas se programen en los nodos dedicados del `system`, aprovechando las ventajas de aislamiento y asignación de recursos que ofrece la estructura especializada de grupos de nodos del modo automático de EKS.

El modo automático de EKS tiene dos grupos de nodos integrados: `general-purpose` y `system`. Para obtener más información, consulte [Cómo habilitar o desactivar los NodePools integrados](set-builtin-node-pools.md).

El propósito del grupo de nodos del `system` es segregar los complementos críticos en diferentes nodos. Los nodos aprovisionados por el grupo de nodos del `system` tienen una taint de Kubernetes `CriticalAddonsOnly`. Kubernetes solo programará los pods en estos nodos si tienen la tolerancia correspondiente. Para obtener más información, consulte [Taints y toleraciones](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) en la documentación de Kubernetes.

## Requisitos previos
<a name="_prerequisites"></a>
+ Clúster de modo automático de EKS con el grupo de nodos de `system` integrado habilitado. Para obtener más información, consulte [Cómo habilitar o desactivar los NodePools integrados](set-builtin-node-pools.md) 
+  `kubectl` instalado y configurado Para obtener más información, consulte [Configuración para usar Amazon EKS](setting-up.md).

## Procedimiento
<a name="_procedure"></a>

Revise el ejemplo de yaml que aparece a continuación. Tenga en cuenta las siguientes condiciones:
+  `nodeSelector`: esto asocia la carga de trabajo con el grupo de nodos integrado del `system`. Este grupo de nodos debe estar habilitado con la API AWS. Para obtener más información, consulte [Cómo habilitar o desactivar los NodePools integrados](set-builtin-node-pools.md).
+  `tolerations`: esta tolerancia supera la taint de `CriticalAddonsOnly` en los nodos del grupo de nodos del `system`.

```
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sample-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: sample-app
  template:
    metadata:
      labels:
        app: sample-app
    spec:
      nodeSelector:
        karpenter.sh/nodepool: system
      tolerations:
      - key: "CriticalAddonsOnly"
        operator: "Exists"
      containers:
      - name: app
        image: nginx:latest
        resources:
          requests:
            cpu: "500m"
            memory: "512Mi"
```

Para actualizar una carga de trabajo de modo que se ejecute en el grupo de nodos del `system`, deberá:

1. Actualizar la carga de trabajo existente para agregar las siguientes configuraciones descritas anteriormente:
   +  `nodeSelector` 
   +  `tolerations` 

1. Implementar la carga de trabajo actualizada en el clúster con `kubectl apply` 

Tras actualizar la carga de trabajo, se ejecutará en nodos dedicados.