在 Kubernetes 上部署 Grafana 所涉及的方法与在 VM 中部署它的方法基本相同,因此我们只关注操作员应该注意的一些细节。相对于代码存储库根路径,可以在以下路径中找到用于启动 Grafana 和 Prometheus 并在我们的 Kubernetes 测试环境中运行的 Kubernetes 清单:
由于 Kubernetes 部署过程与前几章相同(引导 Prometheus Operator,使用 Operator 部署 Prometheus,部署 exporter 及其各自的 ServiceMonitors),此处不再赘述。如果您需要更多上下文,请随时查看前面章节中的测试环境演练,例如 第 7 章,Prometheus 查询语言– PromQL。
以下步骤将确保创建一个新的 Kubernetes 环境,并提供所有必需的软件,以便我们可以专注于 Grafana 组件。
- Validate that no other environment is running:
- Start an empty Kubernetes environment, by using the following command:
- Add the Prometheus Operator components and follow its deployment, as follows:
- Add the new Prometheus cluster, ensuring that it's successful, by using the following command:
- Add all the targets to Prometheus and list them using the following command:
现在 Kubernetes 环境正在运行,我们可以继续进行 Grafana 特定的配置。与以 VM 为中心的测试环境类似,我们不仅需要配置 Grafana 本身,还需要配置数据源和仪表板。
对于数据源,由于我们将来可能希望添加诸如身份验证之类的敏感信息,因此我们将使用 Kubernetes 机密。这也意味着应该有一个 ServiceAccount 来访问该机密。
我们可以通过应用以下清单来创建 ServiceAccount:
由于我们使用的是机密,因此需要将数据源配置编码为 base64。至于供应配置本身,它与 VM 部署中的相同,但我们将用服务管理的 Kubernetes 等效项替换 Prometheus URL。这是编码前的片段:
应用以下清单后,将提供具有所需 Grafana 数据源的新密钥:
现在,是时候将我们的示例仪表板添加到 Grafana 了。为了实现这一点,我们需要为 Grafana 提供一个配置配置,告诉它在哪里查找仪表板定义,然后将我们的示例仪表板定义放在该路径中。这些将作为 ConfigMaps 用于 Grafana 部署。显示仪表板位置配置配置的相关片段如下:
另一个 ConfigMap 包含我们的示例仪表板,如下所示:
两个清单都可以使用以下命令部署在 Kubernetes 测试环境中:
现在是部署 Grafana 并利用前面所有配置的时候了,如下所示:
此部署将所有内容结合在一起:它将数据源的机密、仪表板配置和仪表板 ConfigMaps 安装在与 VM 测试环境相同的位置,如下所示:
您可以使用以下说明跟踪部署状态:
最后,我们可以添加一个服务,以便我们可以访问新启动的 Grafana 实例,以及一个 ServiceMonitor,以便 Prometheus Operator 配置 Prometheus 以收集指标:
您现在可以使用以下命令访问 Grafana 界面:
完成测试后,您可以通过发出以下命令删除此基于 Kubernetes 的测试环境:
此设置让您快速了解如何在 Kubernetes 上将 Grafana 与 Prometheus 集成。它与 VM 测试环境并没有太大的不同,但是这里显示的详细信息有望使您不必在其他地方搜索有关如何完成它的信息。