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 中文手册持续修正更新中:
尽管 linkerd-viz 扩展带有自己的 Prometheus 实例,
但在某些情况下,由于各种原因使用外部实例更有意义。
请注意,此方法要求您在 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 提供支持。
prometheusUrl 字段为您提供了一个位置,
所有这些组件都可以通过该位置配置为外部 Prometheus URL。
这可以通过 CLI 和 Helm 实现。
CLI
这可以通过将具有上述字段的文件传递给 values 标志来完成,
该标志可通过 linkerd viz install 命令获得。
prometheusUrl: existing-prometheus.xyz:9090
一旦应用,此配置在安装中不会持久化(persistent)。
在重新安装、升级等过程中,用户必须再次传递相同的信息。
当使用外部 Prometheus 并配置 prometheusUrl 字段时,
Linkerd 的 Prometheus 仍将包含在安装中。
如果您想禁用它,请确保同时包含以下配置:
prometheus:
  enabled: false
Helm
使用 Helm 时,可以通过 values.yaml 应用相同的配置。
应用后,Helm 会确保配置在升级过程中保持不变。
我是为少
微信:uuhells123
公众号:黑客下午茶
加我微信(互相学习交流),关注公众号(获取更多学习资料~)
Linkerd 2.10(Step by Step)—4. 如何配置外部 Prometheus 实例的更多相关文章
- Linkerd 2.10(Step by Step)—多集群通信
		Linkerd 2.10 系列 快速上手 Linkerd v2.10 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traef ... 
- Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用
		Linkerd 2.10 系列 快速上手 Linkerd v2.10 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traef ... 
- Linkerd 2.10(Step by Step)—使用 Debug Sidecar,注入调试容器来捕获网络数据包
		Linkerd 2.10 系列 快速上手 Linkerd v2.10 Service Mesh 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 部署 ... 
- Linkerd 2.10(Step by Step)—设置服务配置文件
		Linkerd 2.10 系列 快速上手 Linkerd v2.10 Service Mesh 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 部署 ... 
- Linkerd 2.10(Step by Step)—2. 自动化的金丝雀发布
		通过结合 Linkerd 和 Flagger 来根据服务指标自动金丝雀(canary)发布,从而降低部署风险. Linkerd 2.10 中文手册持续修正更新中: https://linkerd.ha ... 
- Linkerd 2.10(Step by Step)—使用 Kustomize 自定义 Linkerd 的配置
		Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ... 
- Linkerd 2.10(Step by Step)—控制平面调试端点
		Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ... 
- Linkerd 2.10(Step by Step)—配置超时
		Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ... 
- Linkerd 2.10(Step by Step)—配置重试
		Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ... 
随机推荐
- Docker用Dockerfile定制镜像
			用Dockerfile定制镜像 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那之前提示的无法重复的问题 ... 
- Django(5)django配置信息
			前言 Django的配置文件settings.py用于配置整个网站的环境和功能,核心配置必须有项目路径.密钥配置.域名访问权限.App列表.中间件.资源文件.模板配置.数据库的连接方式 基本配置信息 ... 
- VS“无法查找或打开PDB文件”解决方法
			``#运行时报错提示 "温度柱状图.exe"(Win32): 已加载"C:\Windows\SysWOW64\rpcrt4.dll".无法查找或打开 PDB 文 ... 
- 封装了一些sqlsugar的常用方法 用来动态切换数据库和依赖注入 支持泛型
			接口: /// <summary> /// 数据库操作 /// </summary> public interface IDAL_Services { /// <summ ... 
- 图扑软件正式加入腾讯智维生态发展计划,智能 IDC 开启数字经济新征程
			4 月 23 日,主题为<智汇科技,维新至善>的腾讯数据中心智维技术研讨会在深圳胜利召开,发布了腾讯智维 2.0 技术体系,深度揭秘了智维 2.0 新产品战略和技术规划.图扑软件(High ... 
- C++ primer plus读书笔记——第3章 处理数据
			第3章 处理数据 1. C++对于变量名称的长度没有限制,ANSI C只保证名称中的前63个字符有意义(前63个字符相同的名称被认为是相同的,即使第64个字符不同). 2. 对类型名(int)使用si ... 
- 24.Qt Quick QML-Canvas和Context2D详解
			1.Canvas介绍Canvas是一个允许绘制直线和曲线.简单和复杂的形状.图形和引用的图形图像.它还可以添加文本.颜色.阴影.渐变和图案,并执行低级别像素操作.Canvas输出可以另存为图像文件或序 ... 
- [bug] java.text.ParseException: Unparseable date: "2020-01-01"
			原因 输入的字符串应和目标字符串格式长度都一样 如返回的字符串是:2019-11-11,但解析的格式是:yyyy-MM-dd HH:mm:ss,导致错误 参考 https://blog.csdn.n ... 
- [Web] 计算机网络课程(一)
			局域网 覆盖范围小,自己花钱买设备,自己单位维护 线长不超过100米,带宽固定(10M 100M 1000M) 星形结构,上层交换机口少,但每个口带宽高 广域网 距离远 如在家通过ADSL拨号上网,或 ... 
- 小米华为vivooppo手机记录隐私证据查询
			1.在拨号界面输入:*#*#4636#*#* 2.在输入代码之后 手机会自动跳转到下面这个页面 就可以查看她到底拿着手机在干嘛 2 输入下面代码可以检测小米手机的各种信息 *#*#64663#*#* 
