Skip to content

Commit 80e4395

Browse files
committed
Update chapter 4: Remove AMD references, update outputs to show 2 nodes/3 services, update to JSON response format
1 parent eea0422 commit 80e4395

1 file changed

Lines changed: 20 additions & 16 deletions

File tree

content/learning-paths/servers-and-cloud-computing/multiarch_nginx_on_aks/4-deploy-multiarch.md

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ layout: learningpathall
88

99
## Add multiarch service
1010

11-
You now have nginx running on Intel, AMD, and ARM nodes with architecture-specific services. In this section, you'll create a multiarch service that can route to any available nginx pod regardless of architecture, providing load balancing across all architectures.
11+
You now have nginx running on Intel and ARM nodes with architecture-specific services. In this section, you'll create a multiarch service that can route to any available nginx pod regardless of architecture, providing load balancing across all architectures.
1212

1313
### Create the multiarch service
1414

15-
The multiarch service targets all pods with the `app: nginx-multiarch` label (all nginx deployments share this label). It uses `sessionAffinity: None` to ensure requests are distributed across all available pods without stickiness, and can route to Intel, AMD, or ARM pods based on availability and load balancing algorithms.
15+
The multiarch service targets all pods with the `app: nginx-multiarch` label (all nginx deployments share this label). It uses `sessionAffinity: None` to ensure requests are distributed across all available pods without stickiness, and can route to Intel or ARM pods based on availability and load balancing algorithms.
1616

1717
1. Run the following command to download and apply the multiarch service:
1818

@@ -33,14 +33,13 @@ service/nginx-multiarch-svc created
3333
kubectl get svc -nnginx
3434
```
3535

36-
Your output should be similar to the following, showing four services:
36+
Your output should be similar to the following, showing three services:
3737

3838
```output
39-
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
40-
nginx-amd-svc LoadBalancer 10.0.67.234 20.4.5.6 80:30081/TCP 25m
41-
nginx-arm-svc LoadBalancer 10.0.89.145 20.7.8.9 80:30082/TCP 20m
42-
nginx-intel-svc LoadBalancer 10.0.45.123 20.1.2.3 80:30080/TCP 45m
43-
nginx-multiarch-svc LoadBalancer 10.0.123.456 20.10.11.12 80:30083/TCP 1m
39+
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
40+
nginx-arm-svc LoadBalancer 10.0.241.154 48.192.64.197 80:30082/TCP 7m52s
41+
nginx-intel-svc LoadBalancer 10.0.226.250 20.80.128.191 80:30080/TCP 16m
42+
nginx-multiarch-svc LoadBalancer 10.0.40.169 20.99.208.140 80:30083/TCP 38s
4443
```
4544

4645
3. Check which pods the multiarch service can route to:
@@ -49,11 +48,11 @@ nginx-multiarch-svc LoadBalancer 10.0.123.456 20.10.11.12 80:30083/T
4948
kubectl get endpoints nginx-multiarch-svc -nnginx
5049
```
5150

52-
You should see all three architecture pods listed as endpoints:
51+
You should see both architecture pods listed as endpoints:
5352

5453
```output
55-
NAME ENDPOINTS AGE
56-
nginx-multiarch-svc 10.244.0.217:80,10.244.1.177:80,10.244.2.68:80 1m
54+
NAME ENDPOINTS AGE
55+
nginx-multiarch-svc 10.244.0.21:80,10.244.1.1:80 47s
5756
```
5857

5958
### Test the nginx multiarch service
@@ -67,9 +66,15 @@ nginx-multiarch-svc 10.244.0.217:80,10.244.1.177:80,10.244.2.68:80 1m
6766
You get back the HTTP response from one of the available pods:
6867

6968
```output
70-
Using service endpoint 20.10.11.12 for get on **multiarch service**
71-
Response: <title>Welcome to nginx!</title>
72-
Served by: nginx-**arm**-deployment-6f8d9c2a-def56
69+
Using service endpoint 20.99.208.140 for get on multiarch service
70+
Response:
71+
{
72+
"message": "nginx response",
73+
"timestamp": "2025-10-24T22:12:23+00:00",
74+
"server": "nginx-arm-deployment-5bf8df95db-wznff",
75+
"request_uri": "/"
76+
}
77+
Served by: nginx-arm-deployment-5bf8df95db-wznff
7378
```
7479

7580
5. Run the command multiple times to see load balancing across architectures:
@@ -80,14 +85,13 @@ Served by: nginx-**arm**-deployment-6f8d9c2a-def56
8085
./nginx_util.sh get multiarch
8186
```
8287

83-
The pod logs will show requests being served by different architecture deployments (intel, amd, or arm), demonstrating that the multiarch service distributes load across all available pods.
88+
The responses will show requests being served by different architecture deployments (intel or arm), demonstrating that the multiarch service distributes load across all available pods.
8489

8590
### Compare architecture-specific vs multiarch routing
8691

8792
Now you can compare the behavior:
8893

8994
- **Architecture-specific**: `./nginx_util.sh get intel` always routes to Intel pods
90-
- **Architecture-specific**: `./nginx_util.sh get amd` always routes to AMD pods
9195
- **Architecture-specific**: `./nginx_util.sh get arm` always routes to ARM pods
9296
- **Multiarch**: `./nginx_util.sh get multiarch` routes to any available pod
9397

0 commit comments

Comments
 (0)