本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
增加 Amazon ECS Linux 容器執行個體網路介面
注意
此功能不適用於 Fargate。
每個使用awsvpc
網路模式的 Amazon ECS任務都會收到自己的彈性網路介面 (ENI),其連接至託管它的容器執行個體。可連接至 Amazon EC2執行個體的網路介面數量有預設限制,而主要網路介面會計為一個。例如,依預設,c5.large
執行個體最多可ENIs連接三個執行個體。執行個體的主要網路介面會計為一個,因此您可以將另外兩個介面連接至ENIs執行個體。因為使用awsvpc
網路模式的每個任務都需要 ENI,您通常只能在此執行個體類型上執行兩個此類任務。
Amazon ECS支援啟動增加的容器執行個體 ENI 使用支援的 Amazon EC2執行個體類型。當您使用這些執行個體類型並開啟awsvpcTrunking
帳戶設定時,新啟動的容器執行個體ENIs上會提供其他 。此組態可讓您在每個容器執行個體中安排更多任務。如需awsvpcTrunking
帳戶設定的相關資訊,請參閱 使用帳戶設定存取 Amazon ECS功能。
例如,使用 的c5.large
執行個體awsvpcTrunking
有增加的 ENI 限制為 12。容器執行個體將具有主要網路介面,而 Amazon 會ECS建立並連接「區塊」網路介面至容器執行個體。因此,此組態可讓您在容器執行個體中啟動十項任務,而不是目前的兩項任務。
中繼線網路介面完全由 Amazon 管理ECS,當您從叢集終止或取消註冊容器執行個體時,便會刪除。如需詳細資訊,請參閱EC2 啟動類型的 Amazon ECS任務聯網選項。
考量事項
使用 時,請考慮下列事項 ENI 中繼功能。
-
只有 Amazon ECS最佳化 的 Linux 變體AMI,或其他 Amazon Linux 變體具有 或更新版本
1.28.1
的容器代理程式和 或更新版本1.28.1-2
的 ecs-init 套件,支援增加的 ENI 限制。如果您使用 Amazon ECS最佳化 的最新 Linux 變體AMI,則會符合這些要求。目前不支援 Windows 容器。 -
只有啟用後啟動的新 Amazon EC2執行個體才會
awsvpcTrunking
收到增加的 ENI 限制和中繼線網路介面。無論採取何種動作,先前啟動的執行個體都不會收到這些功能。 -
Amazon EC2執行個體必須關閉資源型IPv4DNS請求。若要停用此選項,請確保在使用 Amazon EC2主控台建立新執行個體時取消選取啟用資源型 IPV4(記錄) DNS請求選項。若要使用 停用此選項 AWS CLI,請使用下列命令。
aws ec2 modify-private-dns-name-options --instance-id
i-xxxxxxx
--no-enable-resource-name-dns-a-record --no-dry-run -
不支援共用子網路中的 Amazon EC2執行個體。就算使用也無法註冊到叢集。
-
您的 Amazon ECS任務必須使用
awsvpc
網路模式和EC2啟動類型。使用 Fargate 啟動類型的任務一律會收到專用 ENI 無論啟動多少,所以不需要此功能。 -
您的 Amazon ECS任務必須在VPC與容器執行個體相同的 Amazon 中啟動。如果任務不在相同的 內,則無法以屬性錯誤開始VPC。
-
啟動新的容器執行個體時,執行個體將轉換為
REGISTERING
狀態,同時為執行個體佈建幹線彈性網路介面。如果註冊失敗,執行個體會轉換到REGISTRATION_FAILED
狀態。透過說明容器執行個體以檢視說明失敗原因的statusReason
欄位,可對失敗註冊進行故障排除。然後可以手動解除註冊或終止容器執行個體。容器執行個體成功取消註冊或終止後,Amazon ECS會刪除中繼線 ENI.注意
Amazon ECS 會發出容器執行個體狀態變更事件,您可以監控轉換為
REGISTRATION_FAILED
狀態的執行個體。如需詳細資訊,請參閱Amazon ECS容器執行個體狀態變更事件。 -
容器執行個體終止後,執行個體將轉換為
DEREGISTERING
狀態,同時解除佈建幹線彈性網路介面。然後,執行個體會轉換為INACTIVE
狀態。 -
如果公有子網路中的容器執行個體增加 ENI 限制會停止,然後重新啟動,執行個體會遺失其公有 IP 地址,容器代理程式會失去其連線。
-
當您啟用 時
awsvpcTrunking
,容器執行個體會收到額外的 ENI 使用 VPC的預設安全群組,並由 Amazon 管理ECS。
必要條件
在您啟動容器執行個體之前,ENI 限制,必須完成下列先決條件。
-
ECS 必須建立 Amazon 的服務連結角色。Amazon ECS服務連結角色提供 ECS Amazon 代表您呼叫其他 AWS 服務的許可。這個角色會在您建立叢集,或在 AWS Management Console中建立或更新服務時,自動為您建立。如需詳細資訊,請參閱使用 Amazon 的服務連結角色 ECS。您也可以使用下列 AWS CLI 命令建立服務連結角色。
aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
-
您的帳戶或容器執行個體IAM角色必須啟用
awsvpcTrunking
帳戶設定。建議您建立 2 個容器執行個體角色 (ecsInstanceRole
)。然後,您可以為一個角色啟用awsvpcTrunking
帳戶設定,並將該角色用於需要ENI中繼的任務。如需容器執行個體角色的相關資訊,請參閱 Amazon ECS容器執行個體IAM角色。
符合先決條件後,您可以使用其中一個支援的 Amazon 執行個體類型來啟動新的容器EC2執行個體,且執行個體會增加 ENI 限制。如需支援的執行個體類型清單,請參閱 支援增加 Amazon ECS容器網路介面的執行個體。容器執行個體必須具有容器代理程式的 1.28.1
版或更新版本,以及 ecs-init 套件的 1.28.1-2
版或更新版本。如果您使用 Amazon ECS最佳化 的最新 Linux 變體AMI,則會符合這些要求。如需詳細資訊,請參閱啟動 Amazon ECS Linux 容器執行個體。
重要
Amazon EC2執行個體必須關閉資源型IPv4DNS請求。若要停用此選項,請確保在使用 Amazon EC2主控台建立新執行個體時取消選取啟用資源型 IPV4(記錄) DNS請求選項。若要使用 停用此選項 AWS CLI,請使用下列命令。
aws ec2 modify-private-dns-name-options --instance-id
i-xxxxxxx
--no-enable-resource-name-dns-a-record --no-dry-run
若要檢視增加的容器執行個體 ENI 限制,使用 AWS CLI
每個容器執行個體都有預設的網路界面,稱為幹線網路界面。使用下列命令來列出具有增加的容器執行個體 ENI 限制,方法是查詢 ecs.awsvpc-trunk-id
屬性,這表示其具有中繼網路介面。
-
list-attributes (AWS CLI)
aws ecs list-attributes \ --target-type container-instance \ --attribute-name ecs.awsvpc-trunk-id \ --cluster
cluster_name
\ --regionus-east-1
-
Get-ECSAttributeList (AWS Tools for Windows PowerShell)
Get-ECSAttributeList -TargetType container-instance -AttributeName ecs.awsvpc-trunk-id -Region
us-east-1