You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Kubernetes cluster. If you do not have one, you can create one using [kind](https://kind.sigs.k8s.io/), [minikube](https://minikube.sigs.k8s.io/), or any other Kubernetes cluster. This guide will use Kind.
8
8
9
-
Linkerd installed in your Kubernetes cluster.
10
-
11
-
12
-
## Step 1 - Create a Kind cluster by running the following command:
9
+
## Step 1 - Create a Kind cluster by running the following command
13
10
14
11
```shell
15
-
kind delete cluster &>/dev/null
16
12
kind create cluster --config ./kind-cluster.yaml
17
13
```
18
14
19
-
## Step 2 - Install Linkerd and Linkerd Viz by running the following commands:
15
+
## Step 2 - Install Linkerd and Linkerd Viz by running the following commands
20
16
21
17
I will use the Linkerd CLI to install Linkerd in the cluster. You can also install Linkerd using Helm or kubectl.
22
-
I tested this guide with Linkerd version 2.14.10
18
+
I tested this guide with Linkerd version `edge-25.9.4`.
19
+
20
+
> [!IMPORTANT]
21
+
> Linkerd version `edge-25.9.4` uses `v1` GatewayAPI apiVersion and the [plugin](https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi)`v0.8.0` expects that. It wouldn't work if `v1beta1` GatewayAPI apiVersion CRDs would be installed (like in the case of an older Linkerd `stable-2.14.10`)
23
22
24
23
```shell
24
+
export LINKERD2_VERSION=edge-25.9.4; curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install-edge | sh
25
+
export PATH=$PATH:/home/baburciu/.linkerd2/bin
26
+
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.1/standard-install.yaml # Gateway API CRDs must be installed prior to installing Linkerd
## Step 5 - Create HTTPRoute that defines a traffic split between two services
53
54
54
-
Create HTTPRouteand connect to the created Gateway resource
55
+
Create a GAMMA [producer `HTTPRoute`](https://gateway-api.sigs.k8s.io/concepts/glossary/#producer-route) resource and connect it to a parent K8s service (using a canary and stable K8s services as backends)
55
56
56
57
```shell
57
58
kubectl apply -f httproute.yaml
58
59
```
59
-
## Step 6 - Create the services required for traffic split
60
60
61
-
Create three Services required for canary based rollout stratedy
61
+
## Step 6 - Create the services required for traffic split
62
+
63
+
Create three Services required for canary based rollout strategy
62
64
63
65
```shell
64
66
kubectl apply -f service.yaml
65
67
```
66
68
67
-
## Step 7 - Create the services required for traffic split
69
+
## Step 7 - Add `linkerd.io/inject: enabled` annotation to namespace
68
70
69
-
Add Linkerd annotation to the namespace where the services are deployed
71
+
Add Linkerd annotation to the namespace where the pods are deployed to enable [Automatic Proxy Injection](https://linkerd.io/2-edge/features/proxy-injection/)
0 commit comments