AWS ECS CLI 不将 EC2 实例附加到集群
AWS ECS CLI Doesn't Attach EC2 Instance To Cluster
我有一些 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-Optimized AMI,则可能需要更多配置。
终于找到答案了。您必须向您的 VPC 添加一个互联网网关;然后在您尝试启动集群的子网中,您必须添加一个指向 0.0.0.0/0 到互联网网关的路由 table 条目。然后它会立即将 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-Optimized AMI,则可能需要更多配置。
终于找到答案了。您必须向您的 VPC 添加一个互联网网关;然后在您尝试启动集群的子网中,您必须添加一个指向 0.0.0.0/0 到互联网网关的路由 table 条目。然后它会立即将 ec2 附加到您的集群。