ES Master 和data节点分别的职责

目录

Elasticsearch Master 节点

职责

特点

Elasticsearch Data 节点

职责

特点

通俗解释


 

Elasticsearch Master 节点

职责

  1. 集群管理: Master 节点负责整个集群的管理工作,包括集群的配置和控制。
  2. 元数据管理: 维护集群的状态,包括索引的创建、删除和映射变更。
  3. 节点管理: 负责节点加入或离开集群时的处理。
  4. 分片分配: 管理分片的分配和重新分配,确保数据均匀分布在集群中。

特点

  • Master 节点不参与实际的数据存储和查询工作,其主要职责是管理和维护集群的健康和稳定性。
  • 集群中可以有多个备选的 Master 节点,但同时只有一个节点承担 Master 角色。

Elasticsearch Data 节点

职责

  1. 数据存储: 存储实际的索引数据,也就是文档数据。
  2. 数据读写: 处理客户端的数据查询和索引请求。
  3. 分片处理: 每个数据节点负责维护分配给它的分片,并执行分片相关的操作,如搜索和聚合。

特点

  • Data 节点的硬件配置通常要高于其他节点,因为它们需要处理存储和计算密集型的任务。
  • 集群中可以有多个数据节点,以提供高可用性和负载均衡。

通俗解释

     在Elasticsearch中,Master节点就像是一个管理员,负责监督和指挥整个集群的运作,而Data节点则像是工人,负责实际的数据处理工作。Master节点确保集群运行顺畅,而Data节点则保证数据的存储和处理。两者合作确保了Elasticsearch集群的高效和稳定运行。

 

部署 Elasticsearch 集群需要以下步骤: 1. 准备 Kubernetes 集群 首先,需要准备一个可用的 Kubernetes 集群,并且确认 kubectl 命令行工具已经安装并配置好了。 2. 创建 Persistent Volume 在 Kubernetes 中,需要使用 Persistent Volume(PV)来存储 Elasticsearch 节点的数据。可以使用以下 YAML 文件创建 PV: ```yaml apiVersion: v1 kind: PersistentVolume metadata: name: elasticsearch-pv-1 spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: /data/es/data-1 ``` 注意:hostPath 可以换成云存储等其他存储方式。 3. 创建 Persistent Volume Claim 接着,需要定义 Persistent Volume Claim(PVC),它将会请求 KubernetesElasticsearch 分配 PV。 ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: elasticsearch-pvc-1 spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi selector: matchLabels: pv-name: elasticsearch-pv-1 ``` 4. 部署 Elasticsearch Master 节点 创建一个 StatefulSet 资源,其中定义一个或多个 Elasticsearch Master 节点。 ```yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: elasticsearch-master spec: serviceName: elasticsearch-master replicas: 3 selector: matchLabels: role: master template: metadata: labels: role: master spec: containers: - name: elasticsearch image: elasticsearch:7.5.1 ports: - containerPort: 9300 name: transport - containerPort: 9200 name: http volumeMounts: - name: elasticsearch-data mountPath: /usr/share/elasticsearch/data volumes: - name: elasticsearch-data persistentVolumeClaim: claimName: elasticsearch-pvc-1 ``` 5. 部署 Elasticsearch Data 节点 创建一个 StatefulSet 资源,其中定义一个或多个 Elasticsearch Data 节点。 ```yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: elasticsearch-data spec: serviceName: elasticsearch-data replicas: 3 selector: matchLabels: role: data template: metadata: labels: role: data spec: containers: - name: elasticsearch image: elasticsearch:7.5.1 ports: - containerPort: 9300 name: transport - containerPort: 9200 name: http volumeMounts: - name: elasticsearch-data mountPath: /usr/share/elasticsearch/data volumes: - name: elasticsearch-data persistentVolumeClaim: claimName: elasticsearch-pvc-1 ``` 6. 部署 Elasticsearch 集群 最后,可以创建一个 Service 资源,用于将 Elasticsearch Master Data 节点组合成一个集群。 ```yaml apiVersion: v1 kind: Service metadata: name: elasticsearch spec: selector: role: master ports: - port: 9200 name: http - port: 9300 name: transport clusterIP: None ``` 以上就是在 Kubernetes 中部署 Elasticsearch 集群的步骤。需要注意的是,在生产环境中,需要进行更加完善的配置部署,才能保证 Elasticsearch 集群的高可用稳定性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值