diff --git a/linkerd.io/content/2.12/features/topology-aware-routing.md b/linkerd.io/content/2.12/features/topology-aware-routing.md index 245c39100d..4cc6cecea9 100644 --- a/linkerd.io/content/2.12/features/topology-aware-routing.md +++ b/linkerd.io/content/2.12/features/topology-aware-routing.md @@ -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 @@ -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 >}} diff --git a/linkerd.io/content/2.12/tasks/enabling-topology-aware-routing.md b/linkerd.io/content/2.12/tasks/enabling-topology-aware-routing.md index fd5f8d5f0b..bf6f080243 100644 --- a/linkerd.io/content/2.12/tasks/enabling-topology-aware-routing.md +++ b/linkerd.io/content/2.12/tasks/enabling-topology-aware-routing.md @@ -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 @@ -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" ``` diff --git a/linkerd.io/content/2.13/features/topology-aware-routing.md b/linkerd.io/content/2.13/features/topology-aware-routing.md index 245c39100d..4cc6cecea9 100644 --- a/linkerd.io/content/2.13/features/topology-aware-routing.md +++ b/linkerd.io/content/2.13/features/topology-aware-routing.md @@ -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 @@ -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 >}} diff --git a/linkerd.io/content/2.13/tasks/enabling-topology-aware-routing.md b/linkerd.io/content/2.13/tasks/enabling-topology-aware-routing.md index fd5f8d5f0b..bf6f080243 100644 --- a/linkerd.io/content/2.13/tasks/enabling-topology-aware-routing.md +++ b/linkerd.io/content/2.13/tasks/enabling-topology-aware-routing.md @@ -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 @@ -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" ``` diff --git a/linkerd.io/content/2.14/features/topology-aware-routing.md b/linkerd.io/content/2.14/features/topology-aware-routing.md index 245c39100d..5e477d4f7a 100644 --- a/linkerd.io/content/2.14/features/topology-aware-routing.md +++ b/linkerd.io/content/2.14/features/topology-aware-routing.md @@ -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 @@ -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, Buoyant Enterprise for +Linkerd and its HAZL +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/ diff --git a/linkerd.io/content/2.14/tasks/enabling-topology-aware-routing.md b/linkerd.io/content/2.14/tasks/enabling-topology-aware-routing.md index fd5f8d5f0b..ce7cb3c1bb 100644 --- a/linkerd.io/content/2.14/tasks/enabling-topology-aware-routing.md +++ b/linkerd.io/content/2.14/tasks/enabling-topology-aware-routing.md @@ -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, Buoyant Enterprise for +Linkerd and its HAZL +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 @@ -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" ``` diff --git a/linkerd.io/content/2.15/features/topology-aware-routing.md b/linkerd.io/content/2.15/features/topology-aware-routing.md index 245c39100d..5e477d4f7a 100644 --- a/linkerd.io/content/2.15/features/topology-aware-routing.md +++ b/linkerd.io/content/2.15/features/topology-aware-routing.md @@ -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 @@ -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, Buoyant Enterprise for +Linkerd and its HAZL +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/ diff --git a/linkerd.io/content/2.15/tasks/enabling-topology-aware-routing.md b/linkerd.io/content/2.15/tasks/enabling-topology-aware-routing.md index fd5f8d5f0b..ce7cb3c1bb 100644 --- a/linkerd.io/content/2.15/tasks/enabling-topology-aware-routing.md +++ b/linkerd.io/content/2.15/tasks/enabling-topology-aware-routing.md @@ -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, Buoyant Enterprise for +Linkerd and its HAZL +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 @@ -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" ``` diff --git a/linkerd.io/content/2.16/features/topology-aware-routing.md b/linkerd.io/content/2.16/features/topology-aware-routing.md index 3d826eaaac..5e477d4f7a 100644 --- a/linkerd.io/content/2.16/features/topology-aware-routing.md +++ b/linkerd.io/content/2.16/features/topology-aware-routing.md @@ -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 @@ -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, Buoyant Enterprise for Linkerd and its HAZL @@ -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 >}} diff --git a/linkerd.io/content/2.16/tasks/enabling-topology-aware-routing.md b/linkerd.io/content/2.16/tasks/enabling-topology-aware-routing.md index 0d1b786d40..ce7cb3c1bb 100644 --- a/linkerd.io/content/2.16/tasks/enabling-topology-aware-routing.md +++ b/linkerd.io/content/2.16/tasks/enabling-topology-aware-routing.md @@ -11,8 +11,8 @@ and lower the associated costs and latency. {{< note >}} -If you're using a [stable distribution](/releases/) of Linkerd, it may have -additional features related to topology-aware routing (for example, Buoyant Enterprise for Linkerd and its HAZL @@ -21,17 +21,20 @@ releases on the [Releases and Versions](/releases/) page. {{< /note >}} -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 @@ -80,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" ``` diff --git a/linkerd.io/content/2.17/features/topology-aware-routing.md b/linkerd.io/content/2.17/features/topology-aware-routing.md index 3d826eaaac..5e477d4f7a 100644 --- a/linkerd.io/content/2.17/features/topology-aware-routing.md +++ b/linkerd.io/content/2.17/features/topology-aware-routing.md @@ -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 @@ -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, Buoyant Enterprise for Linkerd and its HAZL @@ -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 >}} diff --git a/linkerd.io/content/2.17/tasks/enabling-topology-aware-routing.md b/linkerd.io/content/2.17/tasks/enabling-topology-aware-routing.md index 0d1b786d40..ce7cb3c1bb 100644 --- a/linkerd.io/content/2.17/tasks/enabling-topology-aware-routing.md +++ b/linkerd.io/content/2.17/tasks/enabling-topology-aware-routing.md @@ -11,8 +11,8 @@ and lower the associated costs and latency. {{< note >}} -If you're using a [stable distribution](/releases/) of Linkerd, it may have -additional features related to topology-aware routing (for example, Buoyant Enterprise for Linkerd and its HAZL @@ -21,17 +21,20 @@ releases on the [Releases and Versions](/releases/) page. {{< /note >}} -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 @@ -80,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" ```