Building a Kubernetes Operator for Automated Distributed Tracing
summary
Operator goes from zero to full tracing in a namespace by installing a Helm chart and creating one secret and one custom resource; it injects an init container that copies OpenTelemetry tracers into an emptyDir, sets three env vars (token, endpoint, LD_PRELOAD) and uses an LD_PRELOAD injector that hijacks libc getenv to append require/import flags for Node/Python/Java. An admission-controller mutating webhook performs injections for new pods (continue-on-fail + 5s timeout) and an API watch uninstalls tracers on delete, and the flow is demonstrated working end-to-end.
AI-written summary · about
chapters (8)
- 0:00Intro
- 2:57Enter distributed tracing
- 8:36Enable Automated Tracing within a Namespace
- 10:31Getting the tracers into the container
- 13:58Activating packages through env vars (Node.js example)
- 15:31Static vs dynamic binaries
- 19:10Admission controller mutating webhook
- 20:27Custom object deletion
related talks
33mOpenTracing and Containers: Depth, Breadth, and the Future of Tracing
30mMix Kubernetes with Linux Kernel Tracing to Boost the Observability of Your Cluster
19mKeynote: OpenTracing and Containers: Depth, Breadth, and the Future of Tracing - Ben Sigelman
35mNavigating the Distributed Systems Execution Maze With OpenTracing
14mLeveraging Distributed Tracing in Kubernetes & Containerized Environments
34mDistributed Tracing Integration with OpenTelemetry and Knative
28mImplementing Observability in Kubernetes
30mMix Kubernetes with Linux Kernel Tracing to Boost the Observability of Your Cluster
