增加 Amazon ECS Linux 容器執行個體網路介面 - Amazon Elastic Container Service

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

增加 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 \ --region us-east-1
  • Get-ECSAttributeList (AWS Tools for Windows PowerShell)

    Get-ECSAttributeList -TargetType container-instance -AttributeName ecs.awsvpc-trunk-id -Region us-east-1