上一篇文章讲述了k8s安装ES集群的方式,本章接着讲解K8S安装Kibana
Kibana安装
ElasticSearch 集群安装完成后,接着我们可以来部署 Kibana,这是 ElasticSearch 的数据可视化工具,它提供了管理 ElasticSearch 集群和可视化数据的各种功能。
同样首先我们使用 ConfigMap 对象来提供一个文件文件,其中包括对 ElasticSearch 的访问(主机、用户名和密码),这些都是通过环境变量配置的。对应的资源清单文件如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
apiVersion: v1 kind: ConfigMap metadata: name: kibana-config labels: app: kibana data: kibana.yml: |- server.host: 0.0.0.0
elasticsearch: hosts: ${ELASTICSEARCH_HOSTS} username: ${ELASTICSEARCH_USER} password: ${ELASTICSEARCH_PASSWORD}
|
然后通过一个 NodePort 类型的服务来暴露 Kibana 服务:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
apiVersion: v1 kind: Service metadata: name: kibana labels: app: kibana spec: type: NodePort ports: - port: 5601 name: webinterface selector: app: kibana
|
最后通过 Deployment 来部署 Kibana 服务,由于需要通过环境变量提供密码,这里我们使用上面创建的 Secret 对象来引用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| apiVersion: apps/v1 kind: Deployment metadata: namespace: elastic name: kibana labels: app: kibana spec: selector: matchLabels: app: kibana template: metadata: labels: app: kibana spec: containers: - name: kibana image: registry.cn-chengdu.aliyuncs.com/zhouqi-kubernetes/kibana:7.6.1 ports: - containerPort: 5601 name: webinterface env: - name: ELASTICSEARCH_HOSTS value: "http://elasticsearch-client.kube-system.svc.cluster.local:9200" - name: ELASTICSEARCH_USER value: "elastic" - name: ELASTICSEARCH_PASSWORD valueFrom: secretKeyRef: name: elasticsearch-pw-elastic key: password volumeMounts: - name: config mountPath: /usr/share/kibana/config/kibana.yml readOnly: true subPath: kibana.yml volumes: - name: config configMap: name: kibana-config
|
如下图所示,使用上面我们创建的 Secret 对象的 elastic 用户和生成的密码即可登录:

登录成功后会自动跳转到 Kibana 首页:

同样也可以自己创建一个新的超级用户,Management → Stack Management → Create User:

使用新的用户名和密码,选择 superuser 这个角色来创建新的用户:

创建成功后就可以使用上面新建的用户登录 Kibana,最后还可以通过 Management → Stack Monitoring 页面查看整个集群的健康状态:

到这里我们就安装成功了 ElasticSearch 与 Kibana,它们将为我们来存储和可视化我们的应用数据(监控指标、日志和追踪)服务。
在下一篇文章中,我们将来学习如何安装和配置Logstash与Filebeat,通过 Filebeat 来收集指标监控 Spring Boot中的日志。