You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Optional: only one of distribute, failover or failoverPriority can be set.
304
+
// Explicitly specify the region traffic will land on when endpoints in local region becomes unhealthy.
305
+
// Should be used together with OutlierDetection to detect unhealthy endpoints.
306
+
// Note: if no OutlierDetection specified, this will not take effect.
307
+
Failover []Failover`json:"failover,omitempty"`
308
+
// failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing.
309
+
// This is to support traffic failover across different groups of endpoints.
310
+
// Suppose there are total N labels specified:
311
+
//
312
+
// 1. Endpoints matching all N labels with the client proxy have priority P(0) i.e. the highest priority.
313
+
// 2. Endpoints matching the first N-1 labels with the client proxy have priority P(1) i.e. second highest priority.
314
+
// 3. By extension of this logic, endpoints matching only the first label with the client proxy has priority P(N-1) i.e. second lowest priority.
315
+
// 4. All the other endpoints have priority P(N) i.e. lowest priority.
316
+
//
317
+
// Note: For a label to be considered for match, the previous labels must match, i.e. nth label would be considered matched only if first n-1 labels match.
318
+
//
319
+
// It can be any label specified on both client and server workloads.
320
+
// The following labels which have special semantic meaning are also supported:
321
+
//
322
+
// - `topology.istio.io/network` is used to match the network metadata of an endpoint, which can be specified by pod/namespace label `topology.istio.io/network`, sidecar env `ISTIO_META_NETWORK` or MeshNetworks.
323
+
// - `topology.istio.io/cluster` is used to match the clusterID of an endpoint, which can be specified by pod label `topology.istio.io/cluster` or pod env `ISTIO_META_CLUSTER_ID`.
324
+
// - `topology.kubernetes.io/region` is used to match the region metadata of an endpoint, which maps to Kubernetes node label `topology.kubernetes.io/region` or the deprecated label `failure-domain.beta.kubernetes.io/region`.
325
+
// - `topology.kubernetes.io/zone` is used to match the zone metadata of an endpoint, which maps to Kubernetes node label `topology.kubernetes.io/zone` or the deprecated label `failure-domain.beta.kubernetes.io/zone`.
326
+
// - `topology.istio.io/subzone` is used to match the subzone metadata of an endpoint, which maps to Istio node label `topology.istio.io/subzone`.
327
+
//
328
+
// The below topology config indicates the following priority levels:
329
+
//
330
+
// ```yaml
331
+
// failoverPriority:
332
+
// - "topology.istio.io/network"
333
+
// - "topology.kubernetes.io/region"
334
+
// - "topology.kubernetes.io/zone"
335
+
// - "topology.istio.io/subzone"
336
+
// ```
337
+
//
338
+
// 1. endpoints match same [network, region, zone, subzone] label with the client proxy have the highest priority.
339
+
// 2. endpoints have same [network, region, zone] label but different [subzone] label with the client proxy have the second highest priority.
340
+
// 3. endpoints have same [network, region] label but different [zone] label with the client proxy have the third highest priority.
341
+
// 4. endpoints have same [network] but different [region] labels with the client proxy have the fourth highest priority.
342
+
// 5. all the other endpoints have the same lowest priority.
343
+
//
344
+
// Optional: only one of distribute, failover or failoverPriority can be set.
345
+
// And it should be used together with `OutlierDetection` to detect unhealthy endpoints, otherwise has no effect.
0 commit comments