Node is one of the most popular languages for microservices. With the rise of Kubernetes, increasingly, Node developers are being asked to deploy their services to a Kubernetes cluster. But what’s required to safely deploy and run Node services on Kubernetes?
In this post, we focus on one specific, but vital, component: how do I understand what’s happening with my Node service on Kubernetes, and how do I debug it when things go wrong? At this point, you may be thinking, can’t I just use the Kubernetes dashboard? Unfortunately,while Kubernetes can automatically keep your service up in the event of node failure or a software crash, it doesn’t actually know whether your service is behaving correctly.
In fact, a service may be returning 500’s or taking too long to respond and the Kubernetes dashboard will show all green lights. In fact, a service may be returning 500’s or taking too long to respond and the Kubernetes dashboard will show all green lights. This is why Kubernetes is often used in conjunction with something like Linkerd.
Linkerd is a service sidecar that augments any Kubernetes service, providing zero-config “golden metrics” dashboards and UNIX-style CLI tools for runtime debugging, diagnostics, and reliability. (Linkerd can also act as a service mesh by running on multiple services, providing a uniform layer of telemetry, security, and control across them.)