
Explore how Linkerd's service mesh boosts observability, reliability, and security for Kubernetes apps with dashboards, tracing, golden signals, and safe deployment options like transparent retries, blue-green and canary deployments.
Compare Linkerd performance with Istio, showing lower latency at the 99th percentile and far lower memory and CPU usage, making Linkerd more efficient for service mesh deployments.
Explore Linkerd architecture by examining the control plane and data plane, including proxy sidecars, transparent proxies, rust-based efficiency, and the CLI for observability and installation in Kubernetes.
Learn how Linkerd's control plane, deployed as Kubernetes resources in the linkerd namespace, uses the proxy injector to attach sidecars, and directs traffic with destination services and mutual TLS.
Install Docker desktop for Kubernetes, install Linkerd, and fetch repository to begin meshing applications, then explore Viz dashboard, observability, service profiles, retries, traffic tapping, routes, and traffic split with labs.
Install docker desktop, enable kubernetes, and set up a linkerd installation with the linkerd cli on macOS and Windows, then install the linkerd control plane and clone lab yaml files.
Download Docker Desktop for macOS (including Mac M1 and Intel support) from docker.com, install by dragging to applications, then run docker run hello world to verify the engine is running.
Install Docker Desktop for Windows 10 Pro using Hyper-V, download from docker.com, and verify with a hello world test after logging out and back in.
Install docker desktop on Windows Home using WSL, download the Windows installer, complete admin-enabled installation, install the WSL2 kernel update if prompted, and test with docker run hello world.
Enable Kubernetes in Docker Desktop for macOS and Windows, navigate to preferences, select Kubernetes, enable it, apply and restart, then verify with kubectl version to support course labs.
Learn to install Linkerd on macOS with Homebrew, install CRDs, perform pre-flight checks, apply YAML to Kubernetes, install Linkerd SMI, and verify with Linkerd checks.
Install Linkerd on Windows, add the binary to your path, and install the CRDs before deploying to Kubernetes; then install Linkerd SMI and run checks.
Install viz for linkerd by piping linkerd viz install to kubectl apply in your Kubernetes environment, then run linkerd check and open viz dashboard to view it in your browser.
Clone the GitLab lab files and haystack image tar, then load the image into Docker to prepare the Kubernetes lab environment and deploy YAML resources.
Load the haystack image tar into Docker with the docker load command from the Linkerd labs directory. Verify the load by listing images and grep haystack.
Explore how the Linkerd service mesh works, learn the tools and steps for developers to add your application, and complete a hands-on lab walkthrough.
Explore how Linkerd sidecar injection adds the proxy and init containers to your pods when deploying to Kubernetes, simplifying updates without manual YAML.
Explore how Kubernetes admission controllers trigger mutating webhook configurations to inject Linkerd sidecars into resource definitions, using the Linkerd proxy injector in the control plane and its webhook endpoint.
Learn to enable the Linkerd service mesh by using Kubernetes annotations, placing linkerd.io/inject: enabled in the pod template metadata so the admission webhook injects the sidecar.
Add existing applications to the Linkerd service mesh by editing the deployment with kubectl edit and enabling the linkerd.io/inject annotation in the spec template.
Learn how to use Linkerd inject to add the correct annotation to Kubernetes deployment YAML, output the injected file, and apply it with kubectl or save for Gitops workflows.
Mesh a Kubernetes application by injecting the Linkerd sidecar and init containers, using annotations or Linkerd inject, and verify via kubectl and the dashboard for metrics.
Explore the Linkerd viz tool to monitor network traffic metrics in your data plane, diagnose Kubernetes issues, and gain hands-on practice with the Viz dashboard and command-line interactions.
Explore the viz dashboard to monitor meshed resources, deployments, and pods, view traffic, latency, and golden signals, and use tap, top, and routes for insights.
Learn to use the viz stat command to monitor deployment meshing, the success rate, RPS, and latency percentiles for debugging when the graphical dashboard is unavailable.
Learn how to use the Linkerd vs edges command to map traffic between Kubernetes resources in a namespace, showing a src-dst table with source, destination, and secured status.
Learn how to tap live traffic in a Linkerd meshed Kubernetes app using the dashboard and the tap command, with TCP requirements and sidecar injection for debugging individual requests.
Learn to monitor live traffic in your service mesh with linker d viz top, comparing dashboard data and the linker device top in the default namespace pass through deployment.
Identify the library service's 500 errors by inspecting the books endpoint with the Linkerd dashboard, top, and live traffic tap to locate the root cause.
Discover how to add retries and enhanced metrics using service profiles, a Kubernetes CRD installed with Linkerd, and learn to create and verify the resource in your application.
Learn how to define a Linkerd service profile (CRD) with a YAML example, including API version, kind, metadata name, and route configurations for each endpoint to enable retries.
Discover multiple ways to generate a Linkerd service profile, including templates, command line options, and live traffic tapping, plus support for gRPC, Swagger, and OpenAPI definitions.
Learn to generate Linkerd service profile templates with the template option using a service name and namespace, auto-populating the name metadata, and validate routes by command line or dashboard workflows.
Explore generating Linkerd service profiles from an open API specification using swagger, editor, and yaml, then build profiles with the dash open api option for the books db service.
Learn to generate Linkerd service profiles using the --tap flag, running a tap for ten seconds on a deployment to auto-populate routes and metadata in a books service profile.
Configure Linkerd retries in the service profile to boost reliability at the sidecar proxy, and understand how retries trigger on error codes and timeouts, with YAML settings like is retrievable.
Apply Linkerd service profiles to your app to add a Linkerd root, view route metrics in the dashboard, and verify retries with kubectl and the lab examples.
Learn to add retries to a Kubernetes app with Linkerd service profiles, using dashboard templates, tap-based generation, or OpenAPI swagger, to drive pet store reliability toward 100% with noted latency.
Learn how traffic splits route traffic across multiple backend services and implement blue-green and canary deployment patterns in Linkerd, with a hands-on lab to test what you learn.
Explain blue-green deployment as a type of canary deployment with two side-by-side versions, a front split service, and traffic split CRD.
Learn the yaml format for the traffic split CRD in Linkerd, extending the Kubernetes API with a two-backend routing definition. Weights determine traffic distribution, with sums and proportional scaling explained.
Set up a traffic split using the SMI spec, edit the yaml with the correct api version, and configure the service, backends, and weights for a blue-green deployment.
Implement blue-green deployments with traffic splits in Linkerd, progressively shifting weights from blue to green across four stages, validating metrics before proceeding.
Learn to perform blue-green deployments with Linkerd by shifting traffic with traffic split and kubectl edits, monitor with the dashboard, and roll back on errors.
This course has everything you need to take advantage of the powerful Linkerd service mesh. You will learn the core concepts needed to understand how Linkerd integrates with your application. Then, you'll learn how and why to enable the advanced features of Linkerd. For each section, you'll get hands-on exercises to reinforce your new skills.
Learn the Service Mesh
Linkerd is a service mesh, which means that it allows you to manage and configure the network traffic in your application. Linkerd is a Cloud-Native tool that works inside a Kubernetes environment to create the service mesh.
Observability
A major advantage of Linkerd is the observability feature. Linkerd provides the golden signals (success rate, latency, traffic) in a convenient dashboard or on the command line. In large microservices environments with lots of dependencies, it can be hard to find the root cause of errors in your service. Linkerd helps you to identify root cause by giving you success rates for all resources with linkerd enabled.
Linkerd also allows you to configure traffic for the applications in your service mesh. You can add retries and timeouts using linkerd. These linkerd features allow you to increase the reliability of your system. If an incoming request results in an intermittent error, Linkerd's retries can automatically retry the request so that your user just sees a successful response.
Rust-based for speed and security
Linkerd's sidecar proxy is written in the Rust programming language for a couple reasons.
First, Rust makes Linkerd *fast*. Linkerd sidecar proxies are faster than other service meshes in the market. This means that Linkerd is cheaper to run and a better experience for your users than other meshes.
Second, Rust makes Linkerd memory-efficient. When you are paying your cloud provider per GB of RAM used, it's best to go with the most efficient service mesh.
Third, Linkerd sidecar proxies are not vulnerable to C-style memory vulnerabilities due to the safety guarantees of Rust. This means fewer work injects to update the proxy due to memory security issues such as Heartbleed.
Easy Deployment and Updates
To add Linkerd to your application, you add a single Kubernetes resource annotation. If Linkerd is running on your cluster, it will automatically add the required configuration data so that your application is enabled for linkerd.
Linkerd runs as a sidecar along your application. That means that Linkerd works with any application programming language. The sideecar pattern also means that you can update linkerd without impacting your main application container processes.
Advanced Deployment Strategies
Linkerd supports a Kubernetes Custom Resource Definition type called Traffic Splits that enables advanced functionality for distributing traffic to different backends. You can use it to implement canary deployments such as the Blue-Green deployment with Linkerd. You can also perform advanced techniques such as fault injection using the Linkerd TrafficSplit resource.