繁体   English   中英

将 ElasticSearch Docker 容器部署到 AWS Fargate

[英]Deploy ElasticSearch Docker Container to AWS Fargate

我正在尝试将非自定义单节点 elasticsearch:7.8.1 docker 容器部署到 AWS ECS Fargate。

在我的本地我只是执行:

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.8.1

它为我启动了我的应用程序使用的 ES 容器。 我想要在云中使用相同的容器。

我该怎么做?

更新:我能够将 ES 部署到 Fargate,但尝试访问它失败并显示错误消息:

ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

经过简短的谷歌搜索后,我发现了这篇文章,他们通过打开单节点模式解决了这个问题。 我不太明白如何在 Fargate 中打开它,是在任务定义中还是如何打开它?

另一个问题是在 AWS 中运行 ES 的最常见方式是什么? 在 EC2 或 AWS ES 服务中? 我的目标是尽快设置基础设施。 我使用弹性搜索在 docker 中运行了 .net 核心应用程序。

回复最新评论。 不,您只需在提供给 AWS Fargate 的 Docker-compose.yml 文件中提供来自镜像注册表(如 Docker Hub)的公共 Elasticsearch 镜像地址。 例如: image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0

您可以通过设置 ulimits 解决第一个问题——我使用的是 Terraform 中的任务定义:

ulimits = [
    {
      name      = "nofile"
      softLimit = 65535
      hardLimit = 65535
    }]

对于vm.max_map_count ,您可以通过将ES_SETTING_NODE_STORE_ALLOW__MMAP设置为false来禁用检查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM