<commit_before>---
Description: "How to get Linkerd meshed services working with Telepresence"
---

# Using Telepresence with Linkerd

## Introduction
Getting started with Telepresence on Linkerd services is as simple as adding an annotation to your Deployment:

```yaml
spec:
  template:
    metadata:
      annotations:
        config.linkerd.io/skip-outbound-ports: "8081,8022,6000-7999"
```

The Traffic Agent uses port 8081 for its API, 8022 for SSHFS, and 6001 for the actual tunnel between the Traffic Manager and the local system.  Telling Linkerd to skip these ports allows the Traffic Agent sidecar to fully communicate with the Traffic Manager, and therefore the rest of the Telepresence system.

## Prerequisites
1. [Telepresence binary](../../install)
2. Linkerd control plane [installed to cluster](https://linkerd.io/2.10/tasks/install/)
3. Kubectl
4. [Working ingress controller](https://www.getambassador.io/docs/edge-stack/latest/howtos/linkerd2)

## Deploy
Save and deploy the following YAML. Note the `config.linkerd.io/skip-outbound-ports` annotation in the metadata of the pod template.

```yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: quote
spec:
  replicas: 1
  selector:
    matchLabels:
      app: quote
  strategy:
    type: RollingUpdate
  template:
    metadata:
      annotations:
        linkerd.io/inject: "enabled"
        config.linkerd.io/skip-outbound-ports: "8081,8022,6001"
      labels:
        app: quote
    spec:<commit_msg>Remove obsolete port numbers from linkerd skip-outbound-ports.<commit_after>---
Description: "How to get Linkerd meshed services working with Telepresence"
---

# Using Telepresence with Linkerd

## Introduction
Getting started with Telepresence on Linkerd services is as simple as adding an annotation to your Deployment:

```yaml
spec:
  template:
    metadata:
      annotations:
        config.linkerd.io/skip-outbound-ports: "8081"
```

The local system and the Traffic Agent connect to the Traffic Manager using its gRPC API on port 8081. Telling Linkerd to skip that port allows the Traffic Agent sidecar to fully communicate with the Traffic Manager, and therefore the rest of the Telepresence system.

## Prerequisites
1. [Telepresence binary](../../install)
2. Linkerd control plane [installed to cluster](https://linkerd.io/2.10/tasks/install/)
3. Kubectl
4. [Working ingress controller](https://www.getambassador.io/docs/edge-stack/latest/howtos/linkerd2)

## Deploy
Save and deploy the following YAML. Note the `config.linkerd.io/skip-outbound-ports` annotation in the metadata of the pod template.

```yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: quote
spec:
  replicas: 1
  selector:
    matchLabels:
      app: quote
  strategy:
    type: RollingUpdate
  template:
    metadata:
      annotations:
        linkerd.io/inject: "enabled"
        config.linkerd.io/skip-outbound-ports: "8081,8022,6001"
      labels:
        app: quote
    spec:
{'fraction_non_alphanumeric': 0.0911854103343465, 'fraction_numerical': 0.02701789935832489, 'mean_word_length': 3.6499215070643642, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1960767', 'n_tokens_mistral': 936, 'n_tokens_neox': 862, 'n_words': 310}