Mus*_*mri 5 elasticsearch aws-fargate
在 AWS Fargate 上部署 Elasticsearch 时遇到问题
完成了以下步骤:
定制我的 docker 镜像并推送到 AWS ECR。我的 Elasticsearch 服务的任务定义
弹性搜索服务在引导时失败,以下是例外情况 [3]:最大虚拟内存区域 vm.max_map_count [65530] 太低,至少增加到 [262144]
es 5.0 及以上版本的已知 es 问题。es提供的解决方案如下 sysctl -w vm.max_map_count=262144
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode
由于我们无权访问主机,是否可以在 AWS Fargate 上应用此命令?
更新:Elastic Search 提供了一个选项来避免启动时进行 mmap 检查,但目前尚未发布
小智 6
看来你不能这样做。
让我解释:
Docker实际上包装了一个进程并使用安装在主机上的内核来运行它。
更改“vm.max_map_count”实际上是在配置宿主机的Linux内核。
当主机在您的控制之下时,例如当您使用 EC2 时,您可以通过在Launch Configuration上应用“用户数据”来配置主机的内核。(请参阅:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html)
但是,如果主机不受您的控制,例如 Fargate,您就无法更改主机及其运行的内核设置。Fargate 的整个想法是运行无状态Docker 镜像,这些镜像不对它们运行的主机做出任何假设。
然而,在 Elasticsearch 中,应用程序本身依赖于特定的主机配置(“vm.max_map_count”设置),这意味着它确实对其主机做出了假设,因此它无法在Fargate 等通用主机上运行(除非您禁用此检查) ,这对于生产环境来说不是一个好主意)。
| 归档时间: |
|
| 查看次数: |
4767 次 |
| 最近记录: |