我试图设置在集群上运行容器映像的ECS服务,但无法使设置正常工作。
我基本上遵循了https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html上的指南,只是我尝试在EC2实例上托管容器。
我想知道问题是否与网络模式有关(使用“ awsvpc”)。
它应该在具有ALB链接的访问权的index.html上显示一些内容
当我尝试使用负载平衡器链接进行访问时,它显示的是HTTP 503,并且运行状况检查也显示不正常
而且ECS似乎在不断“重建”调配剂吗?(请原谅我,因为我还不熟悉ECS)
试图直接访问容器实例,但也无法访问
我查看了容器实例上的ECS代理日志(/var/logs/ecs-agent.log),该图像应该已成功拉出
并且任务应该已经开始
ECS服务事件
似乎它保持注册和注销目标
安全组已设置为接受HTTP通信
容器上的Tomcat服务器从端口80启动
ECS任务定义创建
{
"family": "TestTaskDefinition",
"networkMode": "awsvpc",
"containerDefinitions": [
{
"name": "TestContainer",
"image": "<Image URI>",
"portMappings": [
{
"containerPort": 80,
"hostPort": 80,
"protocol": "tcp"
}
],
"essential": true
}
],
"requiresCompatibilities": [
"EC2"
],
"cpu": "256",
"memory": "512",
"executionRoleArn": "<ECS execution role ARN>"
}
ECS服务创建
{
"cluster": "TestCluster",
"serviceName": "TestService",
"taskDefinition": "TestTaskDefinition",
"loadBalancers": [
{
"targetGroupArn": "<target group ARN>",
"containerName": "TestContainer",
"containerPort": 80
}
],
"launchType": "EC2",
"schedulingStrategy": "REPLICA",
"deploymentController": {
"type": "CODE_DEPLOY"
},
"networkConfiguration": {
"awsvpcConfiguration": {
"assignPublicIp": "DISABLED",
"securityGroups": [ "sg-0f9b629686ca3bd08" ],
"subnets": [ "subnet-05f47b367df4f50d4", "subnet-0fd76fc8e47ea3be7" ]
}
},
"desiredCount": 1
}
根据评论。
为了调查该问题,建议测试不带ALB的ECS服务。根据测试,发现由于应用启动时间长,ALB将ECS服务视为不健康。
通过将ALB健康检查宽限期增加到(例如300秒)可以解决此问题。
不确定EC2启动类型是否必须使用“ bridge”
您也可以awsvpc
在EC2实例上使用,但是bridge
在这种情况下更易于使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句