cos*_*r11 97 amazon-web-services amazon-ecs docker aws-cli
我试图将docker容器映像部署到AWS使用ECS,但是没有创建EC2实例.我已经浏览了互联网,寻找解释为什么我收到以下错误:
"调用RunTask操作时发生客户端错误(InvalidParameterException):在群集中找不到容器实例."
这是我的步骤:
1.将Docker镜像从Ubuntu推送到我的Amazon ECS仓库.
2.注册ECS任务定义:
aws ecs register-task-definition --cli-input-json file://path/to/my-task.json
Run Code Online (Sandbox Code Playgroud)
3.完成任务:
aws ecs run-task --task-definition my-task
Run Code Online (Sandbox Code Playgroud)
然而,它失败了.
这是我的任务:
{
"family": "my-task",
"containerDefinitions": [
{
"environment": [],
"name": "my-container",
"image": "my-namespace/my-image",
"cpu": 10,
"memory": 500,
"portMappings": [
{
"containerPort": 8080,
"hostPort": 80
}
],
"entryPoint": [
"java",
"-jar",
"my-jar.jar"
],
"essential": true
}
]
}
Run Code Online (Sandbox Code Playgroud)
我也尝试使用管理控制台来配置集群和服务,但我得到了同样的错误.如何配置群集以具有ec2实例,以及需要使用哪种容器实例?我认为整个过程是创建EC2实例开始!!
cos*_*r11 140
经过几个小时的调查,我想出了这个.亚马逊,如果您正在收听,则应在创建群集或向群集添加实例时在管理控制台中的某处说明:
"在将ECS实例添加到群集之前,必须首先转到EC2管理控制台并创建
ecs-optimized具有AmazonEC2ContainerServiceforEC2Role附加策略的IAM角色的实例"
这是一个严谨的事情:
1.转到EC2控制面板,然后单击Launch Instance按钮.
2.在Community AMIs"搜索" 下,ecs-optimized选择最适合您项目需求的项目.任何会工作.点击下一步.
3.进入"配置实例详细信息"后,单击create new IAM role link并创建一个名为的新角色ecsInstanceRole.
4.将AmazonEC2ContainerServiceforEC2Role策略附加到该角色.
5.然后,完成配置ECS实例.
注意:如果要创建Web服务器,则需要创建一个securityGroup以允许访问端口80.
几分钟后,当实例初始化并运行时,您可以刷新ECS实例选项卡,您也尝试添加实例.
P_W*_*999 35
目前,Amazon AWS Web界面可以使用正确的AMI和正确的名称自动创建实例,以便它将注册到正确的群集.
即使所有实例都是由Amazon使用正确的设置创建的,我的实例也不会注册.在亚马逊AWS论坛上,我发现了一个线索.事实证明,您的群集需要互联网访问,如果您的私人VPC没有互联网网关,群集将无法连接.
修复
在VPC仪表板中,您应该创建一个新的Internet网关并将其连接到群集使用的VPC.连接后,您必须更新(或创建)VPC的路由表并添加为最后一行
0.0.0.0/0 igw-24b16740
Run Code Online (Sandbox Code Playgroud)
其中igw-24b16740是您新创建的互联网网关的名称.
san*_*h_p 11
其他建议检查
1)选择为给定区域指定的建议ami解决了我的问题.要查找ami - 请查看此网址http://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html
2)通过defaault将所有ec2实例添加到默认群集.所以集群的名称也很重要.
请参见此处的第10点 http://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html
此主题中提供了更多信息 https://forums.aws.amazon.com/thread.jspa?threadID=189513
Mil*_*mak 11
使用Fargate时遇到了这个问题。我在调用时明确定义了该问题。launchType="FARGATE"run_task
发生这种情况时,您需要注意以下事项:
AmazonEC2ContainerServiceforEC2Role附加了托管策略的角色ecs-optimized(您可以在 EC2 仪表板中检查这一点)大多数时候,出现此问题的原因是 VPC 配置错误。根据文档:
引用:如果您没有配置接口 VPC 终端节点,并且您的容器实例没有公共 IP 地址,则它们必须使用网络地址转换 (NAT) 来提供此访问。
这些就是您在 ECS 仪表板中看不到 EC2 实例列出的原因。
| 归档时间: |
|
| 查看次数: |
48579 次 |
| 最近记录: |