Istio网格中的分布式跟踪

全局配置

  部署网格时,通过IstioOperator配置中的MeshConfig段进行全局配置

  部署网格后,通过IstioOperator配置中的MeshConfig段进行全局配置

  meshConfig:
    enableTracing: true          #启用tracing机制
    defaultConfig:
      tracing:
        sampling: 100.0          #采样率,取值范围为(0.0-100.0)
        max_path_tag_length: 256 #路径标签最大长度
 

工作负载级配置

  在工作负载的podTemplate资源上,通过“proxy.istio.io/config”注解进行配置

apiVersion: apps/v1
kind: Deployment metadata:
  name: ... 
spec:
  ...
  template:
    metadata: 
    ...
      annotations:             # 使用特定的注解
        proxy.istio.io/config: |
          tracing: # 与tracing相关的配置 
            sampling: 10
        ... 
    spec:
      ...
 通过Telemetry API(Telemetry CR资源)定义
  在root namespace(例如istio-system)中启用网格全局追踪
  为特定的namespace启用追踪功能
  为namespace中特定的workload启用追踪功能
    一个workload仅可被一个Telemetry资源选定
    一个名称空间内,仅可使用一个未附带selector的Telemetry资源

网格全局配置示例

apiVersion: telemetry.istio.io/v1alpha1 
kind: Telemetry
  metadata:
    name: mesh-default
    namespace: istio-system 
spec:
  tracing:
  - providers:
    - name: localtrace
    customTags:
      foo: 
        literal:
          value: bar 
    randomSamplingPercentage: 100

 工作负载级配置示例

apiVersion: telemetry.istio.io/v1alpha1 
kind: Telemetry
metadata:
  name: workload-override
  namespace: default 
spec:
  selector: 
    matchLabels:
      service.istio.io/canonical-name: frontend 
  tracing:
  - disableSpanReporting: true
名称空间级配置示例
apiVersion: telemetry.istio.io/v1alpha1 
kind: Telemetry
metadata:
  name: namespace-override
  namespace: default 
spec:
  tracing:
  - customTags:
    userId: 
      header:
        name: userId 
        defaultValue: unknown

 

posted @ 2022-11-29 19:11  Maniana  阅读(129)  评论(0编辑  收藏  举报