Skip to content

Commit e6b080d

Browse files
committed
Address the rest of the feedback
Signed-off-by: Keith Mattix II <[email protected]>
1 parent 68058c4 commit e6b080d

File tree

7 files changed

+43
-76
lines changed

7 files changed

+43
-76
lines changed

content/en/docs/ambient/install/multicluster/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Install Multicluster
33
description: Install an Istio mesh in ambient mode across multiple Kubernetes clusters.
44
weight: 40
5-
keywords: [kubernetes,multicluster]
5+
keywords: [kubernetes,multicluster,ambient]
66
simple_list: true
77
content_above: true
88
test: table-of-contents

content/en/docs/ambient/install/multicluster/before-you-begin/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Before you begin
33
description: Initial steps before installing Istio on multiple clusters.
44
weight: 1
5-
keywords: [kubernetes,multicluster]
5+
keywords: [kubernetes,multicluster,ambient]
66
test: n/a
77
owner: istio/wg-environments-maintainers
88
---
@@ -19,7 +19,7 @@ In addition, review the requirements and perform the initial steps below.
1919

2020
### Cluster
2121

22-
This guide requires that you have two Kubernetes clusters with any of the
22+
This guide requires that you have two Kubernetes clusters with support for LoadBalancing `Services` on any of the
2323
[supported Kubernetes versions:](/docs/releases/supported-releases#support-status-of-istio-releases) {{< supported_kubernetes_versions >}}.
2424

2525
### API Server Access

content/en/docs/ambient/install/multicluster/multi-primary_multi-network/helm_test.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ function install_istio_on_cluster1_helm {
4141
_rewrite_helm_repo snip_install_ztunnel_cluster1
4242

4343
echo "Creating the east-west gateway"
44-
snip_install_the_eastwest_gateway_2
45-
snip_install_the_eastwest_gateway_3
44+
snip_install_an_ambient_eastwest_gateway_in_cluster1_2
45+
snip_install_an_ambient_eastwest_gateway_in_cluster1_3
4646

4747
echo "Waiting for the east-west gateway to have an external IP"
48-
_verify_like snip_install_the_eastwest_gateway_4 "$snip_install_the_eastwest_gateway_4_out"
48+
_verify_like snip_install_an_ambient_eastwest_gateway_in_cluster1_4 "$snip_install_an_ambient_eastwest_gateway_in_cluster1_4_out"
4949
}
5050

5151
function install_istio_on_cluster2_helm {
@@ -62,11 +62,11 @@ function install_istio_on_cluster2_helm {
6262
_rewrite_helm_repo snip_install_ztunnel_cluster2
6363

6464
echo "Creating the east-west gateway"
65-
snip_install_the_eastwest_gateway_in_cluster2_2
66-
snip_install_the_eastwest_gateway_in_cluster2_3
65+
snip_install_an_ambient_eastwest_gateway_in_cluster2_2
66+
snip_install_an_ambient_eastwest_gateway_in_cluster2_3
6767

6868
echo "Waiting for the east-west gateway to have an external IP"
69-
_verify_like snip_install_the_eastwest_gateway_in_cluster2_4 "$snip_install_the_eastwest_gateway_in_cluster2_4_out"
69+
_verify_like snip_install_an_ambient_eastwest_gateway_in_cluster2_4 "$snip_install_an_ambient_eastwest_gateway_in_cluster2_4_out"
7070
}
7171

7272
function install_istio_helm {

content/en/docs/ambient/install/multicluster/multi-primary_multi-network/index.md

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@
22
title: Install ambient multi-primary on different networks
33
description: Install an Istio ambient mesh across multiple primary clusters on different networks.
44
weight: 30
5-
keywords: [kubernetes,multicluster]
5+
keywords: [kubernetes,multicluster,ambient]
66
test: yes
77
owner: istio/wg-environments-maintainers
88
---
99

1010
{{< boilerplate alpha >}}
1111

12+
{{< tip >}}
13+
{{< boilerplate gateway-api-future >}}
14+
{{< /tip >}}
15+
1216
Follow this guide to install the Istio control plane on both `cluster1` and
1317
`cluster2`, making each a {{< gloss >}}primary cluster{{< /gloss >}} (this is currently the only supported configuration in ambient mode). Cluster
1418
`cluster1` is on the `network1` network, while `cluster2` is on the
@@ -37,8 +41,7 @@ traffic. The gateway in each cluster must be reachable from the other cluster.
3741
If the istio-system namespace is already created, we need to set the cluster's network there:
3842

3943
{{< text bash >}}
40-
$ kubectl --context="${CTX_CLUSTER1}" get namespace istio-system && \
41-
kubectl --context="${CTX_CLUSTER1}" label namespace istio-system topology.istio.io/network=network1
44+
$ kubectl --context="${CTX_CLUSTER1}" label namespace istio-system topology.istio.io/network=network1
4245
{{< /text >}}
4346

4447
## Configure `cluster1` as a primary
@@ -114,21 +117,13 @@ $ helm install ztunnel istio/ztunnel -n istio-system --kube-context "${CTX_CLUST
114117
## Install an ambient east-west gateway in `cluster1`
115118

116119
Install a gateway in `cluster1` that is dedicated to ambient
117-
[east-west](https://en.wikipedia.org/wiki/East-west_traffic) traffic. By
118-
default, this gateway will be public on the Internet. Production systems may
120+
[east-west](https://en.wikipedia.org/wiki/East-west_traffic) traffic. Be
121+
aware that, depending on your Kubernetes environment, this gateway may be
122+
deployed on the public Internet by default. Production systems may
119123
require additional access restrictions (e.g. via firewall rules) to prevent
120124
external attacks. Check with your cloud vendor to see what options are
121125
available.
122126

123-
### Deploy Gateway API CRDs
124-
125-
{{< text syntax=bash snip_id=install_crds >}}
126-
$ kubectl get crd gateways.gateway.networking.k8s.io --context="${CTX_CLUSTER1}" &> /dev/null || \
127-
{ kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref={{< k8s_gateway_api_version >}}" | kubectl apply -f - --context="${CTX_CLUSTER1}"; }
128-
{{< /text >}}
129-
130-
### Install the east-west gateway
131-
132127
{{< tabset category-name="east-west-gateway-install-type-cluster-1" >}}
133128

134129
{{< tab name="IstioOperator" category-value="iop" >}}
@@ -193,12 +188,6 @@ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AG
193188
istio-eastwestgateway LoadBalancer 10.80.6.124 34.75.71.237 ... 51s
194189
{{< /text >}}
195190

196-
## Expose services in `cluster1`
197-
198-
{{< text bash >}}
199-
$ kubectl --context="${CTX_CLUSTER1}" label svc helloworld -n sample istio.io/global="true"
200-
{{< /text >}}
201-
202191
## Set the default network for `cluster2`
203192

204193
If the istio-system namespace is already created, we need to set the cluster's network there:
@@ -278,7 +267,7 @@ $ helm install ztunnel istio/ztunnel -n istio-system --kube-context "${CTX_CLUST
278267

279268
{{< /tabset >}}
280269

281-
## Install the east-west gateway in `cluster2`
270+
## Install an ambient east-west gateway in `cluster2`
282271

283272
As we did with `cluster1` above, install a gateway in `cluster2` that is dedicated
284273
to east-west traffic.
@@ -343,12 +332,6 @@ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AG
343332
istio-eastwestgateway LoadBalancer 10.0.12.121 34.122.91.98 ... 51s
344333
{{< /text >}}
345334

346-
## Expose services in `cluster2`
347-
348-
{{< text bash >}}
349-
$ kubectl --context="${CTX_CLUSTER2}" label svc helloworld -n sample istio.io/global="true"
350-
{{< /text >}}
351-
352335
## Enable Endpoint Discovery
353336

354337
Install a remote secret in `cluster2` that provides access to `cluster1`’s API server.

content/en/docs/ambient/install/multicluster/multi-primary_multi-network/snips.sh

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
####################################################################################################
2222

2323
snip_set_the_default_network_for_cluster1_1() {
24-
kubectl --context="${CTX_CLUSTER1}" get namespace istio-system && \
25-
kubectl --context="${CTX_CLUSTER1}" label namespace istio-system topology.istio.io/network=network1
24+
kubectl --context="${CTX_CLUSTER1}" label namespace istio-system topology.istio.io/network=network1
2625
}
2726

2827
snip_configure_cluster1_as_a_primary_1() {
@@ -66,19 +65,14 @@ snip_install_ztunnel_cluster1() {
6665
helm install ztunnel istio/ztunnel -n istio-system --kube-context "${CTX_CLUSTER1}" --set multiCluster.clusterName=cluster1 --set global.network=network1
6766
}
6867

69-
snip_install_crds() {
70-
kubectl get crd gateways.gateway.networking.k8s.io --context="${CTX_CLUSTER1}" &> /dev/null || \
71-
{ kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v1.3.0" | kubectl apply -f - --context="${CTX_CLUSTER1}"; }
72-
}
73-
74-
snip_install_the_eastwest_gateway_1() {
68+
snip_install_an_ambient_eastwest_gateway_in_cluster1_1() {
7569
samples/multicluster/gen-eastwest-gateway.sh \
7670
--network network1 \
7771
--ambient | \
7872
kubectl --context="${CTX_CLUSTER1}" apply -f -
7973
}
8074

81-
snip_install_the_eastwest_gateway_2() {
75+
snip_install_an_ambient_eastwest_gateway_in_cluster1_2() {
8276
cat <<EOF > cluster1-ewgateway.yaml
8377
kind: Gateway
8478
apiVersion: gateway.networking.k8s.io/v1
@@ -100,23 +94,19 @@ spec:
10094
EOF
10195
}
10296

103-
snip_install_the_eastwest_gateway_3() {
97+
snip_install_an_ambient_eastwest_gateway_in_cluster1_3() {
10498
kubectl apply --context="${CTX_CLUSTER1}" -f cluster1-ewgateway.yaml
10599
}
106100

107-
snip_install_the_eastwest_gateway_4() {
101+
snip_install_an_ambient_eastwest_gateway_in_cluster1_4() {
108102
kubectl --context="${CTX_CLUSTER1}" get svc istio-eastwestgateway -n istio-system
109103
}
110104

111-
! IFS=$'\n' read -r -d '' snip_install_the_eastwest_gateway_4_out <<\ENDSNIP
105+
! IFS=$'\n' read -r -d '' snip_install_an_ambient_eastwest_gateway_in_cluster1_4_out <<\ENDSNIP
112106
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
113107
istio-eastwestgateway LoadBalancer 10.80.6.124 34.75.71.237 ... 51s
114108
ENDSNIP
115109

116-
snip_expose_services_in_cluster1_1() {
117-
kubectl --context="${CTX_CLUSTER1}" label svc helloworld -n sample istio.io/global="true"
118-
}
119-
120110
snip_set_the_default_network_for_cluster2_1() {
121111
kubectl --context="${CTX_CLUSTER2}" get namespace istio-system && \
122112
kubectl --context="${CTX_CLUSTER2}" label namespace istio-system topology.istio.io/network=network2
@@ -163,14 +153,14 @@ snip_install_ztunnel_cluster2() {
163153
helm install ztunnel istio/ztunnel -n istio-system --kube-context "${CTX_CLUSTER2}" --set multiCluster.clusterName=cluster2 --set global.network=network2
164154
}
165155

166-
snip_install_the_eastwest_gateway_in_cluster2_1() {
156+
snip_install_an_ambient_eastwest_gateway_in_cluster2_1() {
167157
samples/multicluster/gen-eastwest-gateway.sh \
168158
--network network2 \
169159
--ambient | \
170160
kubectl apply --context="${CTX_CLUSTER2}" -f -
171161
}
172162

173-
snip_install_the_eastwest_gateway_in_cluster2_2() {
163+
snip_install_an_ambient_eastwest_gateway_in_cluster2_2() {
174164
cat <<EOF > cluster2-ewgateway.yaml
175165
kind: Gateway
176166
apiVersion: gateway.networking.k8s.io/v1
@@ -192,23 +182,19 @@ spec:
192182
EOF
193183
}
194184

195-
snip_install_the_eastwest_gateway_in_cluster2_3() {
185+
snip_install_an_ambient_eastwest_gateway_in_cluster2_3() {
196186
kubectl apply --context="${CTX_CLUSTER2}" -f cluster2-ewgateway.yaml
197187
}
198188

199-
snip_install_the_eastwest_gateway_in_cluster2_4() {
189+
snip_install_an_ambient_eastwest_gateway_in_cluster2_4() {
200190
kubectl --context="${CTX_CLUSTER2}" get svc istio-eastwestgateway -n istio-system
201191
}
202192

203-
! IFS=$'\n' read -r -d '' snip_install_the_eastwest_gateway_in_cluster2_4_out <<\ENDSNIP
193+
! IFS=$'\n' read -r -d '' snip_install_an_ambient_eastwest_gateway_in_cluster2_4_out <<\ENDSNIP
204194
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
205195
istio-eastwestgateway LoadBalancer 10.0.12.121 34.122.91.98 ... 51s
206196
ENDSNIP
207197

208-
snip_expose_services_in_cluster2_1() {
209-
kubectl --context="${CTX_CLUSTER2}" label svc helloworld -n sample istio.io/global="true"
210-
}
211-
212198
snip_enable_endpoint_discovery_1() {
213199
istioctl create-remote-secret \
214200
--context="${CTX_CLUSTER1}" \

content/en/docs/ambient/install/multicluster/multi-primary_multi-network/test.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ function install_istio_on_cluster1_istioctl {
3737
echo y | snip_configure_cluster1_as_a_primary_2
3838

3939
echo "Creating the east-west gateway"
40-
snip_install_the_eastwest_gateway_1
40+
snip_install_an_ambient_eastwest_gateway_in_cluster1_1
4141

4242
echo "Waiting for the east-west gateway to have an external IP"
43-
_verify_like snip_install_the_eastwest_gateway_4 "$snip_install_the_eastwest_gateway_4_out"
43+
_verify_like snip_install_an_ambient_eastwest_gateway_in_cluster1_4 "$snip_install_an_ambient_eastwest_gateway_in_cluster1_4_out"
4444
}
4545

4646
function install_istio_on_cluster2_istioctl {
@@ -55,10 +55,10 @@ function install_istio_on_cluster2_istioctl {
5555
echo y | snip_configure_cluster2_as_a_primary_2
5656

5757
echo "Creating the east-west gateway"
58-
snip_install_the_eastwest_gateway_in_cluster2_1
58+
snip_install_an_ambient_eastwest_gateway_in_cluster2_1
5959

6060
echo "Waiting for the east-west gateway to have an external IP"
61-
_verify_like snip_install_the_eastwest_gateway_in_cluster2_4 "$snip_install_the_eastwest_gateway_in_cluster2_4_out"
61+
_verify_like snip_install_an_ambient_eastwest_gateway_in_cluster2_4 "$snip_install_an_ambient_eastwest_gateway_in_cluster2_4_out"
6262
}
6363

6464
function install_istio_istioctl {

content/en/docs/ambient/install/multicluster/verify/index.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
---
22
title: Verify the ambient installation
3-
description: Verify that Istio ambient mode has been installed properly on multiple clusters.
3+
description: Verify that Istio ambient mesh has been installed properly on multiple clusters.
44
weight: 50
5-
keywords: [kubernetes,multicluster]
5+
keywords: [kubernetes,multicluster,ambient]
66
test: yes
77
owner: istio/wg-environments-maintainers
88
---
99
Follow this guide to verify that your ambient multicluster Istio installation is working
1010
properly.
1111

1212
Before proceeding, be sure to complete the steps under
13-
[before you begin](/docs/setup/install/multicluster/before-you-begin) as well as
14-
choosing and following one of the multicluster installation guides.
13+
[before you begin](/docs/ambient/install/multicluster/before-you-begin) as well as
14+
choosing and following one of the [multicluster installation guides](/docs/ambient/install/multicluster).
1515

16-
In this guide, we will verify multicluster is functional, deploy the `HelloWorld`
16+
In this guide, we will verify multicluster is fuenctional, deploy the `HelloWorld`
1717
application `v1` to `cluster1` and `v2` to `cluster2`. Upon receiving a request,
1818
`HelloWorld` will include its version in its response when we call the `/hello` path.
1919

@@ -64,7 +64,7 @@ $ kubectl create --context="${CTX_CLUSTER1}" namespace sample
6464
$ kubectl create --context="${CTX_CLUSTER2}" namespace sample
6565
{{< /text >}}
6666

67-
Enable automatic sidecar injection for the `sample` namespace:
67+
Enroll the `sample` namespace in the mesh:
6868

6969
{{< text bash >}}
7070
$ kubectl label --context="${CTX_CLUSTER1}" namespace sample \
@@ -186,7 +186,8 @@ $ kubectl exec --context="${CTX_CLUSTER1}" -n sample -c curl \
186186
{{< /text >}}
187187

188188
Repeat this request several times and verify that the `HelloWorld` version
189-
should toggle between `v1` and `v2`:
189+
should change between `v1` and `v2`, signifying that endpoints in both
190+
clusters are being used:
190191

191192
{{< text plain >}}
192193
Hello version: v2, instance: helloworld-v2-758dd55874-6x4t8
@@ -215,7 +216,4 @@ Hello version: v1, instance: helloworld-v1-86f77cd7bd-cpxhv
215216
**Congratulations!** You successfully installed and verified Istio on multiple
216217
clusters!
217218

218-
## Next Steps
219-
220-
Check out the [locality load balancing tasks](/docs/tasks/traffic-management/locality-load-balancing)
221-
to learn how to control the traffic across a multicluster mesh.
219+
<!-- TODO: Link to guide for locality load balancing once we add waypoint instructions -->

0 commit comments

Comments
 (0)