Linkerd 2.10(Step by Step)—4. 如何配置外部 Prometheus 实例

Linkerd 2.10(Step by Step)—4. 如何配置外部 Prometheus 实例

Linkerd 2.10 系列

  • 快速上手 Linkerd v2 Service Mesh(服务网格)
  • 腾讯云 K8S 集群实战 Service Mesh—Linkerd2 & Traefik2 部署 emojivoto 应用
  • 详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代
  • Linkerd 2.10(Step by Step)—1. 将您的服务添加到 Linkerd
  • Linkerd 2.10(Step by Step)—2. 自动化的金丝雀发布
  • Linkerd 2.10(Step by Step)—3. 自动轮换控制平面 TLS 与 Webhook TLS 凭证

Linkerd 2.10 中文手册持续修正更新中:

  • https://linkerd.hacker-linner.com

尽管 linkerd-viz 扩展带有自己的 Prometheus 实例,

但在某些情况下,由于各种原因使用外部实例更有意义。文章来源地址https://www.yii666.com/article/764390.html

请注意,此方法要求您在 Prometheus 配置中手动添加和维护额外的抓取配置。

本教程展示了如何配置外部 Prometheus 实例,

以用户和 Linkerd 控制平面组件(如 web 等)均

可使用的格式抓取控制平面和代理的指标。

这里有两个重要的点需要解决。

  • 配置外部 Prometheus 实例以获取 Linkerd 指标。
  • 配置 linkerd-viz 扩展以使用该 Prometheus

Prometheus 抓取配置

以下抓取配置必须应用于外部 Prometheus 实例。

下面的抓取配置是 linkerd-prometheus

抓取配置的一个子集。

在应用之前,重要的是将模板值(templated values)(存在于 {{}} 中)替

换为直接值(direct values),以使以下配置正常工作。

    - job_name: 'linkerd-controller'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- '{{.Values.linkerdNamespace}}'
- '{{.Values.namespace}}'
relabel_configs:
- source_labels:
- __meta_kubernetes_pod_container_port_name
action: keep
regex: admin-http
- source_labels: [__meta_kubernetes_pod_container_name]
action: replace
target_label: component - job_name: 'linkerd-service-mirror'
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels:
- __meta_kubernetes_pod_label_linkerd_io_control_plane_component
- __meta_kubernetes_pod_container_port_name
action: keep
regex: linkerd-service-mirror;admin-http$
- source_labels: [__meta_kubernetes_pod_container_name]
action: replace
target_label: component - job_name: 'linkerd-proxy'
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels:
- __meta_kubernetes_pod_container_name
- __meta_kubernetes_pod_container_port_name
- __meta_kubernetes_pod_label_linkerd_io_control_plane_ns
action: keep
regex: ^{{default .Values.proxyContainerName "linkerd-proxy" .Values.proxyContainerName}};linkerd-admin;{{.Values.linkerdNamespace}}$
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: pod
# special case k8s' "job" label, to not interfere with prometheus' "job"
# label
# __meta_kubernetes_pod_label_linkerd_io_proxy_job=foo =>
# k8s_job=foo
- source_labels: [__meta_kubernetes_pod_label_linkerd_io_proxy_job]
action: replace
target_label: k8s_job
# drop __meta_kubernetes_pod_label_linkerd_io_proxy_job
- action: labeldrop
regex: __meta_kubernetes_pod_label_linkerd_io_proxy_job
# __meta_kubernetes_pod_label_linkerd_io_proxy_deployment=foo =>
# deployment=foo
- action: labelmap
regex: __meta_kubernetes_pod_label_linkerd_io_proxy_(.+)
# drop all labels that we just made copies of in the previous labelmap
- action: labeldrop
regex: __meta_kubernetes_pod_label_linkerd_io_proxy_(.+)
# __meta_kubernetes_pod_label_linkerd_io_foo=bar =>
# foo=bar
- action: labelmap
regex: __meta_kubernetes_pod_label_linkerd_io_(.+)
# Copy all pod labels to tmp labels
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
replacement: __tmp_pod_label_$1
# Take `linkerd_io_` prefixed labels and copy them without the prefix
- action: labelmap
regex: __tmp_pod_label_linkerd_io_(.+)
replacement: __tmp_pod_label_$1
# Drop the `linkerd_io_` originals
- action: labeldrop
regex: __tmp_pod_label_linkerd_io_(.+)
# Copy tmp labels into real labels
- action: labelmap
regex: __tmp_pod_label_(.+)

内置 prometheus 的运行配置可以作为参考。

kubectl -n linkerd-viz  get configmap prometheus-config -o yaml

Linkerd-Viz 扩展配置

Linkerd 的可视化扩展组件(如 metrics-api 等)依赖

Prometheus 实例来为仪表板和 CLI 提供支持。文章来源地址:https://www.yii666.com/article/764390.html

prometheusUrl 字段为您提供了一个位置,

所有这些组件都可以通过该位置配置为外部 Prometheus URL

这可以通过 CLIHelm 实现。

CLI

这可以通过将具有上述字段的文件传递给 values 标志来完成,

该标志可通过 linkerd viz install 命令获得。

prometheusUrl: existing-prometheus.xyz:9090

一旦应用,此配置在安装中不会持久化(persistent)。

在重新安装、升级等过程中,用户必须再次传递相同的信息。网址:yii666.com

当使用外部 Prometheus 并配置 prometheusUrl 字段时,

LinkerdPrometheus 仍将包含在安装中。

如果您想禁用它,请确保同时包含以下配置:网址:yii666.com<

prometheus:
enabled: false

Helm

使用 Helm 时,可以通过 values.yaml 应用相同的配置。

应用后,Helm 会确保配置在升级过程中保持不变。文章地址https://www.yii666.com/article/764390.html

我是为少
微信:uuhells123
公众号:黑客下午茶
加我微信(互相学习交流),关注公众号(获取更多学习资料~)

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png