最近因为客户项目需要,所以专门调研了Elasticsearch的这些不常用的重要功能,并整理成文档,现在分享出来,希望对有这方面需求的同行有些帮助
由于内容较多,一共分为三部分分享
- Elasticsearch多主、多数据、多协调、多冷节点节点说明及配置
- Elasticsearch灾备同步方案设计
- Elasticsearch灾备同步方案设计验证
- 搭建两套ElasticSearch集群,k8s-dev1作为备份集群、k8s-dev4作为还原集群
- 共享目录需要设置读写权限及PV、PVC的多节点读写配置
- 在备份集群添加一些备份数据
curl -XPUT 'http://10.10.5.8:30011/researchdata/_doc/4' -H 'Content-Type:application/json'
-d '{"title":"research_3","datetime":"2020-05-28 16:24:22"}'
- 创建备份仓库
- curl -XPOST 'http://10.10.5.8:30011/_snapshot/backup' -H 'Content-Type:application/json' -d '{"type":"fs","settings":{"location":"/opt/share/es_snap"}}'
- 创建备份镜像
- curl -XPUT 'http://10.10.5.8:30011/_snapshot/backup/snapshot_20220530001?wait_for_completion=true' -H 'Content-Type:application/json' -d '{ "indices": "researchdata", "ignore_unavailable": true, "include_global_state": false }'
- 查看镜像数据文件
- 创建还原仓库
- curl -XPOST 'http://10.10.6.15:30012/_snapshot/backup' -H 'Content-Type:application/json' -d '{"type":"fs","settings":{"location":"/opt/share/es_snap"}}'
- 还原镜像数据
- curl -XPOST 'http://10.10.6.15:30012/_snapshot/backup/snapshot_20220530001/_restore?wait_for_completion=true' -H 'Content-Type:application/json' -d '{
"indices": "researchdata",
"ignore_unavailable": true,
"include_aliases": false
}'
- snapshot_20220530001:镜像名称
- indices:还原的索引
- k8s-dev4还原集群查看数据
- curl -XGET 'http://10.10.6.15:30012/researchdata/_doc/_search?pretty=true' -H 'Content-Type:application/json'
- 注意事项
- 镜像文件可以创建多次,也可以用定时任务间隔性的创建镜像
- 多次创建镜像相当于增量创建,每次创建都会检查数据是否已经存在,只会把改动的数据创建成镜像文件
- 在镜像还原时,如果需要还原的索引应经存在,建议删除或者重命名索引
- 删除索引
- curl -XDELETE http://10.10.6.15:30012/researchdata
- 共享文件夹需要多个集群都能访问及读写权限
- ElasticSearch对资源要求苛刻,如果资源不够直接导致容器重复重启,可以通过配置限制
spec:
containers:
- name: elasticsearch
image: abcsys.cn:5000/public/elasticsearch:7.14.0
volumeMounts:
- mountPath: /opt/share/es_snap
name: elasticsearch-data
env:
- name: "path.repo"
value: "/opt/share/es_snap"
- name: "http.cors.allow-origin"
value: "*"
- name: ES_JAVA_OPTS
value: "-Xms1024m -Xmx1024m"
- name: network.host
value: "0.0.0.0"
resources:
limits:
cpu: '1'
memory: 2Gi
requests:
cpu: 500m
memory: 1Gi
代码语言:javascript复制curl -XDELETE http://10.10.6.15:30012/_snapshot/backup
代码语言:javascript复制path.repo: /opt/share/es_snap