增加 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。此組態可讓您在每個容器執行個體中安排更多任務。若要使用主控台開啟功能,請參閱 修改 Amazon ECS 帳戶設定。若要使用 AWS CLI 開啟功能,請參閱 使用 管理 Amazon ECS 帳戶設定 AWS CLI

例如,使用 的c5.large執行個體 awsvpcTrunking ENI 限制為 12。容器執行個體將具有主要網路介面,Amazon ECS 會建立並連接「區塊」網路介面至容器執行個體。因此,此組態可讓您在容器執行個體中啟動十項任務,而不是目前的兩項任務。

中繼線網路介面由 Amazon ECS 完全管理,當您從叢集終止或取消註冊容器執行個體時,便會刪除。如需詳細資訊,請參閱適用於 ECS 啟動類型的 Amazon EC2 任務聯網選項

考量事項

使用 時,請考慮下列事項 ENI 中繼功能。

  • 只有 Amazon ECS 最佳化 AMI 的 Linux 變體,或其他 Amazon Linux 變體,其容器代理程式版本 1.28.1 或更新版本,以及 ecs-init 套件版本 1.28.1-2或更新版本,支援增加的 ENI 限制。如果您使用 Amazon ECS 最佳化 AMI 的最新 Linux 變體,將符合這些要求。目前不支援 Windows 容器。

  • 只有啟用後啟動的新 Amazon EC2 執行個體才會awsvpcTrunking收到增加的 ENI 限制和中繼線網路介面。無論採取何種動作,先前啟動的執行個體都不會收到這些功能。

  • Amazon EC2 執行個體必須關閉資源型 IPv4 DNS請求。若要停用此選項,請確保在使用 Amazon IPV4 主控台建立新執行個體時取消選取啟用資源型 DNS (A 記錄) Word 請求選項。 EC2若要使用 停用此選項 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 任務必須在與容器執行個體相同的 Amazon VPC 中啟動。如果任務不在同一個 VPC 內,則無法以屬性錯誤開頭。

  • 啟動新的容器執行個體時,執行個體將轉換為 REGISTERING 狀態,同時為執行個體佈建幹線彈性網路介面。如果註冊失敗,執行個體會轉換到 REGISTRATION_FAILED 狀態。透過說明容器執行個體以檢視說明失敗原因的 statusReason 欄位,可對失敗註冊進行故障排除。然後可以手動解除註冊或終止容器執行個體。容器執行個體成功取消註冊或終止後,Amazon ECS 會刪除中繼線 ENI.

    注意

    Amazon ECS 會發出容器執行個體狀態變更事件,您可以監控轉換為 REGISTRATION_FAILED 狀態的執行個體。如需詳細資訊,請參閱Amazon ECS 容器執行個體狀態變更事件

  • 容器執行個體終止後,執行個體將轉換為 DEREGISTERING 狀態,同時解除佈建幹線彈性網路介面。然後,執行個體會轉換為 INACTIVE 狀態。

  • 如果公有子網路中的容器執行個體增加 ENI 限制會停止,然後重新啟動,執行個體會遺失其公有 IP 地址,容器代理程式會遺失其連線。

  • 當您啟用 時awsvpcTrunking,容器執行個體會收到額外的 ENI 使用 VPC 的預設安全群組,並由 Amazon ECS 管理。

必要條件

在您啟動容器執行個體之前,ENI 限制,必須完成下列先決條件。

  • 必須建立 Amazon ECS 的服務連結角色。Amazon ECS 服務連結角色提供 Amazon ECS 代表您呼叫其他 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 最佳化 AMI 的最新 Linux 變體,將符合這些要求。如需詳細資訊,請參閱啟動 Amazon ECS Linux 容器執行個體

重要

Amazon EC2 執行個體必須關閉資源型 IPv4 DNS請求。若要停用此選項,請確保在使用 Amazon IPV4 主控台建立新執行個體時取消選取啟用資源型 DNS (A 記錄) Word 請求選項。 EC2若要使用 停用此選項 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