> Kubernetes 本身命令行界面去管理集群内的资源对象,例如有需求想查看某一些Pod在任意的时间段性能的使用情况,如何通过 Elastic Stack 进行一站式的数据采集,数据清洗,数据落地,数据可视化,让数据发挥真正的价值呢?
#### 架构设计
涉及到 Elastic Stack 中 Metricbeat 是用于采集 Kubernetes 相关的性能指标, Elasticsearch 是用于对于数据落地存储和搜索的引擎, Kibana 是用于对数据可视化的工具。
首先 Kubernetes 需要部署 Kuberentes State Metric 以支持 Metricbeat 对响应的 API 进行数据采集。
#### 实施方法
下载官方的模板在本地文件系统
wget https://raw.githubusercontent.com/elastic/beats/7.9/deploy/kubernetes/metricbeat-kubernetes.yaml
修改 ConfigMap 中指定的 Elasticsearch 主机相关的配置,并添加 Kibana的主机
output.elasticsearch: hosts: ['http://elasticsearch:9200'] username: elasticpassword: xxxsetup.kibana: host: "kibana:5601"
应用 YAML 配置创建对应的 Kubernetes 资源
kubectl apply -f metricbeat-kubernetes.yaml
进入 Pod 修改配置
kubectl exec -it metricbeat-xxx /bin/bash
设置 Metricbeat 创建 Kibana上的 Index Pattern 和 Dashboard
metricbeat setup
#### 可视化展示
通过 Kibana 中的 Dashboard 功能
展示目前 Kubernetes 中的资源对象运行情况