我在ECS集群中运行支持RancherOS ECS的AMI v1.0.4的EC2实例。
实例加入群集,但ECS任务无法启动,因为容器实例缺少任务所需的属性。
无法启动的ECS任务具有IAM角色并且需要com.amazonaws.ecs.capability.task-iam-role
属性。在检查容器实例具有哪些属性(使用cli aws ecs describe-container-instances)之后,可以看到缺少此必需属性。
当我从任务中删除IAM角色时,它就会正常运行。
当我使用Amazon ECS优化的AMI运行实例时,一切正常。
我关注official RancherOS ECS guide,包括验证ECS容器实例IAM角色,但没有成功。
答案 0 :(得分:0)
查看ECS代理的源代码后,很明显默认情况下禁用此功能。
为了启用它,环境变量ECS_ENABLE_TASK_IAM_ROLE
应该具有值true
。
将其添加到cloud-config文件可以完成任务:
#cloud-config
rancher:
environment:
ECS_ENABLE_TASK_IAM_ROLE: true