k8s部署elasticsearch及kibana

本文档详细介绍了如何在Kubernetes(k8s)环境中使用Elastic官方的Helm charts来部署Elasticsearch和Kibana的7.16版本。首先,通过执行特定命令生成Elasticsearch的密码secret,然后配置`value.yaml`启用安全功能,包括SSL。接着部署Elasticsearch,并调整antiAffinity以适应单节点k8s集群。最后,配置Kibana的`value.yaml`文件,设置Elasticsearch的连接信息和密码,并部署Kibana。成功部署后,检查Pod状态,确认Elasticsearch和Kibana运行正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


elastic官方提供了efk相关charts以供我们使用k8s部署efk。

此版本为7.16分支。如需开启SSL功能,可移步这里=>Helm部署ES及Kibana(默认开启SSL),且步骤精简了一些。

elastic charts:https://github.com/elastic/helm-charts.git

切换至7.16分支

git checkout 7.16

目录结构如下:

$ cd helm-charts && tree -L 1
.
├── apm-server
├── elasticsearch
├── filebeat
├── helpers
├── kibana
├── LICENSE
├── logstash
├── Makefile
├── metricbeat
├── README.md
└── requirements.txt

Elasticsearch

生成密码相关secret

elasticsearch/examples/security目录下可以执行make secrets命令来创建elastic密码相关的secret。执行前可以通过定义环境变量ELASTIC_PASSWORD来指定自己的密码。

$ cd helm-charts/elasticsearch/examples/security
$ export ELASTIC_PASSWORD=[your password]
$ make secret
value.yaml

es开启密码功能需要指定xpack.security.enabledtrue ,同时也要开启 xpack.security.transport.ssl.enabledtrue。如果不开启此功能,在启动es时会报如下错误:

在这里插入图片描述

value.yaml修改如下:

esConfig:
  elasticsearch.yml: |
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12
    
    
extraEnvs:
  - name: ELASTIC_PASSWORD
    valueFrom:
      secretKeyRef:
        name: elastic-credentials
        key: password
        
secretMounts:
  - name: elastic-certificates
    secretName: elastic-certificates
    path: /usr/share/elasticsearch/config/certs
    
antiAffinity: "soft" 

因为我的k8s是单节点的,所以将antiAffinity设置为soft,不然三节点的es集群无法启动成功。

部署es
$ cd helm-charts/elasticsearch/
$ helm install elasticsearch -f value.yaml . 

Kibana

部署kibana时需要指定es的用户名和密码。

value.yaml:
elasticsearchHosts: "http://elasticsearch-master-headless.default.svc.cluster.local:9200"

extraEnvs:
  - name: "ELASTICSEARCH_USERNAME"
    value: "elastic"
  - name: "ELASTICSEARCH_PASSWORD"
    valueFrom:
      secretKeyRef:
        name: elastic-credentials
        key: password
        
service:
  type: NodePort
  port: 5601
  nodePort: "30601"
部署kibana
$ cd helm-charts/kibana
$ helm install kibana -f value.yaml .

部署结果

POD运行情况:

$ kubectl get pod
NAME                      READY   STATUS    RESTARTS   AGE
elasticsearch-master-0    1/1     Running   0          1h
elasticsearch-master-1    1/1     Running   0          1h
elasticsearch-master-2    1/1     Running   0          1h
kibana-74c748ddc4-khtvt   1/1     Running   0          1h

kibana页面:
在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_李少侠_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值