Skip to content

Commit d0b114d

Browse files
committed
Merging changes synced from https://github.com/MicrosoftDocs/azure-docs-pr (branch live)
2 parents 7ea82c9 + 40a2b22 commit d0b114d

File tree

135 files changed

+1984
-886
lines changed

Some content is hidden

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

135 files changed

+1984
-886
lines changed

.openpublishing.redirection.key-vault.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
"redirect_url": "/azure/key-vault/basic-concepts",
1616
"redirect_document_id": false
1717
},
18+
{
19+
"source_path_from_root": "/articles/key-vault/general/import-cert-faqs.yml",
20+
"redirect_url": "/azure/key-vault/general/faq",
21+
"redirect_document_id": false
22+
},
1823
{
1924
"source_path_from_root": "/articles/key-vault/certificate-scenarios.md",
2025
"redirect_url": "/azure/key-vault/certificates/certificate-scenarios",

articles/active-directory/develop/scenario-spa-acquire-token.md

Lines changed: 302 additions & 248 deletions
Large diffs are not rendered by default.

articles/aks/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,8 @@
473473
href: keda-about.md
474474
- name: Use ARM template
475475
href: keda-deploy-add-on-arm.md
476+
- name: Use Azure CLI
477+
href: keda-deploy-add-on-cli.md
476478
- name: Kubernetes Event-driven Autoscaler (KEDA) integrations
477479
href: keda-integrations.md
478480
- name: Use Web Application Routing (preview)

articles/aks/csi-storage-drivers.md

Lines changed: 60 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,78 @@
11
---
2-
title: Container Storage Interface (CSI) drivers in Azure Kubernetes Service (AKS)
3-
description: Learn how to enable the Container Storage Interface (CSI) drivers for Azure disks and Azure Files in an Azure Kubernetes Service (AKS) cluster.
2+
title: Container Storage Interface (CSI) drivers on Azure Kubernetes Service (AKS)
3+
description: Learn about and deploy the Container Storage Interface (CSI) drivers for Azure disks and Azure Files in an Azure Kubernetes Service (AKS) cluster
44
services: container-service
55
ms.topic: article
66
ms.date: 05/23/2022
77
author: palma21
88

99
---
1010

11-
# Container Storage Interface (CSI) drivers in Azure Kubernetes Service (AKS)
11+
# Container Storage Interface (CSI) drivers on Azure Kubernetes Service (AKS)
1212

1313
The Container Storage Interface (CSI) is a standard for exposing arbitrary block and file storage systems to containerized workloads on Kubernetes. By adopting and using CSI, Azure Kubernetes Service (AKS) can write, deploy, and iterate plug-ins to expose new or improve existing storage systems in Kubernetes without having to touch the core Kubernetes code and wait for its release cycles.
1414

1515
The CSI storage driver support on AKS allows you to natively use:
1616

17-
- [**Azure disks**](azure-disk-csi.md) can be used to create a Kubernetes *DataDisk* resource. Disks can use Azure Premium Storage, backed by high-performance SSDs, or Azure Standard Storage, backed by regular HDDs or Standard SSDs. For most production and development workloads, use Premium Storage. Azure disks are mounted as *ReadWriteOnce* and are only available to a single pod. For storage volumes that can be accessed by multiple pods simultaneously, use Azure Files.
17+
- [**Azure disks**](azure-disk-csi.md) can be used to create a Kubernetes *DataDisk* resource. Disks can use Azure Premium Storage, backed by high-performance SSDs, or Azure Standard Storage, backed by regular HDDs or Standard SSDs. For most production and development workloads, use Premium Storage. Azure disks are mounted as *ReadWriteOnce* and are only available to a single pod. For storage volumes that can be accessed by multiple pods simultaneously, use Azure Files.
1818
- [**Azure Files**](azure-files-csi.md) can be used to mount an SMB 3.0/3.1 share backed by an Azure storage account to pods. With Azure Files, you can share data across multiple nodes and pods. Azure Files can use Azure Standard storage backed by regular HDDs or Azure Premium storage backed by high-performance SSDs.
1919

2020
> [!IMPORTANT]
2121
> Starting with Kubernetes version 1.21, AKS only uses CSI drivers by default and CSI migration is enabled. Existing in-tree persistent volumes will continue to function. However, internally Kubernetes hands control of all storage management operations (previously targeting in-tree drivers) to CSI drivers.
22-
>
23-
> *In-tree drivers* refers to the current storage drivers that are part of the core Kubernetes code opposed to the new CSI drivers, which are plug-ins.
22+
>
23+
> *In-tree drivers* refers to the storage drivers that are part of the core Kubernetes code opposed to the CSI drivers, which are plug-ins.
2424
2525
> [!NOTE]
26-
> Azure disk CSI driver v2 (preview) improves scalability and reduces pod failover latency. It uses shared disks to provision attachment replicas on multiple cluster nodes and integrates with the pod scheduler to ensure a node with an attachment replica is chosen on pod failover. Azure disk CSI driver v2 (preview) also provides the ability to fine tune performance. If you're interested in participating in the preview, submit a request: [https://aka.ms/DiskCSIv2Preview](https://aka.ms/DiskCSIv2Preview). This preview version is provided without a service level agreement, and you can occasionally expect breaking changes while in preview. The preview version isn't recommended for production workloads. For more information, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
26+
> Azure disks CSI driver v2 (preview) improves scalability and reduces pod failover latency. It uses shared disks to provision attachment replicas on multiple cluster nodes and integrates with the pod scheduler to ensure a node with an attachment replica is chosen on pod failover. Azure disks CSI driver v2 (preview) also provides the ability to fine tune performance. If you're interested in participating in the preview, submit a request: [https://aka.ms/DiskCSIv2Preview](https://aka.ms/DiskCSIv2Preview). This preview version is provided without a service level agreement, and you can occasionally expect breaking changes while in preview. The preview version isn't recommended for production workloads. For more information, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
2727
28-
## Migrate custom in-tree storage classes to CSI
28+
> [!NOTE]
29+
> AKS provides the option to enable and disable the CSI drivers (preview) on new and existing clusters. CSI drivers are enabled by default on new clusters. You should verify that there are no existing Persistent Volumes created by Azure disks and Azure Files CSI drivers and that there is not any existing VolumeSnapshot, VolumeSnapshotClass or VolumeSnapshotContent resources before running this command on existing cluster. This preview version is provided without a service level agreement, and you can occasionally expect breaking changes while in preview. The preview version isn't recommended for production workloads. For more information, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
30+
31+
## Prerequisites
32+
33+
* An Azure subscription. If you don't have an Azure subscription, you can create a [free account](https://azure.microsoft.com/free).
34+
* [Azure CLI installed](/cli/azure/install-azure-cli).
35+
36+
### Install the `aks-preview` Azure CLI
37+
38+
You also need the *aks-preview* Azure CLI extension version 0.5.78 or later. Install the *aks-preview* Azure CLI extension by using the [az extension add][az-extension-add] command. Or install any available updates by using the [az extension update][az-extension-update] command.
39+
40+
```azurecli-interactive
41+
# Install the aks-preview extension
42+
az extension add --name aks-preview
43+
# Update the extension to make sure you have the latest version installed
44+
az extension update --name aks-preview
45+
```
46+
47+
## Disable CSI storage drivers on a new cluster
48+
49+
`--disable-disk-driver` allows you disable the CSI driver for [Azure disks][azure-disk-csi]. `--disable-file-driver` allows you to disable the CSI driver for [Azure Files][azure-files-csi]. `--disable-snapshot-controller` allows you to disable the [snapshot controller][snapshot-controller ].
2950

51+
To disable CSI storage drivers on a new cluster, use `--disable-disk-driver`, `--disable-file-driver`, and `--disable-snapshot-controller`.
52+
```azurecli-interactive
53+
az aks create -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-snapshot-controller
54+
```
55+
56+
## Disable CSI storage drivers on an existing cluster
57+
To disable CSI storage drivers on an existing cluster, use `--disable-disk-driver`, `--disable-file-driver`, and `--disable-snapshot-controller`.
58+
59+
```azurecli-interactive
60+
az aks update -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-snapshot-controller
61+
```
62+
63+
## Enable CSI storage drivers on an existing cluster
64+
65+
`--enable-disk-driver` allows you enable the CSI driver for [Azure disks][azure-disk-csi]. `--enable-file-driver` allows you to enable the CSI driver for [Azure Files][azure-files-csi]. `--enable-snapshot-controller` allows you to enable the [snapshot controller][snapshot-controller].
66+
67+
To enable CSI storage drivers on an existing cluster with CSI storage drivers disabled, use `--enable-disk-driver`, `--enable-file-driver`, and `--enable-snapshot-controller`.
68+
```azurecli-interactive
69+
az aks update -n myAKSCluster -g myResourceGroup --enable-disk-driver --enable-file-driver --enable-snapshot-controller
70+
```
71+
72+
## Migrate custom in-tree storage classes to CSI
3073
If you created in-tree driver storage classes, those storage classes continue to work since CSI migration is turned on after upgrading your cluster to 1.21.x. If you want to use CSI features you'll need to perform the migration.
3174

32-
Migrating these storage classes involves deleting the existing ones, and re-creating them with the provisioner set to **disk.csi.azure.com** if using Azure disk storage, and **files.csi.azure.com** if using Azure Files.
75+
Migrating these storage classes involves deleting the existing ones, and re-creating them with the provisioner set to **disk.csi.azure.com** if using Azure disks, and **files.csi.azure.com** if using Azure Files.
3376

3477
### Migrate storage class provisioner
3578

@@ -61,22 +104,24 @@ parameters:
61104
storageAccountType: Premium_LRS
62105
```
63106
107+
The CSI storage system supports the same features as the In-tree drivers, so the only change needed would be the provisioner.
108+
64109
## Migrate in-tree persistent volumes
65110
66111
> [!IMPORTANT]
67112
> If your in-tree persistent volume `reclaimPolicy` is set to **Delete**, you need to change its policy to **Retain** to persist your data. This can be achieved using a [patch operation on the PV](https://kubernetes.io/docs/tasks/administer-cluster/change-pv-reclaim-policy/). For example:
68113
>
69114
> ```console
70-
> $ kubectl patch pv pv-azuredisk --type merge --patch '{"spec": {"persistentVolumeReclaimPolicy": "Retain"}}'
115+
> kubectl patch pv pv-azuredisk --type merge --patch '{"spec": {"persistentVolumeReclaimPolicy": "Retain"}}'
71116
> ```
72117

73118
### Migrate in-tree Azure disk persistent volumes
74119

75-
If you have in-tree Azure disk persistent volumes, get `diskURI` from in-tree persistent volumes and then follow this [guide][azure-disk-static-mount] to set up CSI driver persistent volumes.
120+
If you have in-tree Azure disks persistent volumes, get `diskURI` from in-tree persistent volumes and then follow this [guide][azure-disk-static-mount] to set up CSI driver persistent volumes
76121

77122
### Migrate in-tree Azure File persistent volumes
78123

79-
If you have in-tree Azure File persistent volumes, get `secretName`, `shareName` from in-tree persistent volumes and then follow this [guide][azure-file-static-mount] to set up CSI driver persistent volumes.
124+
If you have in-tree Azure File persistent volumes, get `secretName`, `shareName` from in-tree persistent volumes and then follow this [guide][azure-file-static-mount] to set up CSI driver persistent volumes
80125

81126
## Next steps
82127

@@ -93,6 +138,9 @@ If you have in-tree Azure File persistent volumes, get `secretName`, `shareName`
93138
[kubernetes-storage-classes]: https://kubernetes.io/docs/concepts/storage/storage-classes/
94139
[kubernetes-volumes]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
95140
[managed-disk-pricing-performance]: https://azure.microsoft.com/pricing/details/managed-disks/
141+
[azure-disk-csi]: https://github.com/kubernetes-sigs/azuredisk-csi-driver
142+
[azure-files-csi]: https://github.com/kubernetes-sigs/azurefile-csi-driver
143+
[snapshot-controller]: https://kubernetes-csi.github.io/docs/snapshot-controller.html
96144

97145
<!-- LINKS - internal -->
98146
[azure-disk-volume]: azure-disk-volume.md

articles/aks/keda-deploy-add-on-arm.md

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Deploy the Kubernetes Event-driven Autoscaling (KEDA) add-on by using an ARM template
2+
title: Install the Kubernetes Event-driven Autoscaling (KEDA) add-on by using an ARM template
33
description: Use an ARM template to deploy the Kubernetes Event-driven Autoscaling (KEDA) add-on to Azure Kubernetes Service (AKS).
44
services: container-service
55
author: jahabibi
@@ -8,7 +8,7 @@ ms.date: 05/24/2022
88
ms.author: jahabibi
99
---
1010

11-
# Deploy the Kubernetes Event-driven Autoscaling (KEDA) add-on by using ARM template
11+
# Install the Kubernetes Event-driven Autoscaling (KEDA) add-on by using ARM template
1212

1313
This article shows you how to deploy the Kubernetes Event-driven Autoscaling (KEDA) add-on to Azure Kubernetes Service (AKS) by using an [ARM](../azure-resource-manager/templates/index.yml) template.
1414

@@ -18,9 +18,6 @@ This article shows you how to deploy the Kubernetes Event-driven Autoscaling (KE
1818

1919
## Prerequisites
2020

21-
> [!NOTE]
22-
> KEDA is currently only available in the `westcentralus` region.
23-
2421
- An Azure subscription. If you don't have an Azure subscription, you can create a [free account](https://azure.microsoft.com/free).
2522
- [Azure CLI installed](/cli/azure/install-azure-cli).
2623

@@ -44,7 +41,7 @@ When ready, refresh the registration of the *Microsoft.ContainerService* resourc
4441
az provider register --namespace Microsoft.ContainerService
4542
```
4643

47-
## Deploy the KEDA add-on with Azure Resource Manager (ARM) templates
44+
## Install the KEDA add-on with Azure Resource Manager (ARM) templates
4845

4946
The KEDA add-on can be enabled by deploying an AKS cluster with an Azure Resource Manager template and specifying the `workloadAutoScalerProfile` field:
5047

@@ -60,13 +57,13 @@ The KEDA add-on can be enabled by deploying an AKS cluster with an Azure Resourc
6057

6158
To connect to the Kubernetes cluster from your local computer, you use [kubectl][kubectl], the Kubernetes command-line client.
6259

63-
If you use the Azure Cloud Shell, `kubectl` is already installed. You can also install it locally using the [az aks install-cli][az aks install-cli] command:
60+
If you use the Azure Cloud Shell, `kubectl` is already installed. You can also install it locally using the [az aks install-cli][] command:
6461

6562
```azurecli
6663
az aks install-cli
6764
```
6865

69-
To configure `kubectl` to connect to your Kubernetes cluster, use the [az aks get-credentials][az aks get-credentials] command. The following example gets credentials for the AKS cluster named *MyAKSCluster* in the *MyResourceGroup*:
66+
To configure `kubectl` to connect to your Kubernetes cluster, use the [az aks get-credentials][] command. The following example gets credentials for the AKS cluster named *MyAKSCluster* in the *MyResourceGroup*:
7067

7168
```azurecli
7269
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster
@@ -134,11 +131,30 @@ To learn more about KEDA CRDs, follow the official [KEDA documentation][keda-sca
134131

135132
## Clean Up
136133

137-
To remove the resource group, and all related resources, use the [az group delete][az-group-delete] command:
134+
To remove the resource group, and all related resources, use the [Az PowerShell module group delete][az-group-delete] command:
138135

139136
```azurecli
140137
az group delete --name MyResourceGroup
141138
```
139+
140+
### Enabling add-on on clusters with self-managed open-source KEDA installations
141+
142+
While Kubernetes only allows one metric server to be installed, you can in theory install KEDA multiple times. However, it isn't recommended given only one installation will work.
143+
144+
When the KEDA add-on is installed in an AKS cluster, the previous installation of open-source KEDA will be overridden and the add-on will take over.
145+
146+
This means that the customization and configuration of the self-installed KEDA deployment will get lost and no longer be applied.
147+
148+
While there's a possibility that the existing autoscaling will keep on working, there's a risk given it will be configured differently and won't support features such as managed identity.
149+
150+
It's recommended to uninstall existing KEDA installations before enabling the KEDA add-on given the installation will succeed without any error.
151+
152+
Following error will be thrown in the operator logs but the installation of KEDA add-on will be completed.
153+
154+
Error logged in now-suppressed non-participating KEDA operator pod:
155+
the error logged inside the already installed KEDA operator logs.
156+
E0520 11:51:24.868081 1 leaderelection.go:330] error retrieving resource lock default/operator.keda.sh: config maps "operator.keda.sh" is forbidden: User "system:serviceaccount:default:keda-operator" can't get resource "config maps" in API group "" in the namespace "default"
157+
142158
## Next steps
143159

144160
This article showed you how to install the KEDA add-on on an AKS cluster, and then verify that it's installed and running. With the KEDA add-on installed on your cluster, you can [deploy a sample application][keda-sample] to start scaling apps

0 commit comments

Comments
 (0)