本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
定義 Amazon ECS 用於任務的容器執行個體
任務置放限制是 Amazon ECS用來判斷任務是否允許在執行個體上執行的容器執行個體規則。至少有一個容器執行個體必須符合限制條件。如果沒有符合條件限制的執行個體,則任務將會保持 PENDING
狀態。當您建立新服務或更新現有服務時,您可以為服務的任務指定任務放置限制條件。
您可以使用 placementConstraint
參數在服務定義、任務定義或任務中指定任務置放限制。
"placementConstraints": [ { "expression": "The expression that defines the task placement constraints", "type": "The placement constraint type to use" } ]
下表說明如何使用 參數。
Constraint type (限制條件類型) | 可以在下列時間指定 |
---|---|
distinctInstance 將每個作用中任務放在不同的容器執行個體上。 Amazon ECS會查看任務置放所需的任務狀態。例如,如果現有任務的所需狀態為 重要 我們建議尋求其任務強大隔離的客戶使用 Fargate。Fargate 在硬體虛擬化環境中執行每個任務。這可確保這些容器化工作負載不會與其他任務共用網路介面、Fargate 短暫儲存體CPU、 或 記憶體。如需詳細資訊,請參閱 的安全概觀 AWS Fargate |
|
memberOf 在滿足運算式的容器執行個體上放置任務。 |
|
使用memberOf
限制類型時,您可以使用叢集查詢語言建立表達式,該語言定義 Amazon ECS可以放置任務的容器執行個體。此表達式可讓您依屬性分組容器執行個體。表達式會進入 的 expression
參數placementConstraint
。
Amazon ECS容器執行個體屬性
您可以將自訂中繼資料新增至容器執行個體,稱為屬性。每個屬性都有名稱和選用字串值。您可以使用 Amazon 提供的內建屬性ECS或定義自訂屬性。
以下章節包含範例內建屬性、選擇性屬性和自訂屬性。
內建屬性
Amazon ECS會自動將下列屬性套用至您的容器執行個體。
ecs.ami-id
-
AMI 用來啟動執行個體的 ID。此屬性的範例值為
ami-1234abcd
。 ecs.availability-zone
-
執行個體的可用區域。此屬性的範例值為
us-east-1a
。 ecs.instance-type
-
執行個體的執行個體類型。此屬性的範例值為
g2.2xlarge
。 ecs.os-type
-
執行個體的作業系統。此屬性的可能值為
linux
和windows
。 ecs.os-family
-
執行個體的作業系統版本。
若為 Linux 執行個體,有效值為
LINUX
。對於 Windows 執行個體, 會以WINDOWS_SERVER_<
格式ECS設定值。有效值為OS_Release
>_<FULL or CORE
>WINDOWS_SERVER_2022_FULL
、WINDOWS_SERVER_2022_CORE
、WINDOWS_SERVER_20H2_CORE
、WINDOWS_SERVER_2019_FULL
、WINDOWS_SERVER_2019_CORE
與WINDOWS_SERVER_2016_FULL
。這對 Windows 容器很重要, Windows containers on AWS Fargate 因為每個 Windows 容器的作業系統版本都必須與主機的作業系統版本相符。如果容器映像的 Windows 版本與主機不同,則容器不會啟動。如需詳細資訊,請參閱 Microsoft 文件網站上的 Windows 容器版本相容性
。 如果您的叢集執行多個 Windows 版本,您可以使用置放限制條件:,確保任務放置在在相同版本上執行的EC2執行個體上
memberOf(attribute:ecs.os-family == WINDOWS_SERVER_<OS_Release>_<FULL or CORE>)
。如需詳細資訊,請參閱擷取 Amazon ECS最佳化的 Windows AMI中繼資料。 ecs.cpu-architecture
-
執行個體的CPU架構。此屬性的範例值為
x86_64
和ARM64
。 ecs.vpc-id
-
VPC 執行個體已啟動。此屬性的範例值為
vpc-1234abcd
。 ecs.subnet-id
-
執行個體使用的子網路。此屬性的範例值為
subnet-1234abcd
。
選擇性屬性
Amazon ECS可能會將下列屬性新增至您的容器執行個體。
ecs.awsvpc-trunk-id
-
如果此屬性存在,執行個體則具有一個幹線網路界面。如需詳細資訊,請參閱增加 Amazon ECS Linux 容器執行個體網路介面。
ecs.outpost-arn
-
如果存在此屬性,則會包含 Outpost 的 Amazon Resource Name (ARN)。如需詳細資訊,請參閱上的 Amazon Elastic Container Service AWS Outposts。
ecs.capability.external
-
若存在此屬性,執行個體將被識別為外部執行個體。如需詳細資訊,請參閱外部啟動類型的 Amazon ECS叢集。
自訂屬性
您可以將自訂屬性套用至容器執行個體。例如,您可以定義名稱為 "stack" 且值為 "prod" 的屬性。
在指定自訂屬性時,必須考慮下列事項。
-
name
必須包含 1 至 128 個字元,而名稱可能包含字母 (大小寫)、數字、連字號、底線、正斜線、反斜線或句號。 -
value
必須包含 1 至 128 個字元,而且可能包含字母 (大小寫)、數字、連字號、底線、句號、@ 符號、正斜線、反斜線、冒號或空格。值不得包含任何前置或結尾空格。