我已经创建了一个ECS集群,它链接到一个自动标度组,并附加了一个应用程序负载均衡器。自动标度部署实例,AMI被正确选择(ECS优化)。
无论出于什么原因,ecs实例都是由自动缩放服务部署的,但没有向ECS集群注册。
有谁知道,是什么原因导致我的集群中没有实例的错误?
发布于 2018-08-03 10:48:02
您的EC2实例只是没有足够的权限向ECS集群注册:
重要的是,如果不使用适当的IAM权限启动容器实例,则Amazon代理无法连接到群集。
检查分配给EC2实例的IAM角色。它应包括适当的权限,例如:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DeregisterContainerInstance",
"ecs:RegisterContainerInstance",
"ecr:GetAuthorizationToken"
],
"Resource": "*"
}
]
}或者您可以使用名为AmazonEC2ContainerServiceforEC2Role的AWS管理策略,并将其分配给您的EC2角色。
更多信息可以在https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html上雪崩。
发布于 2018-08-07 17:19:39
这一项也是使其工作所必需的;当任务被创建和停止时,Amazon需要使用负载均衡器注册和注销容器实例的权限。
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ecs.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}https://docs.aws.amazon.com/AmazonECS/latest/developerguide/check-service-role.html
发布于 2022-01-25 21:08:48
我们的用户数据脚本出现了错误。我在EC2中发现了错误--我的实例->监视器和-> Get系统日志的故障排除。我们在用户数据中的bash脚本上有-ex标志,即#!/bin/bash -ex,它告诉脚本在发生任何错误时立即退出。EC2任务将完成启动,在自动缩放组看来是健康的,但是云init (EC2初始化)已经终止,并且没有完成,使得实例没有连接到ECS集群。一旦我修复了用户数据脚本中的错误并启动了一个新实例,它就能够像预期的那样附加到ECS集群。
https://serverfault.com/questions/924783
复制相似问题