Service Mesh

ProxyMeshConfig

ProxyMeshConfig defines variables shared by all Envoy instances in the Istio service mesh.

FieldTypeDescription
egressProxyAddressstringAddress of the egress envoy service (e.g. istio-egress:80).
discoveryAddressstringAddress of the discovery service exposing SDS, CDS, RDS (e.g. istio-manager:8080).
mixerAddressstringMixer's address (e.g. istio-mixer:9090).
zipkinAddressstringAddress of the Zipkin service (e.g. zipkin:9411).
proxyListenPortint32Port on which envoy should listen for incoming connections from other services.
proxyAdminPortint32Port on which envoy should listen for administrative commands.
drainDurationDurationThe time in seconds that Envoy will drain connections during a hot restart. MUST be >=1s (e.g., 1s/1m/1h)
parentShutdownDurationDurationThe time in seconds that Envoy will wait before shutting down the parent process during a hot restart. MUST be >=1s (e.g., 1s/1m/1h). MUST BE greater than drainDuration parameter.
istioServiceClusterstring

istioServiceCluster defines the name for the serviceCluster that is shared by all Envoy instances. This setting corresponds to --service-cluster flag in Envoy. In a typical Envoy deployment, the service-cluster flag is used to identify the caller, for source-based routing scenarios.

Since Istio does not assign a local service/service version to each Envoy instance, the name is same for all of them. However, the source/caller's identity (e.g., IP address) is encoded in the --service-node flag when launching Envoy. When the RDS service receives API calls from Envoy, it uses the value of the service-node flag to compute routes that are relative to the service instances located at that IP address.

discoveryRefreshDelayDurationPolling interval for service discovery. (MUST BE >=1ms)
connectTimeoutDurationConnection timeout used by Envoy. (MUST BE >=1ms)
ingressClassstringClass of ingress resources to be processed by Istio ingress controller. This corresponds to the value of "kubernetes.io/ingress.class" annotation.
ingressServicestringName of the Kubernetes service used for the istio ingress controller.
ingressControllerModeIngressControllerModeDefines whether to use Istio ingress controller for annotated or all ingress resources.
authPolicyAuthPolicyAuthentication policy defines the global switch to control authentication for Envoy-to-Envoy communication.
authCertsPathstringPath to the secrets used by the authentication policy.

AuthPolicy

ValueDescription
NONEDo not encrypt Envoy to Envoy traffic.
MUTUALTLSEnvoy to Envoy traffic is wrapped into mutual TLS connections.

IngressControllerMode

ValueDescription
OFFDisables Istio ingress controller.
DEFAULTIstio ingress controller will act on ingress resources that do not contain any annotation or whose annotations match the value specified in the ingressClass parameter described earlier. Use this mode if Istio ingress controller will be the default ingress controller for the entire kubernetes cluster.
STRICTIstio ingress controller will only act on ingress resources whose annotations match the value specified in the ingressClass parameter described earlier. Use this mode if Istio ingress controller will be a secondary ingress controller (e.g., in addition to a cloud-provided ingress controller).