

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

AWS TNB는 EKS 관리형 노드 그룹을 지원하여 Amazon EKS Kubernetes 클러스터용 노드(Amazon EC2 인스턴스)의 프로비저닝 및 수명 주기 관리를 자동화합니다. EKS 노드 그룹을 생성하려면 다음을 수행합니다.
+ AMI의 ID 또는 AMI 유형을 제공하여 클러스터 작업자 노드의 Amazon Machine Image(AMI)를 선택합니다.
+ SSH 액세스를 위한 Amazon EC2 키 페어와 노드 그룹의 조정 속성을 제공합니다.
+ 노드 그룹이 Amazon EKS 클러스터와 연결되어 있는지 확인합니다.
+ 작업자 노드의 서브넷을 제공합니다.
+ 선택적으로 보안 그룹, 노드 레이블 및 배치 그룹을 노드 그룹에 연결합니다.

## 구문
<a name="node-eks-managed-node-syntax"></a>

```
tosca.nodes.AWS.Compute.EKSManagedNode:
  capabilities:
    compute:
      properties:
        ami\$1type: String
        ami\$1id: String
        instance\$1types: List
        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
    kubernetes\$1version: String        
  requirements:
    cluster: String
    subnets: List
    network\$1interfaces: List
    security\$1groups: List
    placement\$1group: String
    user\$1data: String
    labels: List
```

## 기능
<a name="node-eks-managed-node-capabilities"></a><a name="node_eks_managed_node_compute"></a>`compute`

Amazon EKS 관리형 노드 그룹의 컴퓨팅 파라미터를 정의하는 속성(예: Amazon EC2 인스턴스 유형 및 Amazon EC2 인스턴스 AMI)입니다.

 `ami_type`    
Amazon EKS 지원 AMI 유형입니다.  
필수 항목 여부: 예  
유형: String  
가능한 값: `AL2_x86_64` \$1 `AL2_x86_64_GPU` \$1 `AL2_ARM_64` \$1 \$1 `AL2023_x86_64` \$1 `AL2023_ARM_64` \$1 `AL2023_x86_64_NVIDIA` \$1 `AL2023_x86_64_NEURON` \$1 `CUSTOM` \$1 `BOTTLEROCKET_ARM_64` \$1 `BOTTLEROCKET_x86_64` \$1 `BOTTLEROCKET_ARM_64_NVIDIA` \$1 `BOTTLEROCKET_x86_64_NVIDIA`

 `ami_id`    
AMI의 ID입니다.  
필수 여부: 아니요  
유형: 문자열  
템플릿에 `ami_type` 및 `ami_id`가 모두 지정된 경우 AWS TNB는 `ami_id` 값만 사용하여를 생성합니다`EKSManagedNode`.

 `instance_types`    
인스턴스의 크기입니다.  
필수 여부: 예  
유형: 목록

 `key_pair`    
SSH 액세스를 활성화하기 위한 EC2 키 쌍입니다.  
필수 항목 여부: 예  
유형: String

 `root_volume_encryption`    
Amazon EBS 루트 볼륨에 대해 Amazon EBS 암호화를 활성화합니다. 이 속성이 제공되지 않으면 AWS TNB는 기본적으로 Amazon EBS 루트 볼륨을 암호화합니다.  
필수 항목 여부: 아니요  
기본값: true  
유형: 부울

 `root_volume_encryption_key_arn`    
 AWS KMS key. AWS TNB의 ARN은 일반 키 ARN, 다중 리전 키 ARN 및 별칭 ARN을 지원합니다.  
필수 여부: 아니요  
유형: 문자열  
+ `root_volume_encryption`가 false인 경우를 포함하지 마십시오`root_volume_encryption_key_arn`.
+ AWS TNB는 Amazon EBS 지원 AMI의 루트 볼륨 암호화를 지원합니다.
+ AMI의 루트 볼륨이 이미 암호화된 경우 루트 볼륨을 다시 암호화하려면 AWS TNB`root_volume_encryption_key_arn`용를 포함해야 합니다.
+  AMI의 루트 볼륨이 암호화되지 않은 경우 AWS TNB는 `root_volume_encryption_key_arn`를 사용하여 루트 볼륨을 암호화합니다.

  를 포함하지 않으면 `root_volume_encryption_key_arn` AWS TNB는에서 제공하는 기본 키를 사용하여 루트 볼륨을 암호화 AWS Key Management Service 합니다.
+ AWS TNB는 암호화된 AMI를 복호화하지 않습니다.

 `root_volume_size`    
GiBs.  
필수 여부: 아니요  
기본값: 20  
유형: 정수  
가능한 값: 1\$116,384<a name="node_eks_managed_node_scaling"></a>`scaling`

Amazon EKS 관리형 노드 그룹의 조정 파라미터를 정의하는 속성(예: 원하는 Amazon EC2 인스턴스 수, 노드 그룹 내 최소 및 최대 Amazon EC2 인스턴스 수)입니다.

 `desired_size`    
이 노드 그룹의 인스턴스 수입니다.  
필수 여부: 예  
유형: 정수

 `min_size`    
이 노드 그룹의 최소 인스턴스 수입니다.  
필수 여부: 예  
유형: 정수

 `max_size`    
이 노드 그룹의 최대 인스턴스 수입니다.  
필수 여부: 예  
유형: 정수

## 속성
<a name="node_eks_managed_node-properties"></a>

 `node_role`    
Amazon EC2 인스턴스에 연결된 IAM 역할의 ARN입니다.  
필수 항목 여부: 예  
유형: String

 `tags`    
리소스에 연결할 태그입니다.  
필수 여부: 아니요  
유형: 목록

 `kubernetes_version`    
Managed Node 그룹의 Kubernetes 버전. AWS TNB는 Kubernetes 버전 1.25\$11.32를 지원합니다. 다음을 고려하세요.  
+ `kubernetes_version` 또는를 지정합니다`ami_id`. 둘 다 지정하지 마세요.
+ 는 AWS.Compute.EKSManagedNode 버전보다 작거나 같아야 `kubernetes_version` 합니다.
+  AWS.Compute.EKSManagedNode 버전과 버전 간에는 세 가지 버전이 다를 수 있습니다`kubernetes_version`.
+ `kubernetes_version` 또는 `ami_id`를 지정하지 않으면 AWS TNB는 `AWS.Compute.EKSManagedNode` 버전의 최신 AMI를 사용하여를 생성합니다. `EKSManagedNode` 
필수 여부: 아니요  
유형: 문자열  
가능한 값: 1.25 \$1 1.26 \$1 1.27 \$1 1.28 \$1 1.29 \$1 1.30 \$1 1.31 \$1 1.32

## 요구 사항
<a name="node-eks-managed-node-requirements"></a>

 `cluster`    
[AWS.Compute.EKS](node-eks.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

 `subnets`    
[AWS.Networking.Subnet](node-subnet.md) 노드입니다.  
필수 여부: 예  
유형: 목록

 `network_interfaces`    
[AWS.Networking.ENI](node-eni.md) 노드입니다. 네트워크 인터페이스와 서브넷이 동일한 가용 영역으로 설정되어 있는지 확인하세요. 그렇지 않으면 인스턴스화가 실패합니다.  
를 설정하면 속성을 [AWS.Compute.EKS](https://docs.aws.amazon.com/tnb/latest/ug/node-eks.html) 노드에 포함`multus_role`하면 `network_interfaces` AWS TNB는 `multus` 속성에서 ENIs와 관련된 권한을 얻습니다. 그렇지 않으면 AWS TNB는 [node\$1role](#node_eks_managed_node_node_role) 속성에서 ENI와 관련된 권한을 얻습니다.  
필수 여부: 아니요  
유형: 목록

 `security_groups`    
[AWS.Networking.SecurityGroup](node-networking-security-group.md) 노드입니다.  
필수 여부: 아니요  
유형: 목록

 `placement_group`    
[tosca.nodes.AWS.Compute.PlacementGroup](node-compute-placement-group.md) 노드입니다.  
필수 여부: 아니요  
유형: 문자열

 `user_data`    
[tosca.nodes.AWS.Compute.UserData](node-compute-user-data.md) 노드 참조입니다. 사용자 데이터 스크립트는 관리형 노드 그룹에서 시작된 Amazon EC2 인스턴스에 전달됩니다. 사용자 지정 사용자 데이터를 실행하는 데 필요한 권한을 노드 그룹에 전달된 node\$1role에 추가합니다.  
필수 여부: 아니요  
유형: 문자열

 `labels`    
노드 레이블 목록입니다. 노드 레이블에는 이름과 값이 있어야 합니다. 다음 기준을 사용하여 레이블을 생성합니다.  
+ 이름과 값은 로 구분해야 합니다`=`.
+ 이름과 값의 길이는 각각 최대 63자입니다.
+ 레이블에는 문자(A\$1Z, a\$1z), 숫자(0\$19) 및 다음 문자가 포함될 수 있습니다. `[-, _, ., *, ?]` 
+ 이름과 값은 영숫자, `?`또는 `*` 문자로 시작하고 끝나야 합니다.
예: `myLabelName1=*NodeLabelValue1`  
필수 여부: 아니요  
유형: 목록

## 예제
<a name="node-eks-managed-node-example"></a>

```
SampleEKSManagedNode:
  type: tosca.nodes.AWS.Compute.EKSManagedNode
  capabilities:
    compute:
      properties:
        ami_type: "AL2_x86_64"
        instance_types:
          - "t3.xlarge"
        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/SampleRole"
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing" 
    kubernetes_version:
      - "1.30" 
  requirements:
    cluster: SampleEKS
    subnets:
      - SampleSubnet
    network_interfaces:
      - SampleENI01
      - SampleENI02
    security_groups:
      - SampleSecurityGroup01
      - SampleSecurityGroup02
    placement_group: SamplePlacementGroup
    user_data: CustomUserData
    labels:
      - "sampleLabelName001=sampleLabelValue001"
      - "sampleLabelName002=sampleLabelValue002"
```