Amazon ECS 容器代理程式組態 - Amazon Elastic Container Service

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

Amazon ECS 容器代理程式組態

適用對象:EC2 執行個體

Amazon ECS 容器代理程式支援數個組態選項,其中大部分透過環境變數進行設定。

如果是透過 Linux 版的 Amazon ECS 最佳化 AMI 來啟動容器執行個體,您可以在 /etc/ecs/ecs.config 檔案中設定這些環境變數,然後重新啟動代理程式。您也可以在啟動時使用 Amazon EC2 使用者資料,將這些組態變數寫入容器執行個體。如需詳細資訊,請參閱引導 Amazon ECS Linux 容器執行個體傳遞資料

如果是透過 Windows 版的 Amazon ECS 最佳化 AMI 來啟動容器執行個體,您可以使用 PowerShell SetEnvironmentVariable 命令設定這些環境變數,然後重新啟動代理程式。如需詳細資訊,請參閱 Amazon EC2 User Guide 中的 Run commands when you launch an EC2 instance with user data input,以及引導 Amazon ECS Windows 容器執行個體傳遞資料

如果您是手動啟用 Amazon ECS 容器代理程式 (適用於非 Amazon ECS 最佳化 AMI),則可以在用於啟用代理程式的 docker run 命令中使用這些環境變數。請搭配使用這些變數和語法 --env=VARIABLE_NAME=VARIABLE_VALUE。如需私有儲存庫的身分驗證登入資料這類敏感資訊,您應該將代理環境變數存放至一個檔案中,並使用 --env-file path_to_env_file 選項一次傳遞。您可使用下列命令來新增這些變數。

sudo systemctl stop ecs sudo vi /etc/ecs/ecs.config # And add the environment variables with VARIABLE_NAME=VARIABLE_VALUE format. sudo systemctl start ecs

透過主機 PID 命名空間執行 Amazon ECS 代理程式

依預設,Amazon ECS 代理程式會透過專用的 PID 命名空間執行。在下列組態中,您可以設定 Amazon ECS 代理程式採用主機 PID 命名空間執行:

  • SELinux 強制執行模式已啟用。

  • Docker 的 SELinux 安全政策設定為 true。

您可以在 /etc/ecs/ecs.config 檔案中將 ECS_AGENT_PID_NAMESPACE_HOST 環境變數設定為 true,實現對此行為進行設定。啟用此變數時,ecs-init 會使用主機的 PID 命名空間 (--pid=host) 啟動 Amazon ECS 代理程式容器,允許代理程式在 SELinux 強制執行環境中正確引導自身。此功能在 Amazon ECS 代理程式版本 1.94.0 及更新版本中可用。

若要啟用此功能,請將以下一行新增至 /etc/ecs/ecs.config 檔案:

ECS_AGENT_PID_NAMESPACE_HOST=true

進行此變更後,請重新啟動 Amazon ECS 代理程式,讓變更生效:

sudo systemctl restart ecs

若啟用了 SELinux 強制模式,且 Docker 安全政策設定為 true,那麼即使設定了 ECS_AGENT_PID_NAMESPACE_HOST=true,下列功能也無法運作。

  • Amazon ECS Exec

  • Amazon EBS 任務連接

  • Service Connect

  • FireLens for Amazon ECS

可用參數

如需有關可用 Amazon ECS 容器代理程式組態參數的資訊,請參閱 GitHub 上的 Amazon ECS 容器代理程式