Skip to content

Commit

Permalink
Address review feedback.
Browse files Browse the repository at this point in the history
Signed-off-by: Flynn <[email protected]>
  • Loading branch information
kflynn committed Feb 25, 2025
1 parent a7e6190 commit 0683261
Show file tree
Hide file tree
Showing 12 changed files with 126 additions and 138 deletions.
23 changes: 5 additions & 18 deletions linkerd.io/content/2.12/features/topology-aware-routing.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Topology Aware Routing
description: |-
Linkerd's implementation of Kubernetes topology aware routing enables endpoint consumption based on a node's zone label.
Linkerd's implementation of Kubernetes topology aware routing enables endpoint consumption based on a node's zone label.
---

Kubernetes clusters are increasingly deployed in multi-zone environments with
Expand All @@ -22,26 +22,13 @@ feature is enabled and the label set, Linkerd's destination controller will
attempt to find endpoints whose `routing.ForZones` field matches the client's
zone.

(Topology aware routing is distinct from the `trafficDistribution` feature
that appears in Kubernetes 1.31. `trafficDistribution` is not yet supported by
Linkerd.)

To get started with topology aware routing take a look at the [enabling
topology aware routing](../../tasks/enabling-topology-aware-routing/) task
documentation.

[topology aware routing]:
https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/

{{< note >}}

Topology aware routing requires that the cluster have the `TopologyAwareHints`
feature gate enabled (which is the default starting with Kubernetes 1.24), and
that Linkerd's `endpointSlice` feature be turned on (this is the default
starting with Linkerd stable-2.12).

{{< /note >}}

{{< note >}}

Starting in Kubernetes 1.31, Kubernetes also has the `trafficDistribution`
feature available as an alternative to topology aware routing.
`trafficDistribution` is not yet supported by Linkerd.

{{< /note >}}
11 changes: 7 additions & 4 deletions linkerd.io/content/2.12/tasks/enabling-topology-aware-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,20 @@ Linkerd users to specify endpoint selection boundaries when a request is made
against a service, making it possible to limit cross-zone endpoint selection
and lower the associated costs and latency.

There are three requirements to successfully enabling topology aware routing
There are four requirements to successfully enabling topology aware routing
with Linkerd:

1. The `TopologyAwareHints` feature gate MUST be enabled on the Kubernetes
cluster. (This feature gate is enabled by default in Kubernetes 1.24 and
later.)

2. Each Kubernetes node needs to be assigned to a zone, using
2. Linkerd's `endpointSlice` feature MUST be turned on. (This is the default
starting with Linkerd stable-2.12).

3. Each Kubernetes node needs to be assigned to a zone, using
`"topology.kubernetes.io/zone` label.

3. Relevant Kubernetes services will need to be modified with the
4. Relevant Kubernetes services will need to be modified with the
`service.kubernetes.io/topology-aware-hints=auto` annotation.

When Linkerd receives a set of endpoint slices and translates them to an
Expand Down Expand Up @@ -68,7 +71,7 @@ Successful topology aware routing can be confirmed by looking at the Linkerd
proxy logs for the relevant service. The logs should show a stream of messages
similar to the ones below:

```text
```text {class=disable-copy}
time="2021-08-27T14:04:35Z" level=info msg="Establishing watch on endpoint [default/nginx-deploy-svc:80]" addr=":8086" component=endpoints-watcher
time="2021-08-27T14:04:35Z" level=debug msg="Filtering through addresses that should be consumed by zone zone-b" addr=":8086" component=endpoint-translator remote="127.0.0.1:49846" service="nginx-deploy-svc.default.svc.cluster.local:80"
```
Expand Down
23 changes: 5 additions & 18 deletions linkerd.io/content/2.13/features/topology-aware-routing.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Topology Aware Routing
description: |-
Linkerd's implementation of Kubernetes topology aware routing enables endpoint consumption based on a node's zone label.
Linkerd's implementation of Kubernetes topology aware routing enables endpoint consumption based on a node's zone label.
---

Kubernetes clusters are increasingly deployed in multi-zone environments with
Expand All @@ -22,26 +22,13 @@ feature is enabled and the label set, Linkerd's destination controller will
attempt to find endpoints whose `routing.ForZones` field matches the client's
zone.

(Topology aware routing is distinct from the `trafficDistribution` feature
that appears in Kubernetes 1.31. `trafficDistribution` is not yet supported by
Linkerd.)

To get started with topology aware routing take a look at the [enabling
topology aware routing](../../tasks/enabling-topology-aware-routing/) task
documentation.

[topology aware routing]:
https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/

{{< note >}}

Topology aware routing requires that the cluster have the `TopologyAwareHints`
feature gate enabled (which is the default starting with Kubernetes 1.24), and
that Linkerd's `endpointSlice` feature be turned on (this is the default
starting with Linkerd stable-2.12).

{{< /note >}}

{{< note >}}

Starting in Kubernetes 1.31, Kubernetes also has the `trafficDistribution`
feature available as an alternative to topology aware routing.
`trafficDistribution` is not yet supported by Linkerd.

{{< /note >}}
11 changes: 7 additions & 4 deletions linkerd.io/content/2.13/tasks/enabling-topology-aware-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,20 @@ Linkerd users to specify endpoint selection boundaries when a request is made
against a service, making it possible to limit cross-zone endpoint selection
and lower the associated costs and latency.

There are three requirements to successfully enabling topology aware routing
There are four requirements to successfully enabling topology aware routing
with Linkerd:

1. The `TopologyAwareHints` feature gate MUST be enabled on the Kubernetes
cluster. (This feature gate is enabled by default in Kubernetes 1.24 and
later.)

2. Each Kubernetes node needs to be assigned to a zone, using
2. Linkerd's `endpointSlice` feature MUST be turned on. (This is the default
starting with Linkerd stable-2.12).

3. Each Kubernetes node needs to be assigned to a zone, using
`"topology.kubernetes.io/zone` label.

3. Relevant Kubernetes services will need to be modified with the
4. Relevant Kubernetes services will need to be modified with the
`service.kubernetes.io/topology-aware-hints=auto` annotation.

When Linkerd receives a set of endpoint slices and translates them to an
Expand Down Expand Up @@ -68,7 +71,7 @@ Successful topology aware routing can be confirmed by looking at the Linkerd
proxy logs for the relevant service. The logs should show a stream of messages
similar to the ones below:

```text
```text {class=disable-copy}
time="2021-08-27T14:04:35Z" level=info msg="Establishing watch on endpoint [default/nginx-deploy-svc:80]" addr=":8086" component=endpoints-watcher
time="2021-08-27T14:04:35Z" level=debug msg="Filtering through addresses that should be consumed by zone zone-b" addr=":8086" component=endpoint-translator remote="127.0.0.1:49846" service="nginx-deploy-svc.default.svc.cluster.local:80"
```
Expand Down
33 changes: 16 additions & 17 deletions linkerd.io/content/2.14/features/topology-aware-routing.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Topology Aware Routing
description: |-
Linkerd's implementation of Kubernetes topology aware routing enables endpoint consumption based on a node's zone label.
Linkerd's implementation of Kubernetes topology aware routing enables endpoint consumption based on a node's zone label.
---

Kubernetes clusters are increasingly deployed in multi-zone environments with
Expand All @@ -22,26 +22,25 @@ feature is enabled and the label set, Linkerd's destination controller will
attempt to find endpoints whose `routing.ForZones` field matches the client's
zone.

To get started with topology aware routing take a look at the [enabling
topology aware routing](../../tasks/enabling-topology-aware-routing/) task
documentation.

[topology aware routing]:
https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/
(Topology aware routing is distinct from the `trafficDistribution` feature
that appears in Kubernetes 1.31. `trafficDistribution` is not yet supported by
Linkerd.)

{{< note >}}

Topology aware routing requires that the cluster have the `TopologyAwareHints`
feature gate enabled (which is the default starting with Kubernetes 1.24), and
that Linkerd's `endpointSlice` feature be turned on (this is the default
starting with Linkerd stable-2.12).
If you're using a stable distribution of Linkerd, it may have additional
features related to topology-aware routing (for example, <a
href="https://buoyant.io/linkerd-enterprise/">Buoyant Enterprise for
Linkerd</a> and its <a
href="https://docs.buoyant.io/buoyant-enterprise-linkerd/latest/features/hazl/">HAZL</a>
feature). You can find more information about the different kinds of Linkerd
releases on the [Releases and Versions](/releases/) page.

{{< /note >}}

{{< note >}}

Starting in Kubernetes 1.31, Kubernetes also has the `trafficDistribution`
feature available as an alternative to topology aware routing.
`trafficDistribution` is not yet supported by Linkerd.
To get started with topology aware routing take a look at the [enabling
topology aware routing](../../tasks/enabling-topology-aware-routing/) task
documentation.

{{< /note >}}
[topology aware routing]:
https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/
23 changes: 19 additions & 4 deletions linkerd.io/content/2.14/tasks/enabling-topology-aware-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,32 @@ Linkerd users to specify endpoint selection boundaries when a request is made
against a service, making it possible to limit cross-zone endpoint selection
and lower the associated costs and latency.

There are three requirements to successfully enabling topology aware routing
{{< note >}}

If you're using a stable distribution of Linkerd, it may have additional
features related to topology-aware routing (for example, <a
href="https://buoyant.io/linkerd-enterprise/">Buoyant Enterprise for
Linkerd</a> and its <a
href="https://docs.buoyant.io/buoyant-enterprise-linkerd/latest/features/hazl/">HAZL</a>
feature). You can find more information about the different kinds of Linkerd
releases on the [Releases and Versions](/releases/) page.

{{< /note >}}

There are four requirements to successfully enabling topology aware routing
with Linkerd:

1. The `TopologyAwareHints` feature gate MUST be enabled on the Kubernetes
cluster. (This feature gate is enabled by default in Kubernetes 1.24 and
later.)

2. Each Kubernetes node needs to be assigned to a zone, using
2. Linkerd's `endpointSlice` feature MUST be turned on. (This is the default
starting with Linkerd stable-2.12).

3. Each Kubernetes node needs to be assigned to a zone, using
`"topology.kubernetes.io/zone` label.

3. Relevant Kubernetes services will need to be modified with the
4. Relevant Kubernetes services will need to be modified with the
`service.kubernetes.io/topology-aware-hints=auto` annotation.

When Linkerd receives a set of endpoint slices and translates them to an
Expand Down Expand Up @@ -68,7 +83,7 @@ Successful topology aware routing can be confirmed by looking at the Linkerd
proxy logs for the relevant service. The logs should show a stream of messages
similar to the ones below:

```text
```text {class=disable-copy}
time="2021-08-27T14:04:35Z" level=info msg="Establishing watch on endpoint [default/nginx-deploy-svc:80]" addr=":8086" component=endpoints-watcher
time="2021-08-27T14:04:35Z" level=debug msg="Filtering through addresses that should be consumed by zone zone-b" addr=":8086" component=endpoint-translator remote="127.0.0.1:49846" service="nginx-deploy-svc.default.svc.cluster.local:80"
```
Expand Down
33 changes: 16 additions & 17 deletions linkerd.io/content/2.15/features/topology-aware-routing.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Topology Aware Routing
description: |-
Linkerd's implementation of Kubernetes topology aware routing enables endpoint consumption based on a node's zone label.
Linkerd's implementation of Kubernetes topology aware routing enables endpoint consumption based on a node's zone label.
---

Kubernetes clusters are increasingly deployed in multi-zone environments with
Expand All @@ -22,26 +22,25 @@ feature is enabled and the label set, Linkerd's destination controller will
attempt to find endpoints whose `routing.ForZones` field matches the client's
zone.

To get started with topology aware routing take a look at the [enabling
topology aware routing](../../tasks/enabling-topology-aware-routing/) task
documentation.

[topology aware routing]:
https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/
(Topology aware routing is distinct from the `trafficDistribution` feature
that appears in Kubernetes 1.31. `trafficDistribution` is not yet supported by
Linkerd.)

{{< note >}}

Topology aware routing requires that the cluster have the `TopologyAwareHints`
feature gate enabled (which is the default starting with Kubernetes 1.24), and
that Linkerd's `endpointSlice` feature be turned on (this is the default
starting with Linkerd stable-2.12).
If you're using a stable distribution of Linkerd, it may have additional
features related to topology-aware routing (for example, <a
href="https://buoyant.io/linkerd-enterprise/">Buoyant Enterprise for
Linkerd</a> and its <a
href="https://docs.buoyant.io/buoyant-enterprise-linkerd/latest/features/hazl/">HAZL</a>
feature). You can find more information about the different kinds of Linkerd
releases on the [Releases and Versions](/releases/) page.

{{< /note >}}

{{< note >}}

Starting in Kubernetes 1.31, Kubernetes also has the `trafficDistribution`
feature available as an alternative to topology aware routing.
`trafficDistribution` is not yet supported by Linkerd.
To get started with topology aware routing take a look at the [enabling
topology aware routing](../../tasks/enabling-topology-aware-routing/) task
documentation.

{{< /note >}}
[topology aware routing]:
https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/
23 changes: 19 additions & 4 deletions linkerd.io/content/2.15/tasks/enabling-topology-aware-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,32 @@ Linkerd users to specify endpoint selection boundaries when a request is made
against a service, making it possible to limit cross-zone endpoint selection
and lower the associated costs and latency.

There are three requirements to successfully enabling topology aware routing
{{< note >}}

If you're using a stable distribution of Linkerd, it may have additional
features related to topology-aware routing (for example, <a
href="https://buoyant.io/linkerd-enterprise/">Buoyant Enterprise for
Linkerd</a> and its <a
href="https://docs.buoyant.io/buoyant-enterprise-linkerd/latest/features/hazl/">HAZL</a>
feature). You can find more information about the different kinds of Linkerd
releases on the [Releases and Versions](/releases/) page.

{{< /note >}}

There are four requirements to successfully enabling topology aware routing
with Linkerd:

1. The `TopologyAwareHints` feature gate MUST be enabled on the Kubernetes
cluster. (This feature gate is enabled by default in Kubernetes 1.24 and
later.)

2. Each Kubernetes node needs to be assigned to a zone, using
2. Linkerd's `endpointSlice` feature MUST be turned on. (This is the default
starting with Linkerd stable-2.12).

3. Each Kubernetes node needs to be assigned to a zone, using
`"topology.kubernetes.io/zone` label.

3. Relevant Kubernetes services will need to be modified with the
4. Relevant Kubernetes services will need to be modified with the
`service.kubernetes.io/topology-aware-hints=auto` annotation.

When Linkerd receives a set of endpoint slices and translates them to an
Expand Down Expand Up @@ -68,7 +83,7 @@ Successful topology aware routing can be confirmed by looking at the Linkerd
proxy logs for the relevant service. The logs should show a stream of messages
similar to the ones below:

```text
```text {class=disable-copy}
time="2021-08-27T14:04:35Z" level=info msg="Establishing watch on endpoint [default/nginx-deploy-svc:80]" addr=":8086" component=endpoints-watcher
time="2021-08-27T14:04:35Z" level=debug msg="Filtering through addresses that should be consumed by zone zone-b" addr=":8086" component=endpoint-translator remote="127.0.0.1:49846" service="nginx-deploy-svc.default.svc.cluster.local:80"
```
Expand Down
27 changes: 7 additions & 20 deletions linkerd.io/content/2.16/features/topology-aware-routing.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Topology Aware Routing
description: |-
Linkerd's implementation of Kubernetes topology aware routing enables endpoint consumption based on a node's zone label.
Linkerd's implementation of Kubernetes topology aware routing enables endpoint consumption based on a node's zone label.
---

Kubernetes clusters are increasingly deployed in multi-zone environments with
Expand All @@ -22,10 +22,14 @@ feature is enabled and the label set, Linkerd's destination controller will
attempt to find endpoints whose `routing.ForZones` field matches the client's
zone.

(Topology aware routing is distinct from the `trafficDistribution` feature
that appears in Kubernetes 1.31. `trafficDistribution` is not yet supported by
Linkerd.)

{{< note >}}

If you're using a [stable distribution](/releases/) of Linkerd, it may have
additional features related to topology-aware routing (for example, <a
If you're using a stable distribution of Linkerd, it may have additional
features related to topology-aware routing (for example, <a
href="https://buoyant.io/linkerd-enterprise/">Buoyant Enterprise for
Linkerd</a> and its <a
href="https://docs.buoyant.io/buoyant-enterprise-linkerd/latest/features/hazl/">HAZL</a>
Expand All @@ -40,20 +44,3 @@ documentation.

[topology aware routing]:
https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/

{{< note >}}

Topology aware routing requires that the cluster have the `TopologyAwareHints`
feature gate enabled (which is the default starting with Kubernetes 1.24), and
that Linkerd's `endpointSlice` feature be turned on (this is the default
starting with Linkerd stable-2.12).

{{< /note >}}

{{< note >}}

Starting in Kubernetes 1.31, Kubernetes also has the `trafficDistribution`
feature available as an alternative to topology aware routing.
`trafficDistribution` is not yet supported by Linkerd.

{{< /note >}}
Loading

0 comments on commit 0683261

Please sign in to comment.