在Kubernetes上安装Grafana以进行集群监控
Grafana是一个开源仪表板工具,可用于显示不同系统的指标。它可以与Prometheus,InfluxDB Stackdriver等各种数据源集成。
Grafana将时间序列数据用于基础架构和应用程序(例如磁盘I/O利用率,CPU和内存),这些数据首先被加载到Prometheus等分析工具中,然后进行分析。
这篇文章解释了如何使用Prometheus作为数据分析工具在Kubernetes上设置Grafana仪表板。
以下步骤将指导我们如何在现有Kubernetes集群上配置可用的Grafana实例。
安装好Kubernetes集群并使其正常运行后,请继续执行以下配置步骤。
1:在Kubernetes中部署Grafana服务
为部署创建新项目:
$kubectl create namespace monitoring namespace/monitoring created
将Grafana服务部署到我们刚刚创建的名称空间中。
$kubectl create deployment grafana -n monitoring --image=docker.io/grafana/grafana:latest deployment.apps/grafana created
这会在集群上部署Grafana并启动它。几秒钟后,我们可以使用以下方法检查镜像是否已部署:
$kubectl get deployments -n monitoring
输出将类似于以下内容:
$kubectl get deployments -n monitoring NAME READY UP-TO-DATE AVAILABLE AGE grafana 1/1 1 1 21s
2.使用NodePort公开Grafana服务
我们必须通过NodePort公开grafana服务,因为当前只能使用ClusterIP进行访问。
通过以下命令使用NodePort服务公开grafana部署:
$kubectl -n monitoring expose deployment grafana --type="NodePort" --port 3000 service/grafana exposed
这将创建服务并公开端口3000(默认的grafana端口)。
使用以下命令检查服务是否已公开:
$kubectl get service -n monitoring NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE grafana NodePort 10.96.174.231 <none> 3000:32150/TCP 9s
我们使用describe service
命令来查找哪个端口已经对外公开。
theitroad@localhost:~# kubectl describe service grafana Name: grafana Namespace: default Labels: app=grafana Annotations: <none> Selector: app=grafana Type: NodePort IP: 10.152.183.50 Port: <unset> 3000/TCP TargetPort: 3000/TCP NodePort: <unset> 32150/TCP Endpoints: 10.1.196.7:3000 Session Affinity: None External Traffic Policy: Cluster Events: <none>
Grafana现在暴露于端口32150,并且可以通过该端口从外部进行访问。
3.访问Grafana Web仪表板
我们现在可以使用http://<master_IP>:NodePort在浏览器中打开Grafana仪表板,例如:
http://172.21.200.11:32150
这将打开一个Grafana登录页面。 Grafana的默认用户名和密码为admin/admin。
首次登录时,系统会要求我们更改密码。
我们需要测试Grafana实例,以了解它是否按预期工作。最简单的测试方法是使用TestData DB方法,该方法提供可视化数据的示例。
单击"创建第一个数据源"选项卡,然后选择" TestData DB"。单击保存并进行测试,如下所示。
单击创建新的仪表板以创建仪表板。
要查看具有可视化数据的面板,请单击热图或者图形
有许多用于各种数据源的预构建Grafana模板。这些模板可用于创建用户友好的仪表板,这些仪表板具有适合我们环境的预构建功能。
我们可以从此处签出模板。