Skip to content

Commit a6a50be

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into heidist-refresh
2 parents 3aa89d3 + d2ce6ea commit a6a50be

File tree

42 files changed

+813
-615
lines changed

Some content is hidden

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

42 files changed

+813
-615
lines changed

.openpublishing.redirection.azure-productivity.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,11 @@
149149
"source_path": "articles/lab-services/classroom-labs-faq.yml",
150150
"redirect_url": "/azure/lab-services/lab-services-overview",
151151
"redirect_document_id": false
152-
}
152+
},
153+
{
154+
"source_path": "articles/lab-services/how-to-enable-nested-virtualization-template-vm-ui.md",
155+
"redirect_url": "/azure/lab-services/how-to-enable-nested-virtualization-template-vm-using-script",
156+
"redirect_document_id": false
157+
}
153158
]
154159
}

articles/active-directory/fundamentals/multi-tenant-user-management-introduction.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ Most documentation for B2B refers to an external user as a guest user. It confla
5555

5656
[Cross-tenant synchronization](../multi-tenant-organizations/cross-tenant-synchronization-overview.md) enables multi-tenant organizations to provide seamless access and collaboration experiences to end users, leveraging existing B2B external collaboration capabilities. The feature doesn't allow cross-tenant synchronization across Microsoft sovereign clouds (such as Microsoft 365 US Government GCC High, DOD or Office 365 in China). See [Common considerations for multi-tenant user management](multi-tenant-common-considerations.md#cross-tenant-synchronization) for help with automated and custom cross-tenant synchronization scenarios.
5757

58-
Watch John Savill talk about the cross-tenant sync capability in Azure AD (embedded below).
58+
Watch Arvind Harinder talk about the cross-tenant sync capability in Azure AD (embedded below).
5959

60-
> [!VIDEO https://www.youtube.com/embed/z0J5kteqUVQ]
60+
> [!VIDEO https://www.youtube.com/embed/7B-PQwNfGBc]
6161
6262
The following conceptual and how-to articles provide information about Azure AD B2B collaboration and cross-tenant synchronization.
6363

@@ -119,7 +119,7 @@ Organizations initially focus on requirements that they want in place for immedi
119119
- **Single Sign On:** Enable users to access resources across the organization without the need to enter more credentials.
120120
### Patterns for account creation
121121

122-
Microsoft mechanisms for creating and managing the lifecycle of your external user accounts follow three common patterns. You can use these patterns to help define and implement your requirements. Choose the pattern that best aligns with your scenario and then focus on the pattern details.
122+
Microsoft mechanisms for creating and managing the lifecycle of your external user accounts follow three common patterns. You can use these patterns to help define and implement your requirements. Choose the pattern that best aligns with your scenario and then focus on the pattern details.
123123

124124
| Mechanism | Description | Best when |
125125
| - | - | - |

articles/active-directory/reports-monitoring/howto-manage-inactive-user-accounts.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@ This article explains a method to handle obsolete user accounts in Azure Active
2222

2323
## What are inactive user accounts?
2424

25-
Inactive accounts are user accounts that aren't required anymore by members of your organization to gain access to your resources. One key identifier for inactive accounts is that they haven't been used *for a while* to sign in to your environment. Because inactive accounts are tied to the sign-in activity, you can use the timestamp of the last sign-in that was successful to detect them.
25+
Inactive accounts are user accounts that aren't required anymore by members of your organization to gain access to your resources. One key identifier for inactive accounts is that they haven't been used *for a while* to sign in to your environment. Because inactive accounts are tied to the sign-in activity, you can use the timestamp of the last time an account attempted to sign in to detect inactive accounts.
2626

2727
The challenge of this method is to define what *for a while* means for your environment. For example, users might not sign in to an environment *for a while*, because they are on vacation. When defining what your delta for inactive user accounts is, you need to factor in all legitimate reasons for not signing in to your environment. In many organizations, the delta for inactive user accounts is between 90 and 180 days.
2828

29-
The last successful sign-in provides potential insights into a user's continued need for access to resources. It can help with determining if group membership or app access is still needed or could be removed. For external user management, you can understand if an external user is still active within the tenant or should be cleaned up.
29+
The last sign-in provides potential insights into a user's continued need for access to resources. It can help with determining if group membership or app access is still needed or could be removed. For external user management, you can understand if an external user is still active within the tenant or should be cleaned up.
3030

3131
## Detect inactive user accounts with Microsoft Graph
3232
<a name="how-to-detect-inactive-user-accounts"></a>
3333

34-
You can detect inactive accounts by evaluating the `lastSignInDateTime` property exposed by the `signInActivity` resource type of the **Microsoft Graph API**. The `lastSignInDateTime` property shows the last time a user made a successful interactive sign-in to Azure AD. Using this property, you can implement a solution for the following scenarios:
34+
You can detect inactive accounts by evaluating the `lastSignInDateTime` property exposed by the `signInActivity` resource type of the **Microsoft Graph API**. The `lastSignInDateTime` property shows the last time a user attempted to make an interactive sign-in attempt in Azure AD. Using this property, you can implement a solution for the following scenarios:
3535

3636
- **Last sign-in date and time for all users**: In this scenario, you need to generate a report of the last sign-in date of all users. You request a list of all users, and the last `lastSignInDateTime` for each respective user:
3737
- `https://graph.microsoft.com/v1.0/users?$select=displayName,signInActivity`
@@ -59,11 +59,11 @@ The following details relate to the `lastSignInDateTime` property.
5959
- AuditLog.Read.All
6060
- User.Read.All
6161

62-
- Each interactive sign-in that was successful results in an update of the underlying data store. Typically, successful sign-ins show up in the related sign-in report within 10 minutes.
62+
- Each interactive sign-in attempt results in an update of the underlying data store. Typically, sign-ins show up in the related sign-in report within 6 hours.
6363

64-
- To generate a `lastSignInDateTime` timestamp, you need a successful sign-in. The value of the `lastSignInDateTime` property may be blank if:
65-
- The last successful sign-in of a user took place before April 2020.
66-
- The affected user account was never used for a successful sign-in.
64+
- To generate a `lastSignInDateTime` timestamp, you an attempted sign-in. The value of the `lastSignInDateTime` property may be blank if:
65+
- The last attempted sign-in of a user took place before April 2020.
66+
- The affected user account was never used for a sign-in attempt.
6767

6868
- The last sign-in date is associated with the user object. The value is retained until the next sign-in of the user.
6969

articles/aks/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,8 @@
500500
href: azure-disk-csi.md
501501
- name: Provision Azure Disks storage
502502
href: azure-csi-disk-storage-provision.md
503+
- name: Use Azure Premium SSD v2 disks
504+
href: use-premium-v2-disks.md
503505
- name: Use Azure ultra disks
504506
href: use-ultra-disks.md
505507
- name: Other storage options

articles/aks/azure-netapp-files.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ This section walks you through the installation of Astra Trident using the opera
370370
1. Before creating a backend, you need to update [backend-anf.yaml][backend-anf.yaml] to include details about the Azure NetApp Files subscription, such as:
371371
372372
* `subscriptionID` for the Azure subscription where Azure NetApp Files will be enabled.
373-
* `tenantID`, `clientID`, and `clientSecret` from an [App Registration][azure-ad-app-registration] in Azure Active Directory (AD) with sufficient permissions for the Azure NetApp Files service. The App Registration include the `Owner` or `Contributor` role that's predefined by Azure.
373+
* `tenantID`, `clientID`, and `clientSecret` from an [App Registration][azure-ad-app-registration] in Azure Active Directory (AD) with sufficient permissions for the Azure NetApp Files service. The App Registration includes the `Owner` or `Contributor` role that's predefined by Azure.
374374
* An Azure location that contains at least one delegated subnet.
375375
376376
In addition, you can choose to provide a different service level. Azure NetApp Files provides three [service levels](../azure-netapp-files/azure-netapp-files-service-levels.md): Standard, Premium, and Ultra.
@@ -411,7 +411,7 @@ A storage class is used to define how a unit of storage is dynamically created w
411411
kubectl apply -f anf-storageclass.yaml
412412
```
413413
414-
The output of the command resembles the following example::
414+
The output of the command resembles the following example:
415415
416416
```console
417417
storageclass/azure-netapp-files created
@@ -544,10 +544,6 @@ After the PVC is created, a pod can be spun up to access the Azure NetApp Files
544544
Normal Started 10s kubelet Started container nginx
545545
```
546546
547-
## Using Azure tags
548-
549-
For more details on using Azure tags, see [Use Azure tags in Azure Kubernetes Service (AKS)][use-tags].
550-
551547
## Next steps
552548
553549
Astra Trident supports many features with Azure NetApp Files. For more information, see:

articles/aks/use-premium-v2-disks.md

Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
---
2+
title: Enable Premium SSD v2 Disk support on Azure Kubernetes Service (AKS)
3+
description: Learn how to enable and configure Premium SSD v2 Disks in an Azure Kubernetes Service (AKS) cluster.
4+
ms.topic: article
5+
ms.date: 04/25/2023
6+
7+
---
8+
9+
# Use Azure Premium SSD v2 disks on Azure Kubernetes Service
10+
11+
[Azure Premium SSD v2 disks][azure-premium-v2-disk-overview] offer IO-intense enterprise workloads, a consistent submillisecond disk latency, and high IOPS and throughput. The performance (capacity, throughput, and IOPS) of Premium SSD v2 disks can be independently configured at any time, making it easier for more scenarios to be cost efficient while meeting performance needs.
12+
13+
This article describes how to configure a new or existing AKS cluster to use Azure Premium SSD v2 disks.
14+
15+
## Before you begin
16+
17+
Before creating or upgrading an AKS cluster that is able to use Azure Premium SSD v2 disks, you need to create an AKS cluster in the same region and availability zone that supports Premium Storage and attach the disks following the steps below.
18+
19+
For an existing AKS cluster, you can enable Premium SSD v2 disks by adding a new node pool to your cluster, and then attach the disks following the steps below.
20+
21+
> [!IMPORTANT]
22+
> Azure Premium SSD v2 disks require node pools deployed in regions that support these disks. For a list of supported regions, see [Premium SSD v2 disk supported regions][premium-v2-regions].
23+
24+
### Limitations
25+
26+
- Azure Premium SSD v2 disks have certain limitations that you need to be aware of. For a complete list, see [Premium SSD v2 limitations][premium-v2-limitations].
27+
28+
## Use Premium SSD v2 disks dynamically with a storage class
29+
30+
To use Premium SSD v2 disks in a deployment or stateful set, you can use a [storage class for dynamic provisioning][azure-disk-volume].
31+
32+
### Create the storage class
33+
34+
A storage class is used to define how a unit of storage is dynamically created with a persistent volume. For more information on Kubernetes storage classes, see [Kubernetes Storage Classes][kubernetes-storage-classes].
35+
36+
In this example, you create a storage class that references Premium SSD v2 disks. Create a file named `azure-pv2-disk-sc.yaml`, and copy in the following manifest.
37+
38+
```yaml
39+
apiVersion: storage.k8s.io/v1
40+
kind: StorageClass
41+
metadata:
42+
name: premium2-disk-sc
43+
parameters:
44+
cachingMode: None
45+
skuName: PremiumV2_LRS
46+
DiskIOPSReadWrite: "4000"
47+
DiskMBpsReadWrite: "1000"
48+
provisioner: disk.csi.azure.com
49+
reclaimPolicy: Delete
50+
volumeBindingMode: Immediate
51+
allowVolumeExpansion: true
52+
```
53+
54+
Create the storage class with the [kubectl apply][kubectl-apply] command and specify your *azure-pv2-disk-sc.yaml* file:
55+
56+
```bash
57+
kubectl apply -f azure-pv2-disk-sc.yaml
58+
```
59+
60+
The output from the command resembles the following example:
61+
62+
```console
63+
storageclass.storage.k8s.io/premium2-disk-sc created
64+
```
65+
66+
## Create a persistent volume claim
67+
68+
A persistent volume claim (PVC) is used to automatically provision storage based on a storage class. In this case, a PVC can use the previously created storage class to create an ultra disk.
69+
70+
Create a file named `azure-pv2-disk-pvc.yaml`, and copy in the following manifest. The claim requests a disk named `premium2-disk` that is *1000 GB* in size with *ReadWriteOnce* access. The *premium2-disk-sc* storage class is specified as the storage class.
71+
72+
```yaml
73+
apiVersion: v1
74+
kind: PersistentVolumeClaim
75+
metadata:
76+
name: premium2-disk
77+
spec:
78+
accessModes:
79+
- ReadWriteOnce
80+
storageClassName: premium2-disk-sc
81+
resources:
82+
requests:
83+
storage: 1000Gi
84+
```
85+
86+
Create the persistent volume claim with the [kubectl apply][kubectl-apply] command and specify your *azure-pv2-disk-pvc.yaml* file:
87+
88+
```bash
89+
kubectl apply -f azure-pv2-disk-pvc.yaml
90+
```
91+
92+
The output from the command resembles the following example:
93+
94+
```console
95+
persistentvolumeclaim/premium2-disk created
96+
```
97+
98+
## Use the persistent volume
99+
100+
Once the persistent volume claim has been created and the disk successfully provisioned, a pod can be created with access to the disk. The following manifest creates a basic NGINX pod that uses the persistent volume claim named *premium2-disk* to mount the Azure disk at the path `/mnt/azure`.
101+
102+
Create a file named `nginx-premium2.yaml`, and copy in the following manifest.
103+
104+
```yaml
105+
kind: Pod
106+
apiVersion: v1
107+
metadata:
108+
name: nginx-premium2
109+
spec:
110+
containers:
111+
- name: nginx-premium2
112+
image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
113+
resources:
114+
requests:
115+
cpu: 100m
116+
memory: 128Mi
117+
limits:
118+
cpu: 250m
119+
memory: 256Mi
120+
volumeMounts:
121+
- mountPath: "/mnt/azure"
122+
name: volume
123+
volumes:
124+
- name: volume
125+
persistentVolumeClaim:
126+
claimName: premium2-disk
127+
```
128+
129+
Create the pod with the [kubectl apply][kubectl-apply] command, as shown in the following example:
130+
131+
```bash
132+
kubectl apply -f nginx-premium2.yaml
133+
```
134+
135+
The output from the command resembles the following example:
136+
137+
```bash
138+
pod/nginx-premium2 created
139+
```
140+
141+
You now have a running pod with your Azure disk mounted in the `/mnt/azure` directory. This configuration can be seen when inspecting your pod via `kubectl describe pod nginx-premium2`, as shown in the following condensed example:
142+
143+
```bash
144+
kubectl describe pod nginx-premium2
145+
146+
[...]
147+
Volumes:
148+
volume:
149+
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
150+
ClaimName: premium2-disk
151+
ReadOnly: false
152+
kube-api-access-sh59b:
153+
Type: Projected (a volume that contains injected data from multiple sources)
154+
TokenExpirationSeconds: 3607
155+
ConfigMapName: kube-root-ca.crt
156+
ConfigMapOptional: <nil>
157+
DownwardAPI: true
158+
QoS Class: Burstable
159+
Node-Selectors: <none>
160+
Tolerations: node.kubernetes.io/memory-pressure:NoSchedule op=Exists
161+
node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
162+
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
163+
Events:
164+
Type Reason Age From Message
165+
---- ------ ---- ---- -------
166+
Normal Scheduled 7m58s default-scheduler Successfully assigned default/nginx-premium2 to aks-agentpool-12254644-vmss000006
167+
Normal SuccessfulAttachVolume 7m46s attachdetach-controller AttachVolume.Attach succeeded for volume "pvc-ff39fb64-1189-4c52-9a24-e065b855b886"
168+
Normal Pulling 7m39s kubelet Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine"
169+
Normal Pulled 7m38s kubelet Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine" in 1.192915667s
170+
Normal Created 7m38s kubelet Created container nginx-premium2
171+
Normal Started 7m38s kubelet Started container nginx-premium2
172+
[...]
173+
```
174+
175+
## Set IOPS and throughput limits
176+
177+
Input/Output Operations Per Second (IOPS) and throughput limits for Azure Premium v2 SSD disk is currently not supported through AKS. To adjust performance, you can use the Azure CLI command [az disk update][az-disk-update] and including the `--disk-iops-read-write` and `--disk-mbps-read-write` parameters.
178+
179+
The following example updates the disk IOPS read/write to **5000** and Mbps to **200**. For `--resource-group`, the value must be the second resource group automatically created to store the AKS worker nodes with the naming convention *MC_resourcegroupname_clustername_location*. For more information, see [Why are two resource groups created with AKS?][aks-two-resource-groups].
180+
181+
The value for the `--name` parameter is the name of the volume created using the StorageClass, and it starts with `pvc-`. To identify the disk name, you can run `kubectl get pvc` or navigate to the secondary resource group in the portal to find it. See [manage resources from the Azure portal][manage-resources-azure-portal] to learn more.
182+
183+
```azurecli
184+
az disk update --subscription subscriptionName --resource-group myResourceGroup --name diskName --disk-iops-read-write=5000 --disk-mbps-read-write=200
185+
```
186+
187+
## Next steps
188+
189+
- For more about Premium SSD v2 disks, see [Using Azure Premium SSD v2 disks](../virtual-machines/disks-deploy-premium-v2.md).
190+
- For more about storage best practices, see [Best practices for storage and backups in Azure Kubernetes Service (AKS)][operator-best-practices-storage].
191+
192+
<!-- LINKS - external -->
193+
[kubectl-apply]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply
194+
[kubernetes-storage-classes]: https://kubernetes.io/docs/concepts/storage/storage-classes/
195+
196+
<!-- LINKS - internal -->
197+
[azure-premium-v2-disk-overview]: ../virtual-machines/disks-types.md#premium-ssd-v2
198+
[premium-v2-regions]: ../virtual-machines/disks-types.md#regional-availability
199+
[premium-v2-limitations]: ../virtual-machines/disks-types.md#premium-ssd-v2-limitations
200+
[azure-disk-volume]: azure-disk-csi.md
201+
[use-tags]: use-tags.md
202+
[operator-best-practices-storage]: operator-best-practices-storage.md
203+
[az-disk-update]: /cli/azure/disk#az-disk-update
204+
[manage-resources-azure-portal]: ../azure-resource-manager/management/manage-resources-portal.md#open-resources
205+
[aks-two-resource-groups]: faq.md#why-are-two-resource-groups-created-with-aks

0 commit comments

Comments
 (0)