Skip to content

Commit 53ae080

Browse files
authored
Merge pull request #279137 from MicrosoftDocs/main
6/25 11:00 AM IST Publish
2 parents d371a97 + d20c6c9 commit 53ae080

File tree

48 files changed

+335
-1069
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+335
-1069
lines changed

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,11 @@
640640
"redirect_url": "/azure/azure-maps/supported-languages",
641641
"redirect_document_id": true
642642
},
643+
{
644+
"source_path_from_root": "/articles/azure-maps/tutorial-geofence.md",
645+
"redirect_url": "/azure/azure-maps/",
646+
"redirect_document_id": true
647+
},
643648
{
644649
"source_path_from_root": "/articles/azure-maps/search-categories.md",
645650
"redirect_url": "/azure/azure-maps/supported-search-categories",

articles/aks/azure-blob-csi.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to use the Container Storage Interface (CSI) driver for A
44
ms.topic: article
55
ms.custom:
66
ms.subservice: aks-storage
7-
ms.date: 11/24/2023
7+
ms.date: 06/24/2024
88
author: tamram
99
ms.author: tamram
1010

@@ -141,7 +141,7 @@ To have a storage volume persist for your workload, you can use a StatefulSet. T
141141
"kubernetes.io/os": linux
142142
containers:
143143
- name: statefulset-blob-nfs
144-
image: mcr.microsoft.com/oss/nginx/nginx:1.19.5
144+
image: mcr.microsoft.com/oss/nginx/nginx:1.22
145145
volumeMounts:
146146
- name: persistent-storage
147147
mountPath: /mnt/blob
@@ -190,7 +190,7 @@ To have a storage volume persist for your workload, you can use a StatefulSet. T
190190
"kubernetes.io/os": linux
191191
containers:
192192
- name: statefulset-blob
193-
image: mcr.microsoft.com/oss/nginx/nginx:1.19.5
193+
image: mcr.microsoft.com/oss/nginx/nginx:1.22
194194
volumeMounts:
195195
- name: persistent-storage
196196
mountPath: /mnt/blob

articles/aks/istio-deploy-addon.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export LOCATION=<location>
3434

3535
## Install Istio add-on
3636

37-
This section includes steps to install the Istio add-on during cluster creation or enable for an existing cluster using the Azure CLI. If you want to install the add-on using Bicep, see [install an AKS cluster with the Istio service mesh add-on using Bicep][install-aks-cluster-istio-bicep]. To learn more about the Bicep resource definition for an AKS cluster, see [Bicep managedCluster reference][bicep-aks-resource-definition].
37+
This section includes steps to install the Istio add-on during cluster creation or enable for an existing cluster using the Azure CLI. If you want to install the add-on using Bicep, see the guide for [installing an AKS cluster with the Istio service mesh add-on using Bicep][install-aks-cluster-istio-bicep]. To learn more about the Bicep resource definition for an AKS cluster, see [Bicep managedCluster reference][bicep-aks-resource-definition].
3838

3939
### Revision selection
4040

@@ -98,12 +98,13 @@ Confirm the `istiod` pod has a status of `Running`. For example:
9898

9999
```
100100
NAME READY STATUS RESTARTS AGE
101-
istiod-asm-1-18-74f7f7c46c-xfdtl 1/1 Running 0 2m
101+
istiod-asm-1-18-74f7f7c46c-xfdtl 2/2 Running 0 2m
102+
istiod-asm-1-18-74f7f7c46c-4nt2v 2/2 Running 0 2m
102103
```
103104

104105
## Enable sidecar injection
105106

106-
To automatically install sidecar to any new pods, you will need to annotate your namespaces with the revision label corresponding to the control plane revision currently installed.
107+
To automatically install sidecar to any new pods, you need to annotate your namespaces with the revision label corresponding to the control plane revision currently installed.
107108

108109
If you're unsure which revision is installed, use:
109110

@@ -204,7 +205,7 @@ reviews-v2-7d79d5bd5d-8zzqd 2/2 Running 0 2m41s
204205
reviews-v3-7dbcdcbc56-m8dph 2/2 Running 0 2m41s
205206
```
206207

207-
Confirm that all the pods have status of `Running` with 2 containers in the `READY` column. The second container (`istio-proxy`) added to each pod is the Envoy sidecar injected by Istio, and the other is the application container.
208+
Confirm that all the pods have status of `Running` with two containers in the `READY` column. The second container (`istio-proxy`) added to each pod is the Envoy sidecar injected by Istio, and the other is the application container.
208209

209210
To test this sample application against ingress, check out [next-steps](#next-steps).
210211

@@ -240,6 +241,8 @@ az group delete --name ${RESOURCE_GROUP} --yes --no-wait
240241
## Next steps
241242

242243
* [Deploy external or internal ingresses for Istio service mesh add-on][istio-deploy-ingress]
244+
* [Scale istiod and ingress gateway HPA][istio-scaling-guide]
245+
243246

244247
<!--- External Links --->
245248
[install-aks-cluster-istio-bicep]: https://github.com/Azure-Samples/aks-istio-addon-bicep
@@ -255,4 +258,4 @@ az group delete --name ${RESOURCE_GROUP} --yes --no-wait
255258
[istio-deploy-ingress]: istio-deploy-ingress.md
256259
[az-aks-mesh-get-revisions]: /cli/azure/aks/mesh#az-aks-mesh-get-revisions(aks-preview)
257260
[bicep-aks-resource-definition]: /azure/templates/microsoft.containerservice/managedclusters
258-
261+
[istio-scaling-guide]: istio-scale.md#scaling

articles/aks/istio-deploy-ingress.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,8 @@ az group delete --name ${RESOURCE_GROUP} --yes --no-wait
239239
## Next steps
240240

241241
* [Secure ingress gateway for Istio service mesh add-on][istio-secure-gateway]
242+
* [Scale ingress gateway HPA][istio-scaling-guide]
242243

243244
[istio-deploy-addon]: istio-deploy-addon.md
244245
[istio-secure-gateway]: istio-secure-gateway.md
245-
246+
[istio-scaling-guide]: istio-scale.md#scaling

articles/aks/istio-scale.md

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
2-
title: Istio service mesh AKS add-on performance
3-
description: Istio service mesh AKS add-on performance
2+
title: Istio service mesh Azure Kubernetes Service add-on performance and scaling
3+
description: Istio service mesh Azure Kubernetes Service add-on performance and scaling
44
ms.topic: article
55
ms.custom:
66
ms.service: azure-kubernetes-service
77
ms.date: 03/19/2024
88
ms.author: shalierxia
99
---
1010

11-
# Istio service mesh add-on performance
12-
The Istio-based service mesh add-on is logically split into a control plane (`istiod`) and a data plane. The data plane is composed of Envoy sidecar proxies inside workload pods. Istiod manages and configures these Envoy proxies. This article presents the performance of both the control and data plane for revision asm-1-19, including resource consumption, sidecar capacity, and latency overhead. Additionally, it provides suggestions for addressing potential strain on resources during periods of heavy load.
11+
# Istio service mesh add-on performance and scaling
12+
The Istio-based service mesh add-on is logically split into a control plane (`istiod`) and a data plane. The data plane is composed of Envoy sidecar proxies inside workload pods. Istiod manages and configures these Envoy proxies. This article presents the performance of both the control and data plane for revision asm-1-19, including resource consumption, sidecar capacity, and latency overhead. Additionally, it provides suggestions for addressing potential strain on resources during periods of heavy load. This article also covers how to customize scaling for the control plane and gateways.
1313

1414
## Control plane performance
1515
[Istiod’s CPU and memory requirements][control-plane-performance] correlate with the rate of deployment and configuration changes and the number of proxies connected. The scenarios tested were:
@@ -20,7 +20,7 @@ The Istio-based service mesh add-on is logically split into a control plane (`is
2020
#### Test specifications
2121
- One `istiod` instance with default settings
2222
- Horizontal pod autoscaling disabled
23-
- Tested with two network plugins: Azure CNI Overlay and Azure CNI Overlay with Cilium [ (recommended network plugins for large scale clusters) ](/azure/aks/azure-cni-overlay?tabs=kubectl#choosing-a-network-model-to-use)
23+
- Tested with two network plugins: Azure Container Networking Interface (CNI) Overlay and Azure CNI Overlay with Cilium [ (recommended network plugins for large scale clusters) ](/azure/aks/azure-cni-overlay?tabs=kubectl#choosing-a-network-model-to-use)
2424
- Node SKU: Standard D16 v3 (16 vCPU, 64-GB memory)
2525
- Kubernetes version: 1.28.5
2626
- Istio revision: asm-1-19
@@ -70,43 +70,71 @@ The [ClusterLoader2 framework][clusterloader2] was used to determine the maximum
7070
## Data plane performance
7171
Various factors impact [sidecar performance][data-plane-performance] such as request size, number of proxy worker threads, and number of client connections. Additionally, any request flowing through the mesh traverses the client-side proxy and then the server-side proxy. Therefore, latency and resource consumption are measured to determine the data plane performance.
7272

73-
[Fortio][fortio] was used to create the load. The test was conducted with the [Istio benchmark repository][istio-benchmark] that was modified for use with the add-on.
73+
[`Fortio`][fortio] was used to create the load. The test was conducted with the [Istio benchmark repository][istio-benchmark] that was modified for use with the add-on.
7474

7575
#### Test specifications
7676
- Tested with two network plugins: Azure CNI Overlay and Azure CNI Overlay with Cilium [ (recommended network plugins for large scale clusters) ](/azure/aks/azure-cni-overlay?tabs=kubectl#choosing-a-network-model-to-use)
7777
- Node SKU: Standard D16 v5 (16 vCPU, 64-GB memory)
7878
- Kubernetes version: 1.28.5
7979
- Two proxy workers
8080
- 1-KB payload
81-
- 1000 QPS at varying client connections
82-
- `http/1.1` protocol and mutual TLS enabled
81+
- 1,000 Queries per second (QPS) at varying client connections
82+
- `http/1.1` protocol and mutual Transport Layer Security (TLS) enabled
8383
- 26 data points collected
8484

8585
#### CPU and memory
86-
The memory and CPU usage for both the client and server proxy for 16 client connections and 1000 QPS across all network plugin scenarios is roughly 0.4 vCPU and 72 MB.
86+
The memory and CPU usage for both the client and server proxy for 16 client connections and 1,000 QPS across all network plugin scenarios is roughly 0.4 vCPU and 72 MB.
8787

8888
#### Latency
8989
The sidecar Envoy proxy collects raw telemetry data after responding to a client, which doesn't directly affect the request's total processing time. However, this process delays the start of handling the next request, contributing to queue wait times and influencing average and tail latencies. Depending on the traffic pattern, the actual tail latency varies.
9090

91-
The following evaluates the impact of adding sidecar proxies to the data path, showcasing the P90 and P99 latency.
91+
The following results evaluate the impact of adding sidecar proxies to the data path, showcasing the P90 and P99 latency.
9292

9393
| Azure CNI Overlay |Azure CNI Overlay with Cilium |
9494
|:-------------------------:|:-------------------------:|
9595
[ ![Diagram that compares P99 latency for Azure CNI Overlay.](./media/aks-istio-addon/latency-box-plot/overlay-azure-p99.png) ](./media/aks-istio-addon/latency-box-plot/overlay-azure-p99.png#lightbox) | [ ![Diagram that compares P99 latency for Azure CNI Overlay with Cilium.](./media/aks-istio-addon/latency-box-plot/overlay-cilium-p99.png) ](./media/aks-istio-addon/latency-box-plot/overlay-cilium-p99.png#lightbox)
9696
[ ![Diagram that compares P90 latency for Azure CNI Overlay.](./media/aks-istio-addon/latency-box-plot/overlay-azure-p90.png) ](./media/aks-istio-addon/latency-box-plot/overlay-azure-p90.png#lightbox) | [ ![Diagram that compares P90 latency for Azure CNI Overlay with Cilium.](./media/aks-istio-addon/latency-box-plot/overlay-cilium-p90.png) ](./media/aks-istio-addon/latency-box-plot/overlay-cilium-p90.png#lightbox)
9797

98+
## Scaling
99+
100+
### Horizontal pod autoscaling
101+
102+
[Horizontal pod autoscaling (HPA)][hpa] is enabled for the `istiod` and ingress gateway pods. The default configurations for `istiod` and the gateways are:
103+
- Min Replicas: 2
104+
- Max Replicas: 5
105+
- CPU Utilization: 80%
106+
107+
> [!NOTE]
108+
> To prevent conflicts with the `PodDisruptionBudget`, the add-on does not allow setting the `minReplicas` below the initial default of `2`.
109+
110+
The following are the `istiod` and ingress gateway HPA resources:
111+
```console
112+
NAMESPACE NAME REFERENCE
113+
aks-istio-ingress aks-istio-ingressgateway-external-asm-1-19 Deployment/aks-istio-ingressgateway-external-asm-1-19
114+
115+
aks-istio-ingress aks-istio-ingressgateway-internal-asm-1-19 Deployment/aks-istio-ingressgateway-internal-asm-1-19
116+
117+
aks-istio-system istiod-asm-1-19 Deployment/istiod-asm-1-19
118+
```
119+
120+
The HPA configuration can be modified through patches and direct edits. Example:
121+
122+
```bash
123+
kubectl patch hpa aks-istio-ingressgateway-external-asm-1-19 -n aks-istio-ingress --type merge --patch '{"spec": {"minReplicas": 3, "maxReplicas": 6}}'
124+
```
125+
98126
## Service entry
99-
Istio's ServiceEntry custom resource definition enables adding other services into the Istio’s internal service registry. A [ServiceEntry][serviceentry] allows services already in the mesh to route or access the services specified. However, the configuration of multiple ServiceEntries with the `resolution` field set to DNS can cause a [heavy load on DNS servers][understanding-dns]. The following suggestions can help reduce the load:
127+
Istio's ServiceEntry custom resource definition enables adding other services into the Istio’s internal service registry. A [ServiceEntry][serviceentry] allows services already in the mesh to route or access the services specified. However, the configuration of multiple ServiceEntries with the `resolution` field set to DNS can cause a [heavy load on Domain Name System (DNS) servers][understanding-dns]. The following suggestions can help reduce the load:
100128

101129
- Switch to `resolution: NONE` to avoid proxy DNS lookups entirely. Suitable for most use cases.
102130
- Increase TTL (Time To Live) if you control the domains being resolved.
103131
- Limit the ServiceEntry scope with `exportTo`.
104132

105-
106133
[control-plane-performance]: https://istio.io/latest/docs/ops/deployment/performance-and-scalability/#control-plane-performance
107134
[data-plane-performance]: https://istio.io/latest/docs/ops/deployment/performance-and-scalability/#data-plane-performance
108135
[clusterloader2]: https://github.com/kubernetes/perf-tests/tree/master/clusterloader2#clusterloader
109136
[fortio]: https://fortio.org/
110137
[istio-benchmark]: https://github.com/istio/tools/tree/master/perf/benchmark#istio-performance-benchmarking
111138
[serviceentry]: https://istio.io/latest/docs/reference/config/networking/service-entry/
112139
[understanding-dns]: https://preliminary.istio.io/latest/docs/ops/configuration/traffic-management/dns/#proxy-dns-resolution
140+
[hpa]: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

articles/app-service/environment/overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.custom: "UpdateFrequency3, references_regions"
1010

1111
# App Service Environment overview
1212

13-
An App Service Environment is an Azure App Service feature that provides a fully isolated and dedicated environment for running App Service apps securely at high scale. Unlike the App Service public multitenant offering where supporting ingfrastructure is shared, with App Service Environment, compute is dedicated to a single customer. For more information on the differences between App Service Environment and App Service public multitenant, see the [comparison of the offerings](ase-multi-tenant-comparison.md).
13+
An App Service Environment is an Azure App Service feature that provides a fully isolated and dedicated environment for running App Service apps securely at high scale. Unlike the App Service public multitenant offering where supporting infrastructure is shared, with App Service Environment, compute is dedicated to a single customer. For more information on the differences between App Service Environment and App Service public multitenant, see the [comparison of the offerings](ase-multi-tenant-comparison.md).
1414

1515
> [!NOTE]
1616
> This article covers the features, benefits, and use cases of App Service Environment v3, which is used with App Service Isolated v2 plans.

articles/azure-app-configuration/quickstart-javascript-provider.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -307,9 +307,7 @@ run().catch(console.error);
307307
308308
## Next steps
309309
310-
In this quickstart, you created a new App Configuration store and learned how to access key-values using the App Configuration JavaScript provider in a Node.js app.
311-
312-
For more code samples, visit:
310+
In this quickstart, you created a new App Configuration store and learned how to access key-values using the App Configuration JavaScript provider in a Node.js app. To learn how to configure your app to dynamically refresh configuration settings, continue to the next tutorial.
313311
314312
> [!div class="nextstepaction"]
315-
> [Azure App Configuration JavaScript provider](https://github.com/Azure/AppConfiguration-JavaScriptProvider/tree/main/examples)
313+
> [Enable dynamic configuration](./enable-dynamic-configuration-javascript.md)

articles/azure-maps/toc.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ items:
3636
items:
3737
- name: Create indoor maps
3838
href: tutorial-creator-indoor-maps.md
39-
- name: Set up a geofence
40-
href: tutorial-geofence.md
4139
- name: Spatial analytics
4240
href: tutorial-iot-hub-maps.md
4341
- name: EV routing using Azure Notebooks (Python)

0 commit comments

Comments
 (0)