You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes v1.24.0组件追踪启用步骤及问题咨询

Kubernetes v1.24 核心组件链路追踪启用指引与OTel Collector部署建议

一、修复kube-api-server追踪无日志问题

你当前只添加了启动参数,但还缺少关键的配置文件内容和挂载步骤,按以下步骤排查:

  1. 补全tracing.conf配置文件
    Kubernetes v1.24的追踪配置遵循OpenTelemetry规范,示例配置如下(保存到节点的/etc/kubernetes/tracing.conf路径):
    apiVersion: apiserver.config.k8s.io/v1beta1
    kind: TracingConfiguration
    samplingRatePerMillion: 100000  # 采样率,此处为10%,可按需调整
    endpoint: "http://otel-collector.default.svc.cluster.local:4317"  # 指向OTel Collector的gRPC端点
    
  2. 挂载配置文件到kube-api-server Pod
    修改kube-api-server的静态Pod清单(通常位于/etc/kubernetes/manifests/kube-apiserver.yaml),添加volume和挂载配置:
    volumes:
    - name: tracing-config
      hostPath:
        path: /etc/kubernetes/tracing.conf
        type: File
    containers:
    - name: kube-apiserver
      volumeMounts:
      - name: tracing-config
        mountPath: /tmp/tracing.conf
        subPath: tracing.conf
    
  3. 调整日志级别
    默认日志级别无法显示追踪细节,给kube-api-server添加--v=4启动参数,重启后就能在日志中看到traceID相关的span信息。
  4. 验证Feature Gate生效
    查看kube-api-server启动日志,搜索APIServerTracing,确认输出显示enabled。

二、启用kube-controller-manager、kube-scheduler的追踪

核心组件的配置逻辑与api-server一致:

  • 给组件添加启动参数:
    --feature-gates=APIServerTracing=true
    --tracing-config-file=/tmp/tracing.conf
    
  • 同样修改对应组件的静态Pod清单(kube-controller-manager.yaml/kube-scheduler.yaml),挂载tracing.conf配置文件。
  • 调整日志级别到--v=4,方便排查问题。

三、OpenTelemetry Collector部署优化

按官方文档部署后,建议做以下优化:

  1. 混合部署模式
    采用DaemonSet+Deployment组合部署:
    • DaemonSet部署在每个节点,负责采集kubelet、节点级别的追踪数据
    • Deployment部署集群实例,负责接收核心组件的追踪数据
  2. 配置关键组件
    示例Collector配置片段:
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: 0.0.0.0:4317
          http:
            endpoint: 0.0.0.0:4318
    processors:
      batch:
        timeout: 10s
        send_batch_size: 1000  # 批量发送减少请求次数
    exporters:
      jaeger:  # 替换为你使用的后端(如Zipkin、Prometheus)
        endpoint: jaeger-collector.default.svc.cluster.local:14250
        tls:
          insecure: true
    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: [batch]
          exporters: [jaeger]
    
  3. 权限配置
    给Collector的ServiceAccount绑定ClusterRole,确保能访问节点资源、kubelet API等,比如添加nodes、pods的读取权限。
  4. 连通性验证
    部署后查看Collector日志,搜索otlp receiver received span,确认能接收到来自核心组件的追踪数据。

修改完所有配置后,核心组件的静态Pod会自动重启,创建测试Pod后,检查api-server日志和Collector日志,确认链路追踪正常工作。

内容的提问来源于stack exchange,提问作者Nagendra Maynattamai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:20:28