

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

AWS TNB 支援 Amazon EKS 自我管理節點，以自動化 Amazon EKS Kubernetes 叢集節點 (Amazon EC2 執行個體） 的佈建和生命週期管理。若要建立 Amazon EKS 節點群組，請執行下列動作：
+ 透過提供 AMI 的 ID，為您的叢集工作者節點選擇 Amazon Machine Image (AMI)。
+ 為 SSH 存取提供 Amazon EC2 金鑰對。
+ 確保您的節點群組與 Amazon EKS 叢集相關聯。
+ 提供執行個體類型和所需的大小、大小下限和大小上限。
+ 提供工作者節點的子網路。
+ 或者，將安全群組、節點標籤和置放群組連接到節點群組。

## 語法
<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
```

## 功能
<a name="node-eks-self-managed-node-capabilities"></a><a name="node_eks_self_managed_node_compute"></a>`compute`

定義 Amazon EKS 自我管理節點運算參數的屬性，例如 Amazon EC2 執行個體類型和 Amazon EC2 執行個體 AMIs。

 `ami_id`    
用來啟動執行個體的 AMI ID。 AWS TNB 支援利用 IMDSv2 的執行個體。如需詳細資訊，請參閱[IMDS 版本](imds-version.md)。  
您可以更新 的 AMI ID`EKSSelfManagedNode`。AMI 的 Amazon EKS 版本必須與 Amazon EKS 叢集版本相同或低於 2 個版本。例如，如果 Amazon EKS 叢集版本為 1.31，則 Amazon EKS AMI 版本必須為 1.31、1.30 或 1.29。
必要：是  
類型：字串

 `instance_type`    
執行個體大小。  
必要：是  
類型：字串

 `key_pair`    
啟用 SSH 存取的 Amazon EC2 金鑰對。  
必要：是  
類型：字串

 `root_volume_encryption`    
啟用 Amazon EBS 根磁碟區的 Amazon EBS 加密。如果未提供此屬性， AWS TNB 預設會加密 Amazon EBS 根磁碟區。  
必要：否  
預設：true  
類型：布林值

 `root_volume_encryption_key_arn`    
key AWS KMS . AWS TNB 的 ARN 支援一般金鑰 ARN、多區域金鑰 ARN 和別名 ARN。  
必要：否  
類型：字串  
+ 如果 `root_volume_encryption`為 false，請勿包含 `root_volume_encryption_key_arn`。
+ AWS TNB 支援 Amazon EBS 後端 AMI 的根磁碟區加密。
+ 如果 AMI 的根磁碟區已加密，您必須包含`root_volume_encryption_key_arn`適用於 AWS TNB 的 ，才能重新加密根磁碟區。
+  如果 AMI 的根磁碟區未加密， AWS TNB 會使用 `root_volume_encryption_key_arn`來加密根磁碟區。

  如果您不包含 `root_volume_encryption_key_arn`， AWS TNB 會使用 AWS Managed Services 來加密根磁碟區。
+ AWS TNB 不會解密加密的 AMI。

 `root_volume_size`    
Amazon Elastic Block Store 根磁碟區的大小，以 GiBs為單位。  
必要：否  
預設：20  
類型：整數  
可能的值：1 到 16，384<a name="node_eks_self_managed_node_scaling"></a>`scaling`

定義 Amazon EKS 自我管理節點擴展參數的屬性，例如所需的 Amazon EC2 執行個體數量，以及節點群組中 Amazon EC2 執行個體的數量下限和上限。

 `desired_size`    
此 NodeGroup 中的執行個體數量。  
必要：是  
類型：整數

 `min_size`    
此 NodeGroup 中的執行個體數量下限。  
必要：是  
類型：整數

 `max_size`    
此 NodeGroup 中的執行個體數量上限。  
必要：是  
類型：整數

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

 `node_role`    
連接至 Amazon EC2 執行個體之 IAM 角色的 ARN。  
必要：是  
類型：字串

 `tags`    
要連接到資源的標籤。標籤將傳播到 資源建立的執行個體。  
必要：否  
類型：清單

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

 `cluster`    
[AWS.Compute.EKS](node-eks.md) 節點。  
必要：是  
類型：字串

 `subnets`    
[AWS.Networking.Subnet](node-subnet.md) 節點。  
必要：是  
類型：清單

 `network_interfaces`    
[AWS.Networking.ENI](node-eni.md) 節點。確保網路介面和子網路設定為相同的可用區域，否則執行個體化將會失敗。  
當您設定 時`network_interfaces`，如果您在 [AWS.Compute.EKS](https://docs.aws.amazon.com/tnb/latest/ug/node-eks.html) 節點中包含 `multus` 屬性， AWS TNB 會從 `multus_role` 屬性取得與 ENIs 相關的許可。否則， AWS TNB 會從 [node\$1role](#node_eks_self_managed_node_role) 屬性取得與 ENIs相關的許可。  
必要：否  
類型：清單

 `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-Z、a-z、)、數字 (0-9) 和下列字元： `[-, _, ., *, ?]`
+ 名稱和值必須以英數字元`?`、 或 `*` 字元開頭和結尾。
例如 `myLabelName1=*NodeLabelValue1`  
必要：否  
類型：清單

## 範例
<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"
```