本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
安裝 Amazon ECS 容器代理程式
如果您想要向 Amazon ECS 叢集註冊 Amazon EC2 執行個體,且該執行個體未使用基於 Amazon ECS 最佳化 AMI 的 AMI,您可以使用下列程序手動安裝 Amazon ECS 容器代理程式。若要這樣做,您可以從其中一個區域 Amazon 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 版本是 Docker 版本
v20.10.13
及更新版本,該版本隨附於 Amazon ECS 最佳化 AMI20220607
及更新版本中。Amazon ECS 代理程式版本
1.20.0
和更新版本已不支援1.9.0
之前的 Docker 版本。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.deb
ubuntu:~$
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.rpm
fedora:~$
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 S3 中存放 Amazon ECS 容器執行個體組態 和 在 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
橋接上爭奪連線和網路流量。