AWS.Compute.EKSManagedNode - AWS 電信網路建置器

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

AWS.Compute.EKSManagedNode

AWS TNB 支援 EKS 受管節點群組,可自動化 Amazon EKS Kubernetes 叢集節點 (Amazon EC2 執行個體) 的佈建和生命週期管理。若要建立 EKS 節點群組,請執行下列動作:

  • 提供 AMI 的 ID 或 AMI 類型,為您的叢集工作者節點選擇 Amazon Machine Image (AMI)。

  • 針對 SSH 存取提供 Amazon EC2 金鑰對,並提供節點群組的擴展屬性。

  • 確保您的節點群組與 Amazon EKS 叢集相關聯。

  • 提供工作者節點的子網路。

  • 或者,將安全群組、節點標籤和置放群組連接到節點群組。

語法

tosca.nodes.AWS.Compute.EKSManagedNode: capabilities: compute: properties: ami_type: String ami_id: String instance_types: List key_pair: String root_volume_encryption: Boolean root_volume_encryption_key_arn: String scaling: properties: desired_size: Integer min_size: Integer max_size: Integer properties: node_role: String tags: List kubernetes_version: String requirements: cluster: String subnets: List network_interfaces: List security_groups: List placement_group: String user_data: String labels: List

功能

compute

定義 Amazon EKS 受管節點群組運算參數的屬性,例如 Amazon EC2 執行個體類型和 Amazon EC2 執行個體 AMIs。

ami_type

Amazon EKS 支援的 AMI 類型。

必要:是

類型:字串

可能的值: AL2_x86_64 | AL2_x86_64_GPU | AL2_ARM_64 | CUSTOM | BOTTLEROCKET_ARM_64 | BOTTLEROCKET_x86_64 | BOTTLEROCKET_ARM_64_NVIDIA | BOTTLEROCKET_x86_64_NVIDIA

ami_id

AMI 的 ID。

必要:否

類型:字串

注意

如果範本中同時ami_id指定了 ami_type和 , AWS TNB 只會使用 ami_id值來建立 EKSManagedNode

instance_types

執行個體大小。

必要:是

類型:清單

key_pair

啟用 SSH 存取的 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 Key Management Service 來加密根磁碟區。

  • AWS TNB 不會解密加密的 AMI。

scaling

定義 Amazon EKS 受管節點群組擴展參數的屬性,例如所需的 Amazon EC2 執行個體數量,以及節點群組中 Amazon EC2 執行個體的最小和最大數量。

desired_size

此 NodeGroup 中的執行個體數量。

必要:是

類型:整數

min_size

此 NodeGroup 中的執行個體數量下限。

必要:是

類型:整數

max_size

此 NodeGroup 中的執行個體數量上限。

必要:是

類型:整數

屬性

node_role

連接至 Amazon EC2 執行個體之 IAM 角色的 ARN。

必要:是

類型:字串

tags

要連接到資源的標籤。

必要:否

類型:清單

kubernetes_version

Managed Node 群組的 Kubernetes 版本。 AWS TNB 支援 Kubernetes 版本 1.23 到 1.30。考慮下列各項:

  • 指定 kubernetes_versionami_id。不要同時指定兩者。

  • 必須kubernetes_version小於或等於 AWS.Compute.EKSManagedNode 版本。

  • AWS.Compute.EKSManagedNode 版本和 之間可能會有 3 個版本的差異kubernetes_version

  • 如果未ami_id指定 kubernetes_version或 , AWS TNB 將使用AWS.Compute.EKSManagedNode版本的最新 AMI 來建立 EKSManagedNode

必要:否

類型:字串

可能的值:1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30

要求

cluster

AWS.Compute.EKS 節點。

必要:是

類型:字串

subnets

AWS.Networking.Subnet 節點。

必要:是

類型:清單

network_interfaces

AWS.Networking.ENI 節點。確保網路介面和子網路設定為相同的可用區域,否則執行個體化將會失敗。

當您設定 時network_interfaces,如果您在 AWS.Compute.EKS 節點中包含 multus 屬性, AWS TNB 會從 multus_role 屬性取得與 ENIs 相關的許可。否則, AWS TNB 會從 node_role 屬性取得與 ENIs相關的許可。

必要:否

類型:清單

security_groups

AWS.Networking.SecurityGroup 節點。

必要:否

類型:清單

placement_group

tosca.nodes AWS.Compute.PlacementGroup 節點。

必要:否

類型:字串

user_data

tosca.nodes AWS.Compute.UserData 節點參考。使用者資料指令碼會傳遞至受管節點群組啟動的 Amazon EC2 執行個體。將執行自訂使用者資料所需的許可新增至傳遞至節點群組的 node_role。

必要:否

類型:字串

labels

節點標籤的清單。節點標籤必須具有名稱和值。使用以下條件建立標籤:

  • 名稱和值必須以 分隔=

  • 名稱和值的長度上限為 63 個字元。

  • 標籤可以包含字母 (A-Z、a-z、)、數字 (0-9) 和下列字元: [-, _, ., *, ?]

  • 名稱和值必須以英數字元、 ?* 字元開頭和結尾。

例如 myLabelName1=*NodeLabelValue1

必要:否

類型:清單

範例

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" 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"