

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.

# AWS.Compute.EKSSelfManagedNode
<a name="node-eks-self-managed"></a>

AWS TNB es compatible con los nodos autogestionados de Amazon EKS para automatizar el aprovisionamiento y la administración del ciclo de vida de los nodos (instancias de Amazon EC2) para los clústeres de Kubernetes de Amazon EKS. Para crear un grupo de nodos de Amazon EKS, haga lo siguiente:
+ Elija Amazon Machine Images (AMI) para los nodos de trabajadores del clúster proporcionando el ID de la AMI.
+ Proporcione un par de claves Amazon EC2 para el acceso SSH.
+ Asegúrese de que su grupo de nodos esté asociado a un clúster de Amazon EKS.
+ Proporcione el tipo de instancia y los tamaños deseado, mínimo y máximo.
+ Proporcione las subredes de los nodos de trabajo.
+ Si lo desea, adjunte grupos de seguridad, etiquetas de nodos y un grupo de ubicación a su grupo de nodos.

## Sintaxis
<a name="node-eks-self-managed-node-syntax"></a>

```
tosca.nodes.AWS.Compute.EKSSelfManagedNode:
  capabilities:
    compute:
      properties:
        ami\_id: String
        instance\_type: String
        key\_pair: String
        root\_volume\_encryption: Boolean
        root\_volume\_encryption\_key\_arn: String    
        root\_volume\_size: Integer
    scaling:
      properties:
        desired\_size: Integer
        min\_size: Integer
        max\_size: Integer  
  properties:
    node\_role: String    
    tags: List          
  requirements:
    cluster: String
    subnets: List
    network\_interfaces: List
    security\_groups: List
    placement\_group: String
    user\_data: String
    labels: List
```

## Capacidades
<a name="node-eks-self-managed-node-capabilities"></a><a name="node_eks_self_managed_node_compute"></a>`cálculo`

Propiedades que definen los parámetros de cálculo de los nodos autogestionados de Amazon EKS, como los tipos de instancias de Amazon EC2 y las AMI de instancias de Amazon EC2.

 `ami_id`    
El ID de AMI utilizado para lanzar la instancia. AWS TNB admite instancias que utilizan IMDSv2. Para obtener más información, consulte [Versión IMDS](imds-version.md).  
Puede actualizar el ID de AMI de`EKSSelfManagedNode`. La versión de Amazon EKS de la AMI debe ser igual o tener hasta 2 versiones anteriores a la versión de clúster de Amazon EKS. Por ejemplo, si la versión del clúster de Amazon EKS es 1.31, la versión de la AMI de Amazon EKS debe ser 1.31, 1.30 o 1.29.
Obligatorio: sí  
Tipo: cadena

 `instance_type`    
El tamaño de la instancia.  
Obligatorio: sí  
Tipo: cadena

 `key_pair`    
El par de claves Amazon EC2 para habilitar el acceso SSH.  
Obligatorio: sí  
Tipo: cadena

 `root_volume_encryption`    
Habilita el cifrado de Amazon EBS para el volumen raíz de Amazon EBS. Si no se proporciona esta propiedad, AWS TNB cifra los volúmenes raíz de Amazon EBS de forma predeterminada.  
Obligatorio: no  
Predeterminado: true  
Tipo: Booleano

 `root_volume_encryption_key_arn`    
El ARN de la AWS KMS clave. AWS TNB admite el ARN de clave normal, el ARN de clave multirregional y el ARN de alias.  
Obligatorio: no  
Tipo: cadena  
+ Si `root_volume_encryption` es falso, no lo incluya. `root_volume_encryption_key_arn`
+ AWS TNB admite el cifrado del volumen raíz de las EBS-backed AMI de Amazon.
+ Si el volumen raíz de la AMI ya está cifrado, debe incluirlo `root_volume_encryption_key_arn` para que AWS TNB vuelva a cifrar el volumen raíz.
+  Si el volumen raíz de la AMI no está cifrado, AWS TNB lo utiliza `root_volume_encryption_key_arn` para cifrar el volumen raíz.

  Si no lo incluye`root_volume_encryption_key_arn`, AWS TNB lo utiliza AWS Managed Services para cifrar el volumen raíz.
+ AWS TNB no descifra una AMI cifrada.

 `root_volume_size`    
El tamaño del volumen raíz de Amazon Elastic Block Store en GiBs.  
Obligatorio: no  
Predeterminado: 20  
Tipo: entero  
Valores posibles: de 1 a 16.384<a name="node_eks_self_managed_node_scaling"></a>`escalado`

Propiedades que definen los parámetros de escalado de los nodos autogestionados de Amazon EKS, como el número deseado de instancias de Amazon EC2 y el número mínimo y máximo de instancias de Amazon EC2 en el grupo de nodos.

 `desired_size`    
El número de instancias que contiene. NodeGroup  
Obligatorio: sí  
Tipo: entero

 `min_size`    
El número mínimo de instancias que contiene NodeGroup.  
Obligatorio: sí  
Tipo: entero

 `max_size`    
El número máximo de instancias que contiene NodeGroup.  
Obligatorio: sí  
Tipo: entero

## Propiedades
<a name="node-eks-self-managed-node-properties"></a>

 `node_role`    
El ARN del rol de IAM asociado a la instancia de Amazon EC2.  
Obligatorio: sí  
Tipo: cadena

 `tags`    
Las etiquetas que deben asociarse al recurso. Las etiquetas se propagarán a las instancias creadas por el recurso.  
Obligatorio: no  
Tipo: lista

## Requisitos
<a name="node-eks-self-managed-node-requirements"></a>

 `cluster`    
Un [AWS. Compute.EKS](node-eks.md)nodo.  
Obligatorio: sí  
Tipo: cadena

 `subnets`    
Un [AWS. Networking.Subnet](node-subnet.md)nodo.  
Obligatorio: sí  
Tipo: lista

 `network_interfaces`    
Un [AWS. Networking.ENI](node-eni.md)nodo. Asegúrese de que las interfaces de red y las subredes estén configuradas en la misma zona de disponibilidad o se producirá un error en la instanciación.  
Cuando se establece`network_interfaces`, AWS TNB obtiene el permiso relacionado con los ENI de la `multus_role` propiedad si se ha incluido la `multus` propiedad en el nodo. [AWS.Compute.EKS](https://docs.aws.amazon.com/tnb/latest/ug/node-eks.html) De lo contrario, AWS TNB obtiene el permiso relacionado con las ENI de la propiedad [node\_role](#node_eks_self_managed_node_role).  
Obligatorio: no  
Tipo: lista

 `security_groups`    
[Y AWS. Networking.SecurityGroup](node-networking-security-group.md)nodo.  
Obligatorio: no  
Tipo: lista

 `placement_group`    
Un [tosca.nodes.AWS. Compute.PlacementGroup](node-compute-placement-group.md)nodo.  
Obligatorio: no  
Tipo: cadena

 `user_data`    
Un [tosca.nodes.AWS. Compute.UserData](node-compute-user-data.md)referencia de nodo. Un script de datos de usuario se pasa a las instancias de Amazon EC2 lanzadas por el grupo de nodos autoadministrado. Agregue los permisos necesarios para ejecutar datos de usuario personalizados al node\_role pasado al grupo de nodos.  
Obligatorio: no  
Tipo: cadena

 `labels`    
Una lista de etiquetas de nodos. Una etiqueta de nodo debe tener un nombre y un valor. Cree una etiqueta con los siguientes criterios:  
+ El nombre y el valor deben estar separados por`=`.
+ El nombre y el valor pueden tener hasta 63 caracteres cada uno.
+ La etiqueta puede incluir letras (A-Z, a-z,), números (0-9) y los siguientes caracteres: `[-, _, ., *, ?]`
+ El nombre y el valor deben empezar y terminar con un alfanumérico o un carácter`?`. `*`
Por ejemplo, `myLabelName1=*NodeLabelValue1`  
Obligatorio: no  
Tipo: lista

## Ejemplo
<a name="node-eks-self-managed-node-example"></a>

```
SampleEKSSelfManagedNode:
  type: tosca.nodes.AWS.Compute.EKSSelfManagedNode
  capabilities:
    compute:
      properties:
        ami_id: "ami-123123EXAMPLE"
        instance_type: "c5.large"
        key_pair: "SampleKeyPair"
        root_volume_encryption: true
        root_volume_encryption_key_arn: "arn:aws:kms:{{us-west-2:111122223333}}:key/{{1234abcd-12ab-34cd-56ef-1234567890ab}}"
        root_volume_size: {{1500}}
    scaling:
      properties:
        desired_size: 1
        min_size: 1
        max_size: 1
  properties:
    node_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/{{SampleNodeRole}}" 
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing"          
  requirements:
    cluster: SampleEKSCluster
    subnets:
      - SampleSubnet
    network_interfaces:
      - SampleNetworkInterface01
      - SampleNetworkInterface02
    security_groups:
      - SampleSecurityGroup01
      - SampleSecurityGroup02
    placement_group: SamplePlacementGroup
    user_data: CustomUserData
    labels:
      - "sampleLabelName001=sampleLabelValue001"
      - "sampleLabelName002=sampleLabelValue002"
```