Skip to main content
This demo walks through a small example application and shows how Telepresence lets your local machine behave as if it is running inside a Kubernetes cluster. That makes debugging cluster-internal services — using your local editor, debugger, or network tools — fast and convenient without port-forwarding or building special images. Overview
  • Three application services:
    • auth service
    • product service (entry point)
    • inventory service
  • Flow: client → products → inventory (products aggregates inventory data and returns it). The auth service runs independently.
Application layout
  • auth/ — Node.js app (index.js, package.json, Dockerfile)
  • inventory/ — Node.js app (same structure)
  • products/ — Node.js app (same structure)
  • k8s/ — Kubernetes manifests for Deployments and Services
Service responsibilities Below are the key manifest excerpts and the sequence of steps used in the demo. Deployment and Service manifests Inventory Deployment + Service (example)
Products Deployment (entry point)
Auth Service (Service manifest)
Verify cluster nodes Ensure your kubeconfig context is correct and list nodes:
Example cluster output:
Install the Telepresence client on your local machine Telepresence provides platform-detecting installers. The example below shows the PowerShell steps for Windows (run PowerShell as Administrator):
Run installer steps as an Administrator. The script will install components and adjust network routes on your machine.
PowerShell installer steps:
Verify Telepresence is available:
Install the Traffic Manager into your cluster Telepresence requires a cluster-side component called the Traffic Manager. The Telepresence client includes Helm and can install the Traffic Manager for you: Install with default values:
Install with custom values:
The Traffic Manager is installed into its own namespace (commonly ambassador). Check the namespace and pods after installation:
  • kubectl get namespace
  • kubectl get pods -n ambassador
Connect Telepresence to your cluster Telepresence uses the active kubeconfig context. Connect:
Example successful connection output:
Check Telepresence status
Trimmed example status:
What Telepresence configures on your machine When connected, Telepresence creates routes for the cluster pod and service CIDRs so local processes can reach cluster IPs and service DNS names directly. Verify these routes with:
You should see routes pointing cluster subnets to the Telepresence tunnel interface (often tel0 on Linux — interface names vary by OS). List services in the cluster
Example services output:
Because Telepresence makes your laptop appear to be inside the cluster:
  • ClusterIP services (e.g., auth-service, inventory-service) are reachable directly by service name or cluster IP.
  • LoadBalancer services (e.g., products-service) remain externally reachable through your cloud provider’s external IP/DNS.
DNS lookups resolve cluster service names as if you were inside the cluster:
Example:
Make HTTP requests directly to cluster services Curl the auth service by service name and port:
Example JSON response:
Call the products (entry point) service with query parameters:
Example aggregated response (inventory counts included):
Access individual pods by pod IP Telepresence also routes pod IPs. First get pod details:
Example:
Curl a pod IP directly:
Example response:
Disconnect Telepresence When finished, quit Telepresence to stop local daemons and remove routes:
After quitting, telepresence status will show the client is no longer connected. Closing notes Telepresence enables using local development tooling (debuggers, profilers, packet capture, etc.) while interacting with cluster services as if your workstation were inside the cluster network. This simplifies troubleshooting DNS, networking, and service interactions without port-forwarding or building debug images. Links and references

Watch Video