在k8s上安装并运行ElasticSearch的方法及步骤
零、前言
测试环境中原来ElasticSearch部署在k8s服务集群中,但最近发现k8s所在的机器内存已经吃紧,且CPU一直满负荷跑的状态。经过组内的讨论,将ElasticSearch独立部署,故此记录。
一、ElasticSearch的安装
使用docker-compose实现安装,部署在虚拟机192.168.100.158上,具体docker-compose配置如下:
version: '3'
services:
elasticsearch:
image: elasticsearch:7.4.2
container_name: elasticsearch
environment:
- "discovery.type: single-node" #环境变量:运行模式 单例
- "ES_JAVA_OPTS=-Xms4g -Xmx4g"
ports:
- "9200:9200"
- "9300:9300"
volumes:
- /data/elasticsearch:/usr/share/elasticsearch/data
kibana:
image: kibana:7.4.2
container_name: kibana
environment:
ELASTICSEARCH_HOST: "192.168.100.158:9200"
I18N_LOCALE: "zh-CN"
ports:
- "80:5601"
二、运行
在docker-compose的目录下,运行下面命令。
docker-compose up -d
三、查看容器是否已经启动
运行命令以后,我们通过以下命令查看容器是否成功启动。
docker-compose ps
经过命令,确认成功启动。
四、验证是否安装成功
浏览器中输入:http://192.168.100.158:9200/ 验证elasticsearch是否安装成功
浏览器中输入:http://192.168.100.158:5601/ 验证kibana是否安装成功
五、其他配置
我们是内网,向it管理员申请http://logcenter.xxx.cn/与192.168.100.158:80的DNS配置
- 在rancher中配置服务发现,添加DNS记录实现elasticsearch-master与192.168.100.158的映射关系
- 修改fluentd-aggregator-ingress指向新的ElasticSearch服务
- 修改fluentd-aggregator-k8s指向新的ElasticSearch服务
六、常见问题
6.1 单ElasticSearch服务下,集群状态为yellow
单机情况下是不需要设置副本分区数的,调整副本分区为0
// 重置副本分区为0
PUT _settings
{
"index" : {
"number_of_replicas":0
}
}
// 查看集群状态
GET _cluster/health
至此我们整个部署工作完成。