ElasticSearch 数据塞满如何操作?¶
当 ElasticSearch 内存占满时,可以选择扩容或者删除数据来解决:
你可以运行如下命令查看 ES 节点的资源占比。
kubectl get pod -n mcamel-system | grep common-es-cluster-masters-es | awk '{print $1}' | xargs -I {} kubectl exec {} -n mcamel-system -c elasticsearch -- df -h | grep /usr/share/elasticsearch/data
扩容¶
在主机节点还有资源的情况下, 扩容 是一种常见的方案,也就是提高 PVC 的容量。
-
先运行以下命令获取 es-data-0 节点的 PVC 配置,请以实际的环境的 PVC 为准。
-
然后修改以下
storage
字段(需要使用的存储类 SC 可以扩容)- 这个数值需调整
删除数据¶
当 ElasticSearch 内存占满时,你还可以删除 index 数据释放资源。
你可以参考以下步骤进入 Kibana 页面,手动执行删除操作。
-
首先明确 Kibana Pod 是否存在并且正常运行:
-
若不存在,则手动设置 replica 为 1,并且等待服务正常运行;若存在,则跳过该步骤
-
修改 Kibana 的 Service 为 NodePort 暴露访问方式
kubectl patch svc -n mcamel-system mcamel-common-es-cluster-masters-kb-http -p '{"spec":{"type":"NodePort"}}' # 修改完成后查看 NodePort。此例的端口为 30128,则访问方式为 https://{集群中的节点IP}:30128 [root@insight-master1 ~]# kubectl get svc -n mcamel-system |grep mcamel-common-es-cluster-masters-kb-http mcamel-common-es-cluster-masters-kb-http NodePort 10.233.51.174 <none> 5601:30128/TCP 108m
-
获取 ElasticSearch 的 Secret,用于登录 Kibana(用户名为 elastic)
-
进入 Kibana -> Stack Management -> Index Management ,打开 Include hidden indices 选项,即可见所有的 index。 根据 index 的序号大小,保留序号大的 index,删除序号小的 index。