@@ -76,40 +76,38 @@ The new installer recommends isolating components in different namespaces with d
7676Recommended mode:
7777
7878Singleton:
79+
7980- ` istio-system ` : root CA and cert provisioning components.
8081- ` istio-cni ` : optional CNI (avoids requiring root/netadmin from workload pods)
8182
8283Multi-environment components:
84+
8385- ` istio-control ` : config, discovery, auto-inject. All impact the generated config including enforcement of policies
8486and secure naming.
8587- ` istio-telemetry ` : mixer, kiali, tracing providers, grafana, prometheus. Custom install of prometheus, grafana can
8688be used instead in dedicated namespaces.
8789- ` istio-policy `
88- - ` istio-gateways ` - production domains should be in a separate namespace, to restrict access. It is possible to
90+ - ` istio-gateways ` : production domains should be in a separate namespace, to restrict access. It is possible to
8991segregate gateways by the team that control access to the domain. Access to the gateway namespace provides access
9092to certificates and control over domain delegation. The optional egress gateway provides control over outbound
9193traffic.
9294
9395In addition, it is recommended to have a second set of the multi-environment components to use
9496for canary/testing new versions. In this doc we will use an environment based on the ` istio-master ` namespace:
97+
9598- ` istio-master ` : config, discovery, etc
9699- ` istio-telemetry-master `
97100- ` istio-gateway-master `
98101- ` istio-policy-master `
99102...
100103
101-
102- # Installing
103-
104104For each component, there are 2 styles of installing, using 'helm + tiller' or '` helm template ` + ` kubectl apply --prune ` '.
105105
106106Using ` kubectl --prune ` is recommended:
107107
108108``` bash
109-
110109helm template --namespace $NAMESPACE -n $COMPONENT $CONFIGDIR -f global.yaml | \
111110 kubectl apply -n $NAMESPACE --prune -l release=$COMPONENT -f -
112-
113111```
114112
115113Using helm:
@@ -137,13 +135,13 @@ Istio has strong integration with certmanager. Some operators may want to keep
137135CRDs in place and not have Istio modify them. In this case, it is necessary to apply CRD files individually.
138136
139137``` bash
140- kubectl apply -k github.com/istio/installer/crds
138+ kubectl apply -k github.com/istio/installer/crds
141139```
142140
143141or
144142
145143``` bash
146- kubectl apply -f crds/files
144+ kubectl apply -f crds/files
147145```
148146
149147## Install Security
@@ -198,36 +196,34 @@ Galley provides config access and validation. Only one environment should enable
198196currently supported in multiple namespaces.
199197
200198``` bash
201- iop istio-control istio-config $IBASE /istio-control/istio-config --set configValidation=true
199+ iop istio-control istio-config $IBASE /istio-control/istio-config --set configValidation=true
202200
203- # Second Galley, using master version of istio
204- TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-master istio-config-master $IBASE /istio-control/istio-config
201+ # Second Galley, using master version of istio
202+ TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-master istio-config-master $IBASE /istio-control/istio-config
205203```
206204
207205Other MCP providers can be used - currently the address and credentials need to match what galley is using.
208206
209207Discovery, Policy and Telemetry components will need to be configured with the address of the config
210208server - either in the local cluster or in a central cluster.
211209
212-
213210### Discovery (Pilot)
214211
215212This can run in any cluster. A mesh should have at least one cluster should run Pilot or equivalent XDS server,
216213and it is recommended to have Pilot running in each region and in multiple availability zones for multi cluster.
217214
218215``` bash
219- iop istio-control istio-discovery $IBASE /istio-control/istio-discovery \
220- --set global.istioNamespace=istio-system \
221- --set global.configNamespace=istio-control \
222- --set global.telemetryNamespace=istio-telemetry \
223- --set global.policyNamespace=istio-policy
224- TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-master istio-discovery-master $IBASE /istio-control/istio-discovery \
225- --set policy.enable=false \
226- --set global.istioNamespace=istio-master \
227- --set global.configNamespace=istio-master \
228- --set global.telemetryNamespace=istio-telemetry-master \
229- --set global.policyNamespace=istio-policy-master
230-
216+ iop istio-control istio-discovery $IBASE /istio-control/istio-discovery \
217+ --set global.istioNamespace=istio-system \
218+ --set global.configNamespace=istio-control \
219+ --set global.telemetryNamespace=istio-telemetry \
220+ --set global.policyNamespace=istio-policy
221+ TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-master istio-discovery-master $IBASE /istio-control/istio-discovery \
222+ --set policy.enable=false \
223+ --set global.istioNamespace=istio-master \
224+ --set global.configNamespace=istio-master \
225+ --set global.telemetryNamespace=istio-telemetry-master \
226+ --set global.policyNamespace=istio-policy-master
231227```
232228
233229### Auto-injection
@@ -243,17 +239,15 @@ If `istio-system` has set `enableNamespaceByDefault` you must set `istio-inject:
243239istio-system from taking over. In this case, it is recommended to first install ` istio-control ` autoinject with
244240the default disabled, test it, and move the default from ` istio-system ` to ` istio-control ` .
245241
246-
247242``` bash
248- # ENABLE_CNI is set to true if istio-cni is installed
249- iop istio-control istio-autoinject $IBASE /istio-control/istio-autoinject --set sidecarInjectorWebhook.enableNamespacesByDefault=true --set global.configNamespace=istio-control \
250- --set istio_cni.enabled=${ENABLE_CNI}
251-
252- # Second auto-inject using master version of istio
253- # Notice the different options
254- TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-master istio-autoinject-master $IBASE /istio-control/istio-autoinject \
255- --set global.configNamespace=istio-master
256-
243+ # ENABLE_CNI is set to true if istio-cni is installed
244+ iop istio-control istio-autoinject $IBASE /istio-control/istio-autoinject --set sidecarInjectorWebhook.enableNamespacesByDefault=true --set global.configNamespace=istio-control \
245+ --set istio_cni.enabled=${ENABLE_CNI}
246+
247+ # Second auto-inject using master version of istio
248+ # Notice the different options
249+ TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-master istio-autoinject-master $IBASE /istio-control/istio-autoinject \
250+ --set global.configNamespace=istio-master
257251```
258252
259253## Gateways
@@ -265,7 +259,6 @@ gateway in a dedicated namespace and restrict access.
265259
266260For large-scale gateways it is optionally possible to use a dedicated pilot in the gateway namespace.
267261
268-
269262## K8S Ingress
270263
271264To support K8S ingress we currently use a separate namespace. In Istio 1.1, this requires using a dedicated
@@ -275,42 +268,27 @@ Note that running a dedicated Pilot for ingress/gateways is supported and recomm
275268but in the case of K8S ingress it is currently required.
276269
277270``` bash
278- iop istio-ingress istio-ingress $IBASE /gateways/istio-ingress --set global.configNamespace=istio-control
279- TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-ingress-master istio-ingress $IBASE /gateways/istio-ingress \
280- --set global.configNamespace=istio-master\
281-
271+ iop istio-ingress istio-ingress $IBASE /gateways/istio-ingress --set global.configNamespace=istio-control
272+ TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-ingress-master istio-ingress $IBASE /gateways/istio-ingress \
273+ --set global.configNamespace=istio-master\
282274```
283275
284276## Telemetry
285277
286278``` bash
287- iop istio-telemetry istio-grafana $IBASE /istio-telemetry/grafana/ --set global.configNamespace=istio-control
288- iop istio-telemetry istio-mixer $IBASE /istio-telemetry/mixer-telemetry/ --set global.configNamespace=istio-control
289- iop istio-telemetry istio-prometheus $IBASE /istio-telemetry/prometheus/ --set global.configNamespace=istio-control
290-
291- TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-telemetry-master istio-grafana $IBASE /istio-telemetry/grafana/ \
292- --set global.configNamespace=istio-master
293- TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-telemetry-master istio-mixer $IBASE /istio-telemetry/mixer-telemetry/ \
294- --set global.configNamespace=istio-master
295- TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-telemetry-master istio-prometheus $IBASE /istio-telemetry/prometheus/ \
296- --set global.configNamespace=istio-master
279+ iop istio-telemetry istio-grafana $IBASE /istio-telemetry/grafana/ --set global.configNamespace=istio-control
280+ iop istio-telemetry istio-mixer $IBASE /istio-telemetry/mixer-telemetry/ --set global.configNamespace=istio-control
281+ iop istio-telemetry istio-prometheus $IBASE /istio-telemetry/prometheus/ --set global.configNamespace=istio-control
282+
283+ TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-telemetry-master istio-grafana $IBASE /istio-telemetry/grafana/ \
284+ --set global.configNamespace=istio-master
285+ TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-telemetry-master istio-mixer $IBASE /istio-telemetry/mixer-telemetry/ \
286+ --set global.configNamespace=istio-master
287+ TAG=master-latest-daily HUB=gcr.io/istio-release iop istio-telemetry-master istio-prometheus $IBASE /istio-telemetry/prometheus/ \
288+ --set global.configNamespace=istio-master
297289```
298290
299- ## Policy
300-
301- TODO - see example
302-
303- ## Egress
304-
305-
306- ## Other components
307-
308- ### Kiali
309-
310- ###
311-
312291## Additional test templates
313292
314293A number of helm test setups are general-purpose and should be installable in any cluster, to confirm
315294Istio works properly and allow testing the specific install.
316-
0 commit comments