Kubernetes 搭建 ES 集群(存储使用 cephfs)

一、集群规划

  1. 使用 cephfs 实现分布式存储和数据持久化
  2. ES 集群的 master 节点至少需要三个,防止脑裂。
  3. 由于 master 在配置过程中需要保证主机名固定和唯一,所以搭建 master 使用 StatefulSet 控制器
  4. node 节点需要固定的主机名和固定的物理节点以及物理节点上的本地PV,所以需要使用 StatefulSet。
  5. kibana为无状态服务,使用deployment。

本文原文链接:https://blog.csdn.net/xzk9381/article/details/109570974

二、修改 elasticsearch 镜像

为了实现 ES 各个节点将数据进行统一存储并且根据目录名称来区分各个节点,需要在容器内创建以容器主机名命名的目录,并将该目录与 ES 存储数据的目录进行软链接,这样在配置挂载数据卷的时候,实际上挂载是的以主机名命名的目录。

而且在部署 elasticsearch 的时候建议配置 memlock:true,这个要求系统必须配置ulimit。所以需要修改镜像,使其在容器内自动执行。

Dockerfile 内容如下:

FROM docker.elastic.co/elasticsearch/elasticsearch:7.3.0

MAINTAINER [email protected]

COPY run.sh /
RUN chmod 755 /run.sh

CMD ["/run.sh"]

猜你喜欢

转载自blog.csdn.net/xzk9381/article/details/109570974