本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
安裝 Amazon ECS 容器代理程式
若想向 Amazon ECS 叢集註冊 Amazon EC2 執行個體,且該執行個體未使用基於 Amazon ECS 最佳化 AMI 的 AMI,您可以透過如下程序手動安裝 Amazon ECS 容器代理程式。為此,您可以從其中一個區域 S3 儲存貯體或 Amazon Elastic Container Registry Public 下載代理程式。如果從其中一個區域 Amazon S3 儲存貯體下載,您可選擇性使用 PGP 簽章驗證容器代理程式的有效性。
注意
Amazon ECS 和 Docker 服務的 systemd 單位都有一個指令,要在啟動這兩個服務前等待 cloud-init 完成。在您的 Amazon EC2 使用者資料完成執行前,cloud-init 程序不會被視為完成。因此,透過 Amazon EC2 使用者資料啟動 Amazon ECS 或 Docker 可能會造成死鎖。若要使用 Amazon EC2 使用者資料來啟動容器代理程式,您可以使用 systemctl enable --now --no-block ecs.service。
在非 Amazon Linux EC2 執行個體上安裝 Amazon ECS 容器代理程式
若要在 Amazon EC2 執行個體上安裝 Amazon ECS 容器代理程式,您可以從其中一個區域 Amazon S3 儲存貯體中下載代理程式並加以安裝。
注意
使用非 Amazon Linux AMI 時,您的 Amazon EC2 執行個體需要 cgroupfs 支援 cgroup 驅動程式,以便 Amazon ECS 代理程式支援任務層級資源限制。如需詳細資訊,請參閱 GitHub 上的 Amazon ECS 代理程式
每個系統架構最新的 Amazon ECS 容器代理程式檔案 (依區域) 列出如下,以供參考。
使用非 Amazon Linux AMI 在 Amazon EC2 執行個體上安裝 Amazon ECS 容器代理程式
-
使用允許存取 Amazon ECS 的 IAM 角色來啟動 Amazon EC2 執行個體。如需詳細資訊,請參閱Amazon ECS 容器執行個體 IAM 角色。
-
連線到您的執行個體。
-
在您的執行個體上安裝最新版本的 Docker。
-
檢查您的 Docker 版本,驗證您的系統符合最低版本需求。如需有關 Docker 支援的詳細資訊,請參閱 Amazon ECS EC2 容器執行個體。
docker --version -
下載適用於您作業系統和系統架構的 Amazon ECS 代理程式檔案並加以安裝。
對於
deb架構:ubuntu:~$curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.debubuntu:~$sudo dpkg -i amazon-ecs-init-latest.amd64.deb對於
rpm架構:fedora:~$curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpmfedora:~$sudo yum localinstall -y amazon-ecs-init-latest.x86_64.rpm -
編輯
/lib/systemd/system/ecs.service檔案,並在[Unit]區段結尾處新增以下一行。After=cloud-final.service -
(選用) 若要將執行個體註冊到
default叢集之外的叢集,請編輯/etc/ecs/ecs.config檔案並新增以下內容。以下範例會指定MyCluster叢集。ECS_CLUSTER=MyCluster如需這些和其他代理執行時間選項的詳細資訊,請參閱「Amazon ECS 容器代理程式組態」。
注意
您可以選擇性地將您的代理程式環境變數存放在 Amazon S3 中 (可在啟動時使用 Amazon EC2 使用者資料將其下載到您的容器執行個體)。針對敏感性資訊 (例如私有存放庫的身分驗證登入資料),此為建議選項。如需詳細資訊,請參閱將 Amazon ECS 容器執行個體組態儲存於 Amazon S3 中及在 Amazon ECS 中使用非AWS 容器映像。
-
啟動
ecs服務。ubuntu:~$sudo systemctl start ecs
使用主機網路模式執行 Amazon ECS 代理程式
當執行 Amazon ECS 容器代理程式時,ecs-init 將使用 host 網路模式建立容器代理程式容器。對於容器代理程式容器,這是唯一支援的網路模式。
對於容器代理程式啟動的容器,這允許您封鎖對 Amazon EC2 執行個體中繼資料服務端點 (http://169.254.169.254) 的存取。這可確保容器不能從容器執行個體設定檔存取 IAM 角色憑證,並強制任務只使用 IAM 任務角色憑證。如需詳細資訊,請參閱Amazon ECS 任務 IAM 角色。
這也可讓容器代理程式不會在 docker0 橋接上爭奪連線和網路流量。