Linkerd Service Mesh Control Plane

repository·main·Indexed Apr 15, 2026

https://github.com/linkerd/linkerd2

Official repository for Linkerd, an ultralight, security-first service mesh for Kubernetes. Contains Helm charts, source code, and CLI tools for deploying the control plane, including the linkerd-crds chart and policy-test crate. Supports High-Availability, Multicluster extensions, and CNI plugins. Features include built-in mTLS, observability, and reliability mechanisms. Includes build scripts for Docker images via buildx, a Helm wrapper (v3.18.4), and local development tools for the Web Dashboard.

Tokens
91.5K
Snippets
383
Records
720
Agent score
95%

What's inside linkerd2

  1. Linkerd Overview

    main
    Linkerd is an ultralight, security-first service mesh for Kubernetes. It adds critical security, observability, and reliability features to your Kubernetes stack with no code change required.
  2. Fix Deprecated Go Package Warnings

    main

    Warnings about deprecated Go packages in controller container logs have been fixed. Upgrading to this version will clean up your logs.

    Sources: CHANGES.md

  3. Update Grafana Integration for External Instances

    main

    The Linkerd Viz extension no longer ships with a Grafana image. Instead, users can import Linkerd dashboards from the Linkerd org into their own Grafana instances. The dashboard now supports externally hosted Grafana instances.

    Steps to Use External Grafana:

    1. Install your own Grafana instance.
    2. Import Linkerd dashboards from the Linkerd org.
    3. Configure the DS_PROMETHEUS datasource in the dashboards to point to your Prometheus instance.

    Refer to the official documentation for detailed instructions.

    Sources: CHANGES.md

  4. Configure Proxy Resource Limits

    main

    Use the --proxy-cpu and --proxy-memory flags with the linkerd install and linkerd inject commands to configure CPU and memory requests for the proxy container.

    linkerd install --proxy-cpu=100m --proxy-memory=128Mi | kubectl apply -f -

    This allows you to control the resource allocation for your proxies and prevent resource contention in your cluster.

    Sources: CHANGES.md

  5. Configure Skip Inbound and Outbound Ports with Ranges

    main

    The linkerd install and linkerd inject commands now support both port numbers and port ranges for the --skip-inbound-ports and --skip-outbound-ports flags. This allows you to skip proxy injection for specific ports or ranges of ports.

    Examples:

    # Skip specific ports
    linkerd install --skip-inbound-ports 8080,9090
    
    # Skip port ranges
    linkerd install --skip-inbound-ports 8000-8099
    
    # Combine numbers and ranges
    linkerd install --skip-inbound-ports 8080,9000-9099

    This feature was introduced in edge-20.1.1 and provides more flexibility in configuring which ports should bypass the proxy.

    linkerd install --skip-inbound-ports 8080,9000-9099

    Sources: CHANGES.md

  6. Run Dashboard Development Server

    main

    To test the Linkerd dashboard locally, first install Yarn and set up web dependencies:

    brew install yarn # if not already installed
    bin/web setup

    Start the dashboard in one of two ways:

    Standalone mode:

    bin/web run

    Webpack Dev Server mode:

    bin/web dev

    The dashboard will be available at localhost:7777.

    bin/web run

    Sources: TEST.md

  7. Install Linkerd with Go 1.12.9 Requirement

    main

    The build process for Linkerd controller components now requires Go version 1.12.9 or higher to include necessary security fixes. If you are building Linkerd from source, ensure your Go environment meets this requirement.

    Check your Go version:

    go version

    If needed, upgrade Go to version 1.12.9 or later.

    go version

    Sources: CHANGES.md

  8. Install Linkerd Control Plane with Custom Identity Trust Anchors

    main

    To install the Linkerd control plane using Helm with custom identity trust anchors, add the stable repository and install the CRDs and control plane components. This process requires providing the CA certificate, issuer certificate, and issuer key as files.

    Run the following commands to set up the repository and install the components:

    helm repo add linkerd https://helm.linkerd.io/stable
    helm repo up
    helm install linkerd-crds -n linkerd --create-namespace linkerd/linkerd-crds
    helm install linkerd-control-plane \
      -n linkerd \
      --set-file identityTrustAnchorsPEM=ca.crt \
      --set-file identity.issuer.tls.crtPEM=issuer.crt \
      --set-file identity.issuer.tls.keyPEM=issuer.key \
      linkerd/linkerd-control-plane

    Ensure you have the ca.crt, issuer.crt, and issuer.key files available in your current directory before running the installation.

    helm repo add linkerd https://helm.linkerd.io/stable
    helm repo up
    helm install linkerd-crds -n linkerd --create-namespace linkerd/linkerd-crds
    helm install linkerd-control-plane \
      -n linkerd \
      --set-file identityTrustAnchorsPEM=ca.crt \
      --set-file identity.issuer.tls.crtPEM=issuer.crt \
      --set-file identity.issuer.tls.keyPEM=issuer.key \
      linkerd/linkerd-control-plane

    Sources: CHANGES.md

  9. Jaeger Extension

    main

    Provides distributed tracing.

    # Install
    linkerd jaeger install | kubectl apply -f -
    
    # List pods with tracing enabled
    linkerd jaeger list
    
    # Check installation
    linkerd check --extension jaeger