

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

AWS TNB prend en charge les nœuds autogérés Amazon EKS pour automatiser le provisionnement et la gestion du cycle de vie des nœuds ( EC2 instances Amazon) pour les clusters Amazon EKS Kubernetes. Pour créer un groupe de nœuds Amazon EKS, procédez comme suit :
+ Choisissez les Amazon Machine Images (AMI) pour les nœuds de travail de votre cluster en fournissant soit l'ID de l'AMI.
+ Fournissez une paire de EC2 clés Amazon pour l'accès SSH.
+ Assurez-vous que votre groupe de nœuds est associé à un cluster Amazon EKS.
+ Indiquez le type d'instance et les tailles souhaitées, minimales et maximales.
+ Fournissez les sous-réseaux pour les nœuds de travail.
+ Vous pouvez éventuellement associer des groupes de sécurité, des étiquettes de nœuds et un groupe de placement à votre groupe de nœuds.

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

```
tosca.nodes.AWS.Compute.EKSSelfManagedNode:
  capabilities:
    compute:
      properties:
        ami\$1id: String
        instance\$1type: String
        key\$1pair: String
        root\$1volume\$1encryption: Boolean
        root\$1volume\$1encryption\$1key\$1arn: String    
        root\$1volume\$1size: Integer
    scaling:
      properties:
        desired\$1size: Integer
        min\$1size: Integer
        max\$1size: Integer  
  properties:
    node\$1role: String    
    tags: List          
  requirements:
    cluster: String
    subnets: List
    network\$1interfaces: List
    security\$1groups: List
    placement\$1group: String
    user\$1data: String
    labels: List
```

## Fonctionnalités
<a name="node-eks-self-managed-node-capabilities"></a><a name="node_eks_self_managed_node_compute"></a>`compute`

Propriétés qui définissent les paramètres de calcul pour les nœuds autogérés Amazon EKS, tels que les types d' EC2 instances Amazon et les EC2 instances AMIs Amazon.

 `ami_id`    
ID d'AMI utilisé pour lancer l'instance. AWS TNB prend en charge les instances qui tirent parti de IMDSv2. Pour de plus amples informations, veuillez consulter [Version IMDS](imds-version.md).  
Vous pouvez mettre à jour l'ID AMI pour`EKSSelfManagedNode`. La version Amazon EKS de l'AMI doit être identique ou inférieure à 2 versions au maximum à la version du cluster Amazon EKS. Par exemple, si la version du cluster Amazon EKS est 1.31, la version de l'AMI Amazon EKS doit être 1.31, 1.30 ou 1.29.
Obligatoire : oui  
Type : String

 `instance_type`    
Taille de l'instance.  
Obligatoire : oui  
Type : String

 `key_pair`    
La paire de EC2 clés Amazon pour activer l'accès SSH.  
Obligatoire : oui  
Type : String

 `root_volume_encryption`    
Active le chiffrement Amazon EBS pour le volume racine Amazon EBS. Si cette propriété n'est pas fournie, AWS TNB chiffre les volumes racine Amazon EBS par défaut.  
Obligatoire : non  
Valeur par défaut : true  
Type : booléen

 `root_volume_encryption_key_arn`    
L'ARN de la AWS KMS clé. AWS TNB prend en charge l'ARN clé standard, l'ARN clé multirégional et l'ARN alias.  
Obligatoire : non  
Type : String  
+ Si `root_volume_encryption` c'est faux, ne l'incluez pas`root_volume_encryption_key_arn`.
+ AWS TNB prend en charge le chiffrement du volume racine des AMI soutenues par Amazon EBS.
+ Si le volume racine de l'AMI est déjà chiffré, vous devez inclure le AWS TNB `root_volume_encryption_key_arn` pour le rechiffrer.
+  Si le volume racine de l'AMI n'est pas chiffré, AWS TNB utilise le `root_volume_encryption_key_arn` pour chiffrer le volume racine.

  Si vous ne l'incluez pas`root_volume_encryption_key_arn`, AWS TNB l'utilise AWS Managed Services pour chiffrer le volume racine.
+ AWS TNB ne déchiffre pas une AMI chiffrée.

 `root_volume_size`    
Taille du volume racine d'Amazon Elastic Block Store en GiBs.  
Obligatoire : non  
Valeur par défaut : 20  
Type : entier  
Valeurs possibles : 1 à 16 384<a name="node_eks_self_managed_node_scaling"></a>`scaling`

Propriétés qui définissent les paramètres de dimensionnement pour les nœuds autogérés Amazon EKS, tels que le nombre souhaité d' EC2 instances Amazon et le nombre minimum et maximum d' EC2 instances Amazon dans le groupe de nœuds.

 `desired_size`    
Le nombre d'instances qu'il contient NodeGroup.  
Obligatoire : oui  
Type : entier

 `min_size`    
Le nombre minimum d'instances dans ce cas NodeGroup.  
Obligatoire : oui  
Type : entier

 `max_size`    
Le nombre maximum d'instances dans ce cas NodeGroup.  
Obligatoire : oui  
Type : entier

## Propriétés
<a name="node-eks-self-managed-node-properties"></a>

 `node_role`    
L'ARN du rôle IAM attaché à l' EC2 instance Amazon.  
Obligatoire : oui  
Type : String

 `tags`    
Les balises à associer à la ressource. Les balises seront propagées aux instances créées par la ressource.  
Obligatoire : non  
Type : liste

## Prérequis
<a name="node-eks-self-managed-node-requirements"></a>

 `cluster`    
Un nœud [AWS.Compute.EKS](node-eks.md).  
Obligatoire : oui  
Type : String

 `subnets`    
Un nœud [AWS.Networking.Subnet.](node-subnet.md)  
Obligatoire : oui  
Type : liste

 `network_interfaces`    
Un nœud [AWS.Networking.ENI.](node-eni.md) Assurez-vous que les interfaces réseau et les sous-réseaux sont définis sur la même zone de disponibilité, sinon l'instanciation échouera.  
Lorsque vous définissez`network_interfaces`, AWS TNB obtient l'autorisation associée à la `multus_role` propriété si vous ENIs l'avez incluse dans le nœud `multus` [AWS.compute.EKS](https://docs.aws.amazon.com/tnb/latest/ug/node-eks.html). Sinon, AWS TNB obtient l'autorisation associée à ENIs partir de la propriété [node\$1role](#node_eks_self_managed_node_role).  
Obligatoire : non  
Type : liste

 `security_groups`    
Un [AWS.Networking. SecurityGroup](node-networking-security-group.md)nœud.  
Obligatoire : non  
Type : liste

 `placement_group`    
Un [tosca.nodes.AWS.Calculer. PlacementGroup](node-compute-placement-group.md)nœud.  
Obligatoire : non  
Type : String

 `user_data`    
Un [tosca.nodes.AWS.Calculer. UserData](node-compute-user-data.md)référence de nœud. Un script de données utilisateur est transmis aux EC2 instances Amazon lancées par le groupe de nœuds autogéré. Ajoutez les autorisations requises pour exécuter des données utilisateur personnalisées au node\$1role transmis au groupe de nœuds.  
Obligatoire : non  
Type : String

 `labels`    
Liste des étiquettes de nœuds. L'étiquette d'un nœud doit avoir un nom et une valeur. Créez une étiquette en utilisant les critères suivants :  
+ Le nom et la valeur doivent être séparés par`=`.
+ Le nom et la valeur peuvent chacun comporter jusqu'à 63 caractères.
+ L'étiquette peut inclure des lettres (A-Z, a-z), des chiffres (0-9) et les caractères suivants : `[-, _, ., *, ?]`
+ Le nom et la valeur doivent commencer et se terminer par un `*` caractère alphanumérique ou. `?`
Par exemple, `myLabelName1=*NodeLabelValue1`  
Obligatoire : non  
Type : liste

## exemple
<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"
```