尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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
RELATED

相关推荐

拉格朗日乘数法精讲:从约束优化到支持向量机实战

拉格朗日乘数法精讲:从约束优化到支持向量机实战

1. 背景与核心概念如果你正在学习机器学习,可能在看书或看视频时,突然看到“拉格朗日乘数法”这个词。很多初学者在这里卡住,原因是它前面连着高等数学,后面又连着支持向量机推导,硬啃的话容易劝退。但其实&#xff0c…

📅 2026/11/10 7:19:14
地府管理系统.zip:压缩包安全与业务建模的实战解析

地府管理系统.zip:压缩包安全与业务建模的实战解析

简介:这是一套完整的以中国传统文化中地府概念为背景的模拟管理系统源码,面向前端、全栈开发者及管理类系统学习者,可帮助理解多层级业务系统的设计与实现。资源共131个文件,其中36个vue页面负责界面展示,32个js文件承…

📅 2026/11/10 7:19:15
哈尔滨热水器维修上门-欧米到家不加热不点火漏水故障码专业检修

哈尔滨热水器维修上门-欧米到家不加热不点火漏水故障码专业检修

核心导读哈尔滨热水器出现不加热、不点火、忽冷忽热、出水温度低、漏水、显示故障代码、中途熄火、水压正常但没有热水、反复跳闸、噪音异常等问题,通常需要结合机器类型、使用年限、现场水压、电源、燃气供应以及内部零部件状态综合判断,并不是简单更换…

📅 2026/10/5 7:36:38
MORE NEWS

更多资讯

📰

别踩坑!学历不高也能报泰安高压电工证培训,实操攻略全在这儿

别踩坑!学历不高也能报泰安高压电工证培训,实操攻略全在这儿 你是不是也这样? 学历不高怕报不上名 ,担心自己连报名资格都达不到,更别提考试了?泰安高压电工证培训听起来门槛高,但其实不然,只要方法对,流程清, 千万别踩坑…

📰

电气工程专业电工证郑州报考避坑指南:手把手教你避开中介陷阱

电气工程专业电工证郑州报考避坑指南:手把手教你避开中介陷阱 你是不是也在为不知道去哪报名、怕被中介坑而发愁?特别是像你这样在洛阳涧西区从事水利工程的从业者,想考个【电气工程专业电工证】,但又担心走错路,花冤枉钱?今天就来聊聊…

📰

电气工程专业电工证过期怎么处理?良心建议帮你搞定复审延期

电气工程专业电工证过期怎么处理?良心建议帮你搞定复审延期 证书过期了不知道怎么复审延期?别急,我来给你讲明白。电气工程专业电工证是咱们这一行吃饭的家伙,过期不处理,不仅不能上岗,还可能面临法律风险。今天就从 良心建议…

📰

高级技工电工证培训继续教育学时要求

电工证过期了不知道怎么复审?看真实经历怎么说 证书过期了不知道怎么复审延期,你不是一个人。我认识的信阳浉河区一家中小型施工企业的老总,去年因为没及时处理电工证复审,导致项目暂停,直接损失了十几万。他说:“当时真的不知道该怎么办,到处打听,结…

📰

电工证培训课程实操:真实经历告诉你外省证怎么转

电工证培训课程实操:真实经历告诉你外省证怎么转 之前考的证在外省能不能转过来?这个问题我听得太多了,尤其是像我这样从濮阳转岗过来的电工,拿着老家的证在本地工作,却常常因为证书归属地问题被单位和客户质疑。今天就用 真实经历…

📰

包头架子工特种作业证良心建议:怕考不过白交培训费?选对培训机构是关键

包头架子工特种作业证良心建议:怕考不过白交培训费?选对培训机构是关键 怕考不过白交培训费?包头架子工特种作业证报名前必须知道的良心建议,帮你少走弯路。…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬