Elasticsearch + Logstash + Kibana 日志栈的部署记录,从单机 Docker 到 k8s。
- 单节点 Docker 部署 — sebp/elk 一体化镜像、安全认证、license、shard 上限坑
- k8s 上的两种部署方案 — DaemonSet 一体化 vs StatefulSet+PV 组件分离
Elasticsearch + Logstash + Kibana 日志栈的部署记录,从单机 Docker 到 k8s。
用 sebp/elk 一体化镜像在单机上把 Elasticsearch + Logstash + Kibana 跑起来,再补上安全认证、license 和踩过的两个坑。
镜像版本 sebp/elk:8.6.2。涉及的端口:
| 端口 | 服务 |
|---|---|
| 9200 | Elasticsearch API |
| 9300 | ES 节点间传输 |
| 5601 | Kibana 网页 |
| 5044 | Logstash beats |
| 8080 | Logstash https |
| 8082 | Logstash http |
| 9600 | Logstash API |
在 k8s 上跑 ELK 试过两条路:一是用 sebp/elk 一体化镜像跑 DaemonSet,简单但三个组件耦合在一个 Pod;二是 Elasticsearch / Logstash / Kibana 各自独立部署,ES 用 StatefulSet + PV 持久化,更接近生产。下面分别记。
镜像 sebp/elk:8.6.2。三个组件在同一 Pod 里,适合快速起一套。
ES 启动用户是 elasticsearch,直接挂载 elasticsearch.yml 会有权限问题,所以改配置得重新 build 镜像再推到私有仓库: