Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
VGSOURCES
Get listed

cloud nativePATCH 2026.10.15

How to Install and Use Linkerd on a Kubernetes Cluster: CLI, Helm, and Multicluster

By VGSources Team 11 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install Linkerd in three ordered layers: prepare and check the Kubernetes cluster, install Linkerd’s CRDs, then install the control plane and run a health check. The control plane alone does not mesh workloads; you must inject the Linkerd data-plane proxy into each application. For production, use Helm with version-controlled values and operator-supplied mTLS certificates. Multicluster networking is a separate design that adds a second control plane, shared trust anchors, gateways, credentials, and explicit service-export policy.

What Linkerd installs and what it does not

Linkerd adds a service-mesh control plane to Kubernetes and supplies a data-plane proxy for workloads that you choose to mesh. The control plane provides the installation resources, identity configuration, and traffic-management components that the proxies use. A workload is not automatically meshed simply because Linkerd is installed in the cluster: the application’s Kubernetes configuration must be processed through the documented proxy-injection workflow.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Think of the installation as two separate operations:

  • Control-plane installation: install Linkerd’s Custom Resource Definitions (CRDs), then the Linkerd control-plane components.
  • Workload onboarding: add the Linkerd proxy to each deployment, job, or other supported workload and apply the resulting Kubernetes configuration.

Optional extensions, such as viz for observability and multicluster for cross-cluster service communication, are installed separately. They have their own resource, version, and connectivity requirements; the base control plane does not automatically create dashboards or connect clusters.

#1 Best Overall

Prerequisites and compatibility checks

Start with a reachable, functioning Kubernetes cluster and a working kubectl configuration. The official Getting Started workflow expects you to check both client and server Kubernetes versions, install the Linkerd CLI locally, confirm that the Linkerd release is compatible with your Kubernetes version, and run a pre-installation check before changing the cluster.

Required access and tools

  • A Kubernetes cluster that your current kubectl context can reach.
  • Permission to create CRDs and the Linkerd control-plane resources in the target cluster.
  • The Linkerd CLI installed on the workstation or automation runner.
  • kubectl configured for the intended context; verify the context before applying manifests.
  • For Helm, Helm itself and certificate files for Linkerd’s identity system.

Run the preflight check first

Before installing anything, run:

linkerd check --pre

This catches compatibility and cluster-readiness problems while the cluster is still unchanged. Resolve any reported issue before proceeding. Private GKE clusters and clusters using Cilium’s kube-proxy replacement can require additional configuration, so treat warnings in those environments as prerequisites rather than ignoring them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Gateway API CRDs

Gateway API CRDs may already be present. If they are absent, install them before enabling Linkerd features that depend on Gateway API resources, including authorization policy and dynamic routing. Check the cluster rather than assuming that another platform component installed them.

Choose the installation method

Both supported paths create the same basic Linkerd layers, but they place different responsibilities on the operator.

Decision point Linkerd CLI Helm
Best fit Fast evaluation, learning, and a straightforward cluster install Production pipelines and repeatable, reviewable releases
CRD order Run linkerd install --crds before linkerd install Install the linkerd-crds chart before linkerd-control-plane
Certificate handling The CLI installer can generate the required identity credentials for you You must provide the trust anchor and issuer certificate/key material
Repeatability Rendered manifests can be applied directly, but you must preserve your command choices Pin chart and app versions and keep overrides in a version-controlled values.yaml
Production recommendation Convenient for a quick start Recommended for repeatable production installation

Use the CLI when you need the shortest path to a working test cluster. Use Helm when installation and upgrades must be reviewed, reproduced, and integrated into an existing release process.

Install Linkerd with the CLI

1. Install and verify the CLI

Install the linkerd command on your local machine or CI runner using the current method documented for your operating system, then confirm that it is available:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
linkerd version

The command reports the client version. After the control plane is installed, running the same command can also show server-side version information, which helps identify client/server mismatches.

2. Apply the Linkerd CRDs

Render the CRDs and send them to the cluster through kubectl:

linkerd install --crds | kubectl apply -f -

The pipe renders Kubernetes YAML locally and applies it to the current kubectl context. Confirm that the command completes successfully before installing the control plane; the second layer depends on these definitions.

3. Install the control plane

Once the CRDs are present, render and apply the control-plane resources:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
linkerd install | kubectl apply -f -

Wait for Kubernetes to create the Linkerd components. Do not inject application workloads until the control plane passes its health checks.

4. Verify the installation

linkerd check

This performs Linkerd’s post-installation checks. A successful result establishes that the control plane is responding and that the core installation is healthy. Keep this command in your operational runbook and run it again after configuration changes, upgrades, or incidents.

Install Linkerd with Helm for production

Helm is the recommended path when you need a repeatable installation. The chart repository shown in the official example is the Linkerd edge repository at https://helm.linkerd.io/edge. Edge chart and application versions change, so inspect current repository metadata and select a compatible version before deploying.

1. Prepare identity certificates

Helm does not generate Linkerd’s identity credentials for you. Provide:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • A trust-anchor certificate, commonly stored as ca.crt.
  • An issuer certificate, such as issuer.crt.
  • The matching issuer private key, such as issuer.key.

These files supply the trust material used for automatic mTLS. Protect the private key, restrict access to the deployment system, and keep the certificate lifecycle in your normal secrets-management and rotation process.

2. Add the chart repository

helm repo add linkerd-edge https://helm.linkerd.io/edge

Refresh or inspect repository metadata according to your Helm workflow, then record the chart versions selected for the deployment. Do not rely on an unrecorded floating edge version in a production change process.

3. Install the CRD chart first

helm install linkerd-crds linkerd-edge/linkerd-crds -n linkerd --create-namespace

This creates the Linkerd CRDs in the linkerd namespace context. The control-plane chart must be installed only after this release has completed successfully.

4. Install the control-plane chart with certificate files

helm install linkerd-control-plane linkerd-edge/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

The --set-file options pass the trust anchor, issuer certificate, and issuer key into the chart values. In a real deployment, put non-secret settings and version pins in a reviewed, version-controlled values.yaml; handle the private key through your secured delivery mechanism rather than committing it to a repository.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

5. Check the Helm installation

After Helm reports a successful release and Kubernetes has scheduled the control-plane components, run:

linkerd check

If the check fails, inspect the Helm release status, Kubernetes events, and the rendered values. Certificate formatting, an incorrect namespace, and a mismatched chart version are common causes of an otherwise successful-looking Helm command followed by an unhealthy control plane.

Mesh an application with the Linkerd proxy

Installing the control plane does not change existing application pods. To mesh an application, process its Kubernetes configuration with the Linkerd injector and then apply the result. The injector adds the data-plane proxy container and the metadata needed for Linkerd to manage it.

Use the documented injection workflow

  1. Export or otherwise obtain the deployment configuration you intend to apply.
  2. Run it through the Linkerd injector, for example:
    linkerd inject app.yaml | kubectl apply -f -
  3. Watch the rollout and confirm that new pods become ready with the proxy container present.
  4. Run linkerd check and use the relevant Linkerd diagnostics or observability extension to inspect the meshed workload.

Review the injected manifest before applying it in a controlled environment. This lets you see the proxy changes, catch namespace or workload-selection mistakes, and keep the generated configuration in your deployment review process.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Mesh only the workloads you intend to operate

Proxy injection is an application-level decision. Start with a representative service or a non-production namespace, verify behavior, then expand the scope deliberately. Applications with unusual networking, strict security policies, or custom sidecar behavior may need additional validation before broad rollout.

Confirm that traffic is actually meshed

A pod existing in the cluster is not evidence that it is part of the mesh. Confirm that the injected proxy is running, that the workload rollout completed, and that Linkerd’s diagnostics or viz extension reports the expected traffic. If the application was applied without injection, reprocess the configuration and restart the workload so that the new pod template is used.

Use extensions without confusing them with the base install

Linkerd’s installation guide identifies extensions such as viz and multicluster as optional next steps. Install each extension separately and match its version and resource requirements to the Linkerd control plane.

Observability with viz

The viz extension adds observability features that are not supplied by the base control plane. Treat its installation, permissions, and resource consumption as an additional change. If you need dashboards or traffic views, verify that the extension itself is installed and healthy rather than expecting the core installation to provide them.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Useful CLI areas

The Linkerd CLI reference includes command areas for:

  • identity, for inspecting identity-related behavior.
  • diagnostics, for troubleshooting.
  • viz, for interacting with the observability extension.
  • upgrade, for upgrade workflows.
  • uninstall, for removing Linkerd resources.
  • version, for checking client and server versions.

Use the command that matches the problem you are investigating; do not treat an extension command as proof that the extension has been installed.

Connect two Kubernetes clusters with Linkerd multicluster

Multicluster is an additional architecture, not a switch that automatically links every cluster. You need two Kubernetes clusters, a Linkerd control plane in each, a common trust anchor, correctly configured kubectl contexts, elevated permissions, and network connectivity through a gateway that supports a LoadBalancer.

Requirements before linking

  • Install and verify Linkerd independently in both clusters.
  • Use a common trust anchor so identities issued in the linked environments can be trusted as designed.
  • Configure and test separate kubectl contexts; always know which cluster a command targets.
  • Provide the permissions required by the multicluster installation.
  • Ensure the gateway can obtain LoadBalancer connectivity and that network policy, firewall, and routing rules permit the intended cross-cluster traffic.

Install the multicluster components

The CLI reference provides the multicluster install workflow. A Helm-based multicluster installation is also available when the gateway and service-mirror components must be managed inside an existing Helm pipeline. Choose one management method, keep its configuration under change control, and apply it to the intended cluster contexts.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Create the link and credentials

Linking creates credentials and a Link resource. The CLI reference includes link-gen for generating the linking material. Follow the documented sequence for creating the credentials and applying the Link resource to the correct clusters; do not copy a credential generated for one environment into an unrelated cluster.

Export services explicitly

Services are not mirrored automatically. By default, label each service that should be exported with:

mirror.linkerd.io/exported=true

This explicit label is the service-export policy. It prevents every service from becoming reachable across the cluster boundary by accident and makes the cross-cluster surface auditable.

Verify gateways and the link

After the gateway and service-mirror components are running, use the multicluster checks:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
linkerd multicluster check
linkerd multicluster gateways

The first command verifies the multicluster installation. The second inspects gateway state. If the check fails, begin with the targeted cluster context, gateway LoadBalancer assignment, credentials, and shared trust anchor before debugging application traffic.

Control cross-cluster access

The CLI also documents multicluster allow. Use the documented allow workflow when cross-cluster access must be constrained beyond simply exporting a service. Keep service labels and allow rules aligned with the services your applications are meant to consume.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot common installation failures

Preflight fails before any resources are applied

Check the active Kubernetes context, client/server versions, API reachability, and permissions. On private GKE clusters, review the additional configuration required for control-plane communication. On Cilium installations using kube-proxy replacement, verify the compatibility settings called out by Linkerd’s installation guidance.

The control plane was applied before the CRDs

Return to the ordered installation sequence. Apply linkerd install --crds first, wait for completion, then apply linkerd install. With Helm, verify that the linkerd-crds release exists and completed before installing linkerd-control-plane.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Helm reports certificate or identity errors

Confirm that the trust-anchor file is the intended certificate, that the issuer certificate matches the issuer private key, and that the files are readable by the deployment process. Recheck the exact values passed to identityTrustAnchorsPEM, identity.issuer.tls.crtPEM, and identity.issuer.tls.keyPEM. Do not replace certificate material with placeholder values in production.

linkerd check fails after installation

Inspect Kubernetes events and pod status in the Linkerd namespace, then review the rendered CLI or Helm configuration. A failed check is a signal to fix the underlying control-plane or cluster condition before injecting more applications. Run the check again after each corrective change so that a later success reflects the current state.

The application has no proxy

Control-plane health does not inject workloads. Re-run the application manifest through linkerd inject, apply the generated configuration, and verify that the rollout created pods containing the Linkerd proxy. If a deployment was already running, ensure that its pod template changed so Kubernetes actually replaces the old pods.

Multicluster services do not appear

Check that both control planes are healthy, the Link resource and credentials were created in the intended contexts, the gateway has LoadBalancer connectivity, and the service carries mirror.linkerd.io/exported=true. Then run linkerd multicluster check and linkerd multicluster gateways to separate link or gateway failures from application configuration errors.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Operate, upgrade, and remove Linkerd safely

Keep installation state reproducible

For CLI installs, preserve the exact commands and generated configuration choices used for each environment. For Helm, pin chart and application versions and keep overrides in version-controlled values.yaml. Reproducibility matters when rebuilding a cluster or diagnosing a difference between staging and production.

Run checks as an operational habit

Use linkerd check after installation, during routine troubleshooting, and after upgrades. In a multicluster environment, pair it with linkerd multicluster check and gateway inspection. Version checks with linkerd version help identify a client that is out of step with the control plane.

Plan upgrades around extensions and workloads

Extensions have their own compatibility and resource requirements. Upgrade the base control plane and extensions according to their documented sequence, then re-run health checks and verify representative meshed workloads. Avoid treating a successful Helm transaction as proof that application traffic is healthy.

Uninstall deliberately

The CLI provides an uninstall command. Before removing Linkerd, identify meshed workloads and multicluster dependencies, decide whether application pods should be restarted without proxies, and preserve any configuration needed to restore the mesh. Removing the control plane while leaving applications configured for injection can produce confusing rollout behavior, so make workload cleanup part of the change plan.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Installation checklist

  • Confirm the intended Kubernetes context and API access.
  • Check Kubernetes client/server compatibility and run linkerd check --pre.
  • Install Gateway API CRDs if the required features need them and they are not already present.
  • Choose CLI for convenience or Helm for repeatable production deployment.
  • Install CRDs before the control plane.
  • For Helm, prepare and protect the trust-anchor and issuer certificate/key files.
  • Run linkerd check before onboarding applications.
  • Inject the proxy into each workload intentionally; do not assume automatic meshing.
  • Install viz or other extensions separately when their capabilities are required.
  • For multicluster, prepare both control planes, shared trust, contexts, permissions, gateways, credentials, and explicit service-export labels.
  • Verify multicluster state with linkerd multicluster check and linkerd multicluster gateways.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

cloud nativeDevOpsHelmKubernetesLinkerdService Mesh

Leave a reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.