gpt4 book ai didi

amazon-web-services - 在 AWS ECS : HardLimit cannot be empty 中设置 ulimit

转载 作者:行者123 更新时间:2023-12-03 07:29:37 25 4
gpt4 key购买 nike

根据官方说明documentation和官方docker image我通过 docker compose 使用这些配置在本地运行 Elasticsearch:

elasticsearch:
image: 'elasticsearch:6.7.1'
container_name: elasticsearch
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200

随着此功能在本地成功运行,我现在正在考虑在 EC2 和 Fargate 配置中的 AWS ECS 中运行此功能。也就是说,我创建了一个 Cloudformation 模板,其中包含一个用于 Elasticsearch 的 TaskDefinition 和一个 ContainerDefinition,如下所示:

ContainerDefinition:
- Name: 'elasticsearch'
Image: 'elasticsearch:6.7.1'
LogConfiguration:
LogDriver: awslogs
Options:
awslogs-group: !Ref 'LogGroup'
awslogs-region: 'us-west-2'
awslogs-stream-prefix: !Sub 'elasticsearch'
Environment:
- Name: cluster.name
Value: 'docker-cluster'
- Name: bootstrap.memory_lock
Value: 'true'
- Name: ES_JAVA_OPTS
Value: '-Xms512m -Xmx512m'
Cpu: '1024'
Memory: '4096'
Ulimits:
- Name: 'memlock'
- SoftLimit: -1
- HardLimit: -1
MountPoints:
- SourceVolume: esdata1
ContainerPath: /usr/share/elasticsearch/data
PortMappings:
- HostPort: '9200'
ContainerPort: '9200'

使用此模板启动 Cloudformation 堆栈的创建会导致以下 Cloudformation 错误:

CREATE_FAILED   AWS::ECS::TaskDefinition    TaskDefinition  Property HardLimit cannot be empty.

当我注释掉以下配置时:

  Ulimits:
- Name: 'memlock'
- SoftLimit: -1
- HardLimit: -1

并启动我的 Cloudformation 堆栈的创建,从 Cloudformation 角度来看,一切都是成功的,并且没有遇到任何错误,这告诉我除了 Ulimits 配置之外,我应该做得很好。从那里我查看了 AWS Cloudformation ContainerDefinition documentation其中提到了有关 Ulimits 配置的以下内容:

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance.

我不确定为什么会收到此错误 HardLimit 不能为空。,但想知道它是否与需要 Docker Remote API 的容器有关。我现在有点困惑,但如果有人有任何关于如何使其工作的信息,我很想听听。我对 Docker Remote API 的了解不是很多,而且这个错误可能与此完全无关。有时,Cloudformation 错误消息并不完全清楚,只是试图超越这一点,因此将我获得的所有信息都扔掉。谢谢

最佳答案

您的 YML 配置错误。每次你有一个带有 - 的新行时,它都会创建一个新条目。在 JSON 格式中,您的 YML 如下所示:

  "Ulimits": [{
"Name": "memlock"
},{
"SoftLimit": -1
},{
"HardLimit": -1
}]

尝试一下:

  Ulimits:
- Name: 'memlock'
SoftLimit: -1
HardLimit: -1

关于amazon-web-services - 在 AWS ECS : HardLimit cannot be empty 中设置 ulimit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56906881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com