Elasticsearch docker 集群(建议6.3版本之后,自带xpack,非常赞)

原文:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

如果机器可以直接连外网那就太好了,问题是如果不能连外网,就要用dockerfile build完save tar再load进来,至于这个dockerfile后续加上,里面会有kibana和elasticsearch-sql。建议使用6.3之后的版本,因为自带xpack真的监控方便很多。

如果是单机,完全可以跟着流程做下去,什么都不用配置,跑guide的命令就可以了。

如果是集群,那就要注意了,

1.改elasticsearch.yml,加discovery.zen.ping.unicast.hosts

2.要改本机的/etc/sysctl.conf,container里不让改

vm.max_map_count=262144

3.docker run要带下面参数(!!!!!!这个巨坑,一定要记得。因为我以为是改container里面的/etc/security/limits.conf,结果怎么改都不起作用,然后上面的文章在最后才提到是run的时候带参,我去,花了我一整天。。。)

--ulimit nofile=65536:65536

 

福利推荐:加班,祛痘,去油,祛湿必备。我现在也在喝,卖家是个同行小姐姐,有需要就加她了解一下吧。

### 设置和运行Elasticsearch Docker集群 #### 准备工作 为了成功部署Elasticsearch集群,需先确保已安装Docker环境并具备网络连接能力。准备阶段还包括下载官方提供的Elasticsearch镜像以及编写必要的配置文件。 #### 下载Elasticsearch镜像 通过执行`docker pull elasticsearch:7.10.2`来获取指定版本Elasticsearch镜像[^1]。此操作会从Docker Hub拉取最新稳定版的Elasticsearch容器映像至本地机器上。 #### 编写启动脚本 创建位于`/opt/elasticsearch/run.sh`路径下的启动脚本用于简化后续的操作流程。该Shell脚本应包含初始化参数设定、挂载卷定义等内容以便于灵活调整实例属性。 ```bash #!/bin/bash docker run -d \ --name es-node1 \ -e "discovery.type=single-node" \ -v /data/es/data:/usr/share/elasticsearch/data \ -p 9200:9200 \ -p 9300:9300 \ elasticsearch:7.10.2 ``` 上述示例展示了单节点模式下Elasticsearch服务端口映射与数据持久化存储方式;对于多节点集群,则需要移除`discovery.type=single-node`环境变量,并适当修改其他选项以适应实际需求。 #### 使用Docker Compose管理多个容器 当涉及更多组件协同工作时(如Kibana可视化工具),推荐采用Docker Compose工具统一管理和编排整个应用栈。编辑名为`docker-compose.yml`的服务描述文档如下所示: ```yaml version: '2' services: es-master: image: elasticsearch:7.10.2 container_name: es-master environment: - cluster.name=docker-cluster - bootstrap.memory_lock=true - discovery.seed_hosts=es-node1,es-node2 - cluster.initial_master_nodes=es-master,es-node1,es-node2 - ES_JAVA_OPTS=-Xms512m -Xmx512m ulimits: memlock: soft: -1 hard: -1 volumes: - esdata1:/usr/share/elasticsearch/data ports: - 9200:9200 es-node1: ... es-node2: ... volumes: esdata1: driver: local ``` 这段YAML片段定义了一个由三个成员构成的小型Elasticsearch集群结构,其中包含了主控服务器(`es-master`)和其他两个普通节点(`es-node1`, `es-node2`)之间的关系说明及其各自特性配置[^3]。 #### 安全性和跨域资源共享(CORS) 考虑到生产环境中安全性的重要性,在完成基本架构建设之后还需进一步强化访问控制机制。具体措施包括但不限于开启SSL加密通信通道、启用身份验证插件等高级功能。另外,为了让前端页面能够顺利调用API接口,记得在所有参与方之间建立合适的CORS策略——即允许特定源发起请求的同时也保障了系统的整体防护水平[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值