我已经使用以下命令在AWS上使用ecs-cli建立了一个新的带区集群:
配置集群:ecs-cli configure --cluster cluster_name --region region_name --default-launch-type EC2 --config-name config_name
使用默认的配置文件:ECS-CLI配置默认--config名CONFIG_NAME
创建集群:ecs-cli up --keypair key_name --capability-iam --size 1 --instance-type t2.micro --security-group sg_id --vpc vpc_id-子网subnet_id --cluster-配置CONFIG_NAME
集群已在ECS上成功创建。但是,当我尝试运行docker-compose文件来运行jenkins和jenkins数据卷容器(已经推送到ECR)时,即使CPU和内存使用率为0%,我也会收到“ RESOURCE:MEMORY”错误。
部署搬运工撰写文件簇:ECS-CLI撰写了--cluster-配置config_id
实际结果:
WARN [0000]跳过不支持的YAML服务选项...选项名称=网络服务名称=詹金斯 WARN [0000]跳过服务的不受支持的YAML选项...选项名=网络服务名= jenkins_dv INFO [0000]使用ECS任务定义TaskDefinition =“ aws-infra:4” INFO [0000]无法运行容器reason =“ RESOURCE:MEMORY”
jenkins:
image: jenkins:latest
cpu_shares: 50
mem_limit: 524288000
ports: ["8080:8080", "50000:50000"]
volumes_from: ['jenkins_dv']
jenkins_dv:
image: jenkins_dv:latest
cpu_shares: 50
mem_limit: 524288000
即使在删除cpu_shares和mem_limits后运行docker compose文件(因为EC2实例不需要),我也会遇到相同的错误。由于集群是新的,没有被利用任何CPU或内存的任务应该被成功创建。我在这里做什么错了?
答案 0 :(得分:0)
我已经解决了这个问题。我已为两个容器分配了500MB(以字节为单位)的内存限制。根据AWS文档tc.micro的内存为1GB,但是如果您打开实例(集群> EC2实例>容器实例)并查看内存分配,则分配的实际内存会略小于1GB。我更新了文件,并为两个容器提供了250MB(以字节为单位)的内存限制,并且它可以正常工作。