如何解决AWS ECS CLI不会将EC2实例附加到集群
我有一些Docker容器,我正在尝试使用ECS CLI在AWS ECS上启动它们。
这些是我的命令:
ecs-cli configure --cluster abc --default-launch-type FARGATE --config-name abc-conf --region eu-west-1
ecs-cli configure profile --access-key xxx --secret-key xxx --profile-name abc-profile
ecs-cli up --security-group sg-094607105993d0351 --vpc vpc-0479323e6e7107b74 --subnets subnet-009eb5c6e08b7dbf0,subnet-0e1c2846b268b170a --keypair abc-key --capability-iam --size 1 --instance-type t2.small --cluster-config abc-conf --ecs-profile abc-profile --region eu-west-1 --force
ecs-cli compose up --create-log-groups --cluster-config abc-conf --ecs-profile abc-profile --create-log-groups
但是我得到
ERRO[0001] Error running tasks error="InvalidParameterException: No Container Instances were found in your cluster." task definition=0xc00031e6a0
FATA[0001] InvalidParameterException: No Container Instances were found in your cluster.
这样做的原因是ecs-cli up
命令正在启动EC2 ,但是它未将其引入群集中,因此群集具有没有实例。
现在,如果我不指定自己的vpc和子网,则此方法有效,但是我必须这样做,因为没有其他方法可以指定在群集上打开的一堆端口(有一个选项仅允许您指定一个端口)。
那么ecs-cli为什么不将我的实例带入群集?
解决方法
我不确定您是否在实例上正确配置了user-data
。
您应该将其配置为在启动时加入ECS集群。
#!/bin/bash
echo "ECS_CLUSTER=MyCluster" >> /etc/ecs/ecs.config
docs中的更多信息。
此外,如果您不使用经AWS ECS优化的AMI,则可能需要更多配置。
,最后找到答案。您必须向VPC添加Internet网关;然后在您要启动集群的子网中,必须添加一个指向Internet网关的路由表条目,指向0.0.0.0/0。然后它将立即将ec2附加到您的群集。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。