@@ -19,6 +19,16 @@ In addition, review the requirements and perform the initial steps below.
19
19
This guide requires that you have two Kubernetes clusters with any of the
20
20
[ supported Kubernetes versions:] ( /docs/releases/supported-releases#support-status-of-istio-releases ) {{< supported_kubernetes_versions >}}.
21
21
22
+ {{< tip >}}
23
+ If you are testing multicluster setup on ` kind ` , you can use the script ` samples/kind-lb/setupkind.sh ` to quickly set up clusters with load balancer support:
24
+
25
+ {{< text bash >}}
26
+ $ @samples/kind-lb /setupkind.sh@ --cluster-name cluster-1 --ip-space 254
27
+ $ @samples/kind-lb /setupkind.sh@ --cluster-name cluster-2 --ip-space 255
28
+ {{< /text >}}
29
+
30
+ {{< /tip >}}
31
+
22
32
### API Server Access
23
33
24
34
The API Server in each cluster must be accessible to the other clusters in the
@@ -46,6 +56,16 @@ $ export CTX_CLUSTER1=<your cluster1 context>
46
56
$ export CTX_CLUSTER2=<your cluster2 context >
47
57
{{< /text >}}
48
58
59
+ {{< tip >}}
60
+ If you're using ` kind ` , set the following contexts:
61
+
62
+ {{< text bash >}}
63
+ $ export CTX_CLUSTER1=$(kubectl config get-contexts -o name | grep kind-cluster-1)
64
+ $ export CTX_CLUSTER2=$(kubectl config get-contexts -o name | grep kind-cluster-2)
65
+ {{< /text >}}
66
+
67
+ {{< /tip >}}
68
+
49
69
## Configure Trust
50
70
51
71
A multicluster service mesh deployment requires that you establish trust
@@ -79,6 +99,48 @@ CA typically requires reinstalling Istio. The installation instructions
79
99
below may have to be altered based on your choice of CA.
80
100
{{< /tip >}}
81
101
102
+ {{< tip >}}
103
+ If you're using ` kind ` , you can quickly generate self-signed CA certificates
104
+ for your clusters using the provided Makefile:
105
+
106
+ {{< text bash >}}
107
+ $ make -f @tools/certs /Makefile.selfsigned.mk@ \
108
+ ROOTCA_CN="Root CA" \
109
+ ROOTCA_ORG=istio.io \
110
+ root-ca
111
+ $ make -f @tools/certs /Makefile.selfsigned.mk@ \
112
+ INTERMEDIATE_CN="Cluster 1 Intermediate CA" \
113
+ INTERMEDIATE_ORG=istio.io \
114
+ cluster1-cacerts
115
+ $ make -f @tools/certs /Makefile.selfsigned.mk@ \
116
+ INTERMEDIATE_CN="Cluster 2 Intermediate CA" \
117
+ INTERMEDIATE_ORG=istio.io \
118
+ cluster2-cacerts
119
+ {{< /text >}}
120
+
121
+ This will create a root CA and intermediate CA certificates for each cluster, which you can then use to set up trust between your clusters.
122
+
123
+ To create the ` cacerts ` secret in each cluster, use the following command after generating the certificates:
124
+
125
+ {{< text bash >}}
126
+ $ kubectl --context="${CTX_CLUSTER1}" create namespace istio-system
127
+ $ kubectl --context="${CTX_CLUSTER1}" create secret generic cacerts -n istio-system \
128
+ --from-file=ca-cert.pem=cluster1/ca-cert.pem \
129
+ --from-file=ca-key.pem=cluster1/ca-key.pem \
130
+ --from-file=root-cert.pem=cluster1/root-cert.pem \
131
+ --from-file=cert-chain.pem=cluster1/cert-chain.pem
132
+ $ kubectl --context="${CTX_CLUSTER2}" create namespace istio-system
133
+ $ kubectl --context="${CTX_CLUSTER2}" create secret generic cacerts -n istio-system \
134
+ --from-file=ca-cert.pem=cluster2/ca-cert.pem \
135
+ --from-file=ca-key.pem=cluster2/ca-key.pem \
136
+ --from-file=root-cert.pem=cluster2/root-cert.pem \
137
+ --from-file=cert-chain.pem=cluster2/cert-chain.pem
138
+ {{< /text >}}
139
+
140
+ This will create the ` cacerts ` secret in the ` istio-system ` namespace of each cluster, allowing Istio to use your custom CA certificates.
141
+
142
+ {{< /tip >}}
143
+
82
144
## Next steps
83
145
84
146
You're now ready to install an Istio mesh across multiple clusters. The
0 commit comments