恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

K8s集群脚本K8s Deployment注入追踪运维实操

  • 首页
  • 资讯中心
  • /
  • K8s集群脚本K8s Deployment注入追踪运维实操

相关资讯

STM32驱动TFT LCD 3.5寸屏:从SPI时序到排错全解析 2026/9/2 0:32:04
Python 解释器到底是什么?一篇搞懂它的工作原理 2026/9/2 0:32:04
哈尔滨热水器维修上门-欧米到家不加热不点火漏水故障码专业检修 2026/9/2 0:27:03

最新资讯

有FAE支持的国产单片机厂家推荐:从波形日志判断支持深度
Zynq PL通过AXI读写PS端DDR完整工程:从架构到调试
无人机射频检测实战:从SDR信号采集到MATLAB/Python双语言识别
STM32+TMC5160步进电机堵转检测与精准定位实战
SODICK慢走丝操作面板模拟器开发全解析:从需求到实现
Visual Studio 2022安装配置与高效插件实战指南

今日推荐

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案
用Python搭建搞笑语音助手:从语音识别到语音合成全教程
ROS2阿克曼底盘仿真:从运动学原理到Nav2导航集成实践

本周热门

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析
数字电路时序基石:深入理解建立时间与保持时间
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

K8s集群脚本K8s Deployment注入追踪运维实操

发布时间:2026/9/2 0:32:04
K8s集群脚本K8s Deployment注入追踪运维实操 K8s集群脚本K8s Deployment注入追踪运维实操技术栈Kubernetes v1.32.13 Rocky Linux 8.6 OpenTelemetry Operator Java Agent Sidecar/Init Container操作环境 / 对接原理 / 详细步骤 / 完整命令 / 配置文件 / 验证流程 / 排错方案K8s集群脚本K8s Deployment注入追踪运维实操操作环境K8s 集群版本 v1.32.13应用部署于 default 命名空间链路追踪后端 Jaeger v1.55.x OpenTelemetry Collector部署于 observability容器运行时 Containerd 1.7.xDocker 镜像接入方式Init Container 挂载 Agent、Sidecar 采集、环境变量注入、Admission Webhook 自动注入多语言Java字节码增强、Go/Node.js/Python/.NETSDK 埋点Agent 版本OpenTelemetry Java Agent v2.1.0、SkyWalking Agent v9.7.0、Pinpoint Agent v2.5.3对接原理容器应用追踪适配是将链路追踪 Agent/SDK 集成到 K8s 容器化应用中的一系列技术方案。核心接入方式包括Init Container初始化容器下载并挂载 Agent 到共享卷应用容器通过 -javaagent 加载、Sidecar边车容器运行采集器通过共享卷或网络与应用通信、环境变量注入通过 JAVA_TOOL_OPTIONS/OTEL_* 环境变量自动激活 Agent、Admission WebhookMutatingWebhook 自动为 Pod 注入 Init Container/Agent/环境变量无需修改应用配置。Java 应用通过字节码增强Java Agent实现无侵入埋点自动拦截 Spring/Tomcat/DB/Cache/MQ 等组件。Go/Node.js/Python/.NET 应用通过 OpenTelemetry SDK 手动或半自动埋点。多容器 Pod 需确保 Agent 挂载到正确容器TraceID 在容器间通过共享卷或网络传递。K8s 中通过 ConfigMap 管理 Agent 配置Secret 管理追踪后端凭据Resource 限制控制 Agent 资源开销。详细步骤1. 环境变量自动注入 Agent# 通过 ConfigMap 统一管理环境变量 cat otel-env-configmap.yaml EOF apiVersion: v1 kind: ConfigMap metadata: name: otel-common-env data: OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger-collector.observability:4317 OTEL_TRACES_SAMPLER: traceidratio OTEL_TRACES_SAMPLER_ARG: 0.1 OTEL_PROPAGATORS: tracecontext,baggage,b3 OTEL_METRICS_EXPORTER: otlp OTEL_LOGS_EXPORTER: otlp JAVA_TOOL_OPTIONS: -javaagent:/otel/opentelemetry-javaagent.jar EOF kubectl apply -f otel-env-configmap.yaml # Deployment 引用 ConfigMap 环境变量 cat env-from-deploy.yaml EOF apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: template: spec: initContainers: - name: otel-agent-init image: otel/javaagent:2.1.0 command: [cp, /opentelemetry-javaagent.jar, /otel/] volumeMounts: - name: otel-agent mountPath: /otel containers: - name: order-service image: order-service:v1 envFrom: - configMapRef: name: otel-common-env env: - name: OTEL_SERVICE_NAME value: order-service # 每个服务单独设置 volumeMounts: - name: otel-agent mountPath: /otel volumes: - name: otel-agent emptyDir: {} EOF kubectl apply -f env-from-deploy.yaml # 验证环境变量 kubectl exec deployment/order-service -- env | grep -E OTEL|JAVA_TOOL # 批量为所有 Deployment 注入使用 kubectl patch # for deploy in $(kubectl get deploy -o name); do # kubectl patch $deploy --typejson -p[ # {op:add,path:/spec/template/spec/initContainers,value:[...]}, # {op:add,path:/spec/template/spec/containers/0/envFrom,value:[{configMapRef:{name:otel-common-env}}]} # ] # done验证流程# 1. 验证 Agent 注入 kubectl get pod -l apporder-service -o jsonpath{.items[*].spec.initContainers[*].name} # 显示 Agent Init Container 名称 ​ # 2. 验证 Agent 加载 kubectl logs deployment/order-service | grep -iE opentelemetry|skywalking|pinpoint|agent # 显示 Agent 启动日志 ​ # 3. 验证环境变量 kubectl exec deployment/order-service -- env | grep -E OTEL|SW_|PINPOINT|JAVA_TOOL | sort # 显示追踪相关环境变量 ​ # 4. 验证 Trace 上报 curl http://order-service:8080/api/test # Jaeger/SkyWalking/Zipkin UI 搜索 order-service有 Trace 数据 ​ # 5. 验证跨服务调用链 # 调用入口服务检查完整调用链包含所有服务 ​ # 6. 验证资源使用 kubectl top pod -l apporder-service # Agent 开销在合理范围内CPU5%, 内存200MB排错方案Agent 不加载检查 JAVA_TOOL_OPTIONS 环境变量Agent jar 是否正确挂载到共享卷Init Container 是否成功执行应用启动命令是否覆盖 JAVA_TOOL_OPTIONS应用启动失败检查 Agent 版本与 JDK 版本兼容性Agent 与其他 Java Agent 冲突如 Arthas/JRebel增加启动超时时间查看启动错误日志OOM 内存溢出增加容器内存 limits限制 Agent JVM 内存OTEL_JAVAAGENT_JVM_ARGS降低采样率减少 Span 标签禁用 Metrics/Logs 导出Trace 不上报检查 OTEL_EXPORTER_OTLP_ENDPOINT/SW_AGENT_COLLECTOR_BACKEND_SERVICES 地址网络是否可达kubectl exec curl 测试Collector/后端是否正常采样率是否为0Init Container 失败检查 Agent 镜像是否可拉取cp 命令路径是否正确共享卷挂载路径是否一致Init Container 资源是否充足Sidecar 端口冲突检查 Sidecar 容器端口是否与主应用冲突修改 Collector 配置端口检查 Pod 内 localhost 通信自动注入不生效检查命名空间/Pod 注解是否正确Operator 是否正常运行MutatingWebhookConfiguration 是否存在Pod 是否在注入后创建需重启性能开销大降低采样率使用异步批量上报禁用不需要的插件限制 Agent 资源使用 DaemonSet Collector 聚合减少连接按需启用 Metrics/Logs

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号