
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.
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 Linkerd on Windows, add the binary to your path, and install the CRDs before deploying to Kubernetes; then install Linkerd SMI and run checks.
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.
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.
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.
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 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.
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.
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.
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.