Skip to content

Commit 9be7e53

Browse files
authored
Merge pull request #186041 from MicrosoftDocs/master
1/24 PM Publish
2 parents 5552f8f + 3d12e55 commit 9be7e53

File tree

210 files changed

+1766
-1605
lines changed

Some content is hidden

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

210 files changed

+1766
-1605
lines changed

articles/active-directory/app-provisioning/sap-successfactors-integration-reference.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,20 @@ The SuccessFactors connector supports expansion of the position object. To expan
296296
| positionNameFR | $.employmentNav.results[0].jobInfoNav.results[0].positionNav.externalName_fr_FR |
297297
| positionNameDE | $.employmentNav.results[0].jobInfoNav.results[0].positionNav.externalName_de_DE |
298298

299+
### Provisioning users in the Onboarding module
300+
Inbound user provisioning from SAP SuccessFactors to on-premises Active Directory and Azure AD now supports advance provisioning of pre-hires present in the SAP SuccessFactors Onboarding 2.0 module. Upon encountering a new hire profile with future start date, the Azure AD provisioning service queries SAP SuccessFactors to get new hires with one of the following status codes: `active`, `inactive`, `active_external`. The status code `active_external` corresponds to pre-hires present in the SAP SuccessFactors Onboarding 2.0 module. For a description of these status codes, refer to [SAP support note 2736579](https://launchpad.support.sap.com/#/notes/0002736579).
301+
302+
The default behavior of the provisioning service is to process pre-hires in the Onboarding module.
303+
304+
If you want to exclude processing of pre-hires in the Onboarding module, update your provisioning job configuration as follows:
305+
1. Open the attribute-mapping blade of your SuccessFactors provisioning app.
306+
1. Under show advanced options, edit the SuccessFactors attribute list to add a new attribute called `userStatus`.
307+
1. Set the JSONPath API expression for this attribute as: `$.employmentNav.results[0].userNav.status`
308+
1. Save the schema to return back to the attribute mapping blade.
309+
1. Edit the Source Object scope to apply a scoping filter `userStatus NOT EQUALS active_external`
310+
1. Save the mapping and validate that the scoping filter works using provisioning on demand.
311+
312+
299313
## Writeback scenarios
300314

301315
This section covers different write-back scenarios. It recommends configuration approaches based on how email and phone number is setup in SuccessFactors.

articles/active-directory/develop/v2-oauth2-client-creds-grant-flow.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.service: active-directory
99
ms.subservice: develop
1010
ms.workload: identity
1111
ms.topic: conceptual
12-
ms.date: 10/20/2021
12+
ms.date: 01/24/2022
1313
ms.author: hirsin
1414
ms.reviewer: marsma
1515
ms.custom: aaddev, identityplatformtop40
@@ -54,7 +54,7 @@ This type of authorization is common for daemons and service accounts that need
5454

5555
In order to enable this ACL-based authorization pattern, Azure AD doesn't require that applications be authorized to get tokens for another application. Thus, app-only tokens can be issued without a `roles` claim. Applications that expose APIs must implement permission checks in order to accept tokens.
5656

57-
If you'd like to prevent applications from getting role-less app-only access tokens for your application, [ensure that user assignment requirements are enabled for your app](../manage-apps/assign-user-or-group-access-portal.md). This will block users and applications without assigned roles from being able to get a token for this application.
57+
If you'd like to prevent applications from getting role-less app-only access tokens for your application, [ensure that user assignment requirements are enabled for your app](../manage-apps/what-is-access-management.md#requiring-user-assignment-for-an-app). This will block users and applications without assigned roles from being able to get a token for this application.
5858

5959
### Application permissions
6060

@@ -67,7 +67,7 @@ Instead of using ACLs, you can use APIs to expose a set of **application permiss
6767

6868
To use application permissions with your own API (as opposed to Microsoft Graph), you must first [expose the API](howto-add-app-roles-in-azure-ad-apps.md) by defining scopes in the API's app registration in the Azure portal. Then, [configure access to the API](howto-add-app-roles-in-azure-ad-apps.md#assign-app-roles-to-applications) by selecting those permissions in your client application's app registration. If you haven't exposed any scopes in your API's app registration, you won't be able to specify application permissions to that API in your client application's app registration in the Azure portal.
6969

70-
When authenticating as an application (as opposed to with a user), you can't use *delegated permissions* - scopes that are granted by a user - because there is no user for you app to act on behalf of. You must use application permissions, also known as roles, that are granted by an admin for the application or via pre-authorization by the web API.
70+
When authenticating as an application (as opposed to with a user), you can't use *delegated permissions* - scopes that are granted by a user - because there is no user for your app to act on behalf of. You must use application permissions, also known as roles, that are granted by an admin for the application or via pre-authorization by the web API.
7171

7272
For more information about application permissions, see [Permissions and consent](v2-permissions-and-consent.md#permission-types).
7373

articles/active-directory/roles/administrative-units.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ The following sections describe current support for administrative unit scenario
8989

9090
| Permissions | Graph/PowerShell | Azure portal | Microsoft 365 admin center |
9191
| --- | --- | --- | --- |
92-
| Administrative unit-scoped management of user properties, passwords, and licenses | Supported | Supported | Supported |
92+
| Administrative unit-scoped management of user properties, passwords | Supported | Supported | Supported |
93+
| Administrative unit-scoped management of user licenses | Supported | Not Supported | Supported |
9394
| Administrative unit-scoped blocking and unblocking of user sign-ins | Supported | Supported | Supported |
9495
| Administrative unit-scoped management of user multifactor authentication credentials | Supported | Supported | Not supported |
9596

articles/aks/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@
8282
href: concepts-scale.md
8383
- name: Node auto-repair
8484
href: node-auto-repair.md
85+
- name: Multi-instance GPU Node pool (preview)
86+
href: gpu-multi-instance.md
8587
- name: Service meshes
8688
href: servicemesh-about.md
8789
- name: Sustainable software engineering

articles/aks/gpu-multi-instance.md

Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
---
2+
title: Multi-instance GPU Node pool (preview)
3+
description: Learn how to create a Multi-instance GPU Node pool and schedule tasks on it
4+
services: container-service
5+
ms.topic: article
6+
ms.date: 1/24/2022
7+
ms.author: juda
8+
---
9+
10+
# Multi-instance GPU Node pool
11+
12+
Nvidia's A100 GPU can be divided in up to seven independent instances. Each instance has their own memory and Stream Multiprocessor (SM). For more information on the Nvidia A100, follow [Nvidia A100 GPU][Nvidia A100 GPU].
13+
14+
This article will walk you through how to create a multi-instance GPU node pool on Azure Kubernetes Service clusters and schedule tasks.
15+
16+
[!INCLUDE [preview features callout](./includes/preview/preview-callout.md)]
17+
18+
## GPU Instance Profile
19+
20+
GPU Instance Profiles define how a GPU will be partitioned. The following table shows the available GPU Instance Profile for the `Standard_ND96asr_v4`, the only instance type that supports the A100 GPU at this time.
21+
22+
23+
| Profile Name | Fraction of SM |Fraction of Memory | Number of Instances created |
24+
|--|--|--|--|
25+
| MIG 1g.5gb | 1/7 | 1/8 | 7 |
26+
| MIG 2g.10gb | 2/7 | 2/8 | 3 |
27+
| MIG 3g.20gb | 3/7 | 4/8 | 2 |
28+
| MIG 4g.20gb | 4/7 | 4/8 | 1 |
29+
| MIG 7g.40gb | 7/7 | 8/8 | 1 |
30+
31+
As an example, the GPU Instance Profile of `MIG 1g.5gb` indicates that each GPU instance will have 1g SM(Computing resource) and 5gb memory. In this case, the GPU will be partitioned into seven instances.
32+
33+
The available GPU Instance Profiles available for this instance size are `MIG1g`, `MIG2g`, `MIG3g`, `MIG4g`, `MIG7g`
34+
35+
> [!IMPORTANT]
36+
> The applied GPU Instance Profile cannot be changed after node pool creation.
37+
38+
39+
## Create an AKS cluster
40+
To get started, create a resource group and an AKS cluster. If you already have a cluster, you can skip this step. Follow the example below to the resource group name `myresourcegroup` in the `southcentralus` region:
41+
42+
```azurecli-interactive
43+
az group create --name myresourcegroup --location southcentralus
44+
```
45+
46+
```azurecli-interactive
47+
az aks create \
48+
--resource-group myresourcegroup \
49+
--name migcluster\
50+
--node-count 1
51+
```
52+
53+
## Create a multi-instance GPU node pool
54+
55+
You can choose to either use the `az` command line or http request to the ARM API to create the node pool
56+
57+
### Azure CLI
58+
If you're using command line, use the `az aks nodepool add` command to create the node pool and specify the GPU instance profile through `--gpu-instance-profile`
59+
```
60+
61+
az aks nodepool add \
62+
--name mignode \
63+
--resourcegroup myresourcegroup \
64+
--cluster-name migcluster \
65+
--node-size Standard_ND96asr_v4 \
66+
--gpu-instance-profile MIG1g
67+
```
68+
69+
### HTTP request
70+
71+
If you're using http request, you can place GPU instance profile in the request body:
72+
```
73+
{
74+
"properties": {
75+
"count": 1,
76+
"vmSize": "Standard_ND96asr_v4",
77+
"type": "VirtualMachineScaleSets",
78+
"gpuInstanceProfile": "MIG1g"
79+
}
80+
}
81+
```
82+
83+
84+
85+
86+
## Run tasks using kubectl
87+
88+
### MIG strategy
89+
Before you install the Nvidia plugins, you need to specify which strategy to use for GPU partitioning.
90+
91+
The two strategies "Single" and "Mixed" won't affect how you execute CPU workloads, but how GPU resources will be displayed.
92+
93+
- Single Strategy
94+
95+
The single strategy treats every GPU instance as a GPU. If you're using this strategy, the GPU resources will be displayed as:
96+
97+
```
98+
nvidia.com/gpu: 1
99+
```
100+
101+
- Mixed Strategy
102+
103+
The mixed strategy will expose the GPU instances and the GPU instance profile. If you use this strategy, the GPU resource will be displayed as:
104+
105+
```
106+
nvidia.com/mig1g.5gb: 1
107+
```
108+
109+
### Install the NVIDIA device plugin and GPU feature discovery
110+
111+
Set your MIG Strategy
112+
```
113+
export MIG_STRATEGY=single
114+
```
115+
or
116+
```
117+
export MIG_STRATEGY=mixed
118+
```
119+
120+
Install the Nvidia device plugin and GPU feature discovery using helm
121+
122+
```
123+
helm repo add nvdp https://nvidia.github.io/k8s-device-plugin
124+
helm repo add nvgfd https://nvidia.github.io/gpu-feature-discovery
125+
helm repo update #do not forget to update the helm repo
126+
```
127+
128+
```
129+
helm install \
130+
--version=0.7.0 \
131+
--generate-name \
132+
--set migStrategy=${MIG_STRATEGY} \
133+
nvdp/nvidia-device-plugin
134+
```
135+
136+
```
137+
helm install \
138+
--version=0.2.0 \
139+
--generate-name \
140+
--set migStrategy=${MIG_STRATEGY} \
141+
nvgfd/gpu-feature-discovery
142+
```
143+
144+
145+
### Confirm multi-instance GPU capability
146+
As an example, if you used MIG1g as the GPU instance profile, confirm the node has multi-instance GPU capability by running:
147+
```
148+
kubectl describe mignode
149+
```
150+
If you're using single strategy, you'll see:
151+
```
152+
Allocable:
153+
nvidia.com/gpu: 56
154+
```
155+
If you're using mixed strategy, you'll see:
156+
```
157+
Allocable:
158+
nvidia.com/mig-1g.5gb: 56
159+
```
160+
161+
### Schedule work
162+
Use the `kubectl` run command to schedule work using single strategy:
163+
```
164+
kubectl run -it --rm \
165+
--image=nvidia/cuda:11.0-base \
166+
--restart=Never \
167+
--limits=nvidia.com/mig-1g.5gb=1 \
168+
mixed-strategy-example -- nvidia-smi -L
169+
```
170+
171+
Use the `kubectl` run command to schedule work using mixed strategy:
172+
```
173+
kubectl run -it --rm \
174+
--image=nvidia/cuda:11.0-base \
175+
--restart=Never \
176+
--limits=nvidia.com/gpu=1 \
177+
single-strategy-example -- nvidia-smi -L
178+
```
179+
180+
181+
## Troubleshooting
182+
- If you do not see multi-instance GPU capability after the node pool has been created, confirm the API version is not older than 2021-08-01.
183+
184+
<!-- LINKS - internal -->
185+
186+
187+
<!-- LINKS - external-->
188+
[Nvidia A100 GPU]:https://www.nvidia.com/en-us/data-center/a100/
189+

articles/application-gateway/how-to-troubleshoot-application-gateway-session-affinity-issues.md

Lines changed: 12 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ title: Troubleshoot session affinity issues
33
titleSuffix: Azure Application Gateway
44
description: This article provides information on how to troubleshoot session affinity issues in Azure Application Gateway
55
services: application-gateway
6-
author: KumudD
6+
author: vhorne
77
ms.service: application-gateway
88
ms.topic: troubleshooting
9-
ms.date: 11/14/2019
10-
ms.author: kumud
9+
ms.date: 01/24/2022
10+
ms.author: victorh
1111
---
1212

1313
# Troubleshoot Azure Application Gateway session affinity issues
@@ -44,9 +44,9 @@ Sometimes the session affinity issues might occur when you forget to enable “C
4444

4545
![Screenshot shows SETTINGS with H T T P settings selected.](./media/how-to-troubleshoot-application-gateway-session-affinity-issues/troubleshoot-session-affinity-issues-1.png)
4646

47-
4. Click **appGatewayBackendHttpSettings** on the right side to check whether you have selected **Enabled** for Cookie based affinity.
47+
4. Select the HTTP setting, and on the **Add HTTP setting** page, check if **Cookie based affinity** is enabled.
4848

49-
![Screenshot shows the gateway settings for an app gateway, inlcuidng whether Cookie based affinity is selected.](./media/how-to-troubleshoot-application-gateway-session-affinity-issues/troubleshoot-session-affinity-issues-2.jpg)
49+
![Screenshot shows the gateway settings for an app gateway, including whether Cookie based affinity is selected.](./media/how-to-troubleshoot-application-gateway-session-affinity-issues/troubleshoot-session-affinity-issues-2.png)
5050

5151

5252

@@ -105,53 +105,24 @@ You can collect additional logs and analyze them to troubleshoot the issues rela
105105

106106
To collect the Application Gateway logs, follow the instructions:
107107

108-
Enable logging through the Azure portal
108+
Enable logging using the Azure portal.
109109

110-
1. In the [Azure portal](https://portal.azure.com/), find your resource and then click **Diagnostic logs**.
110+
1. In the [Azure portal](https://portal.azure.com/), find your resource and then select **Diagnostic setting**.
111111

112-
For Application Gateway, three logs are available: Access log, Performance log, Firewall log
112+
For Application Gateway, three logs are available: Access log, Performance log, and Firewall log.
113113

114-
2. To start to collect data, click **Turn on diagnostics**.
114+
2. To start to collect data, select **Add diagnostic setting**.
115115

116-
![Screenshot shows an application gateway with Diagnostics logs selected.](./media/how-to-troubleshoot-application-gateway-session-affinity-issues/troubleshoot-session-affinity-issues-5.png)
116+
![Screenshot shows an application gateway with Diagnostics settings selected.](./media/how-to-troubleshoot-application-gateway-session-affinity-issues/troubleshoot-session-affinity-issues-5.png)
117117

118-
3. The **Diagnostics settings** blade provides the settings for the diagnostic logs. In this example, Log Analytics stores the logs. Click **Configure** under **Log Analytics** to set your workspace. You can also use event hubs and a storage account to save the diagnostic logs.
118+
3. The **Diagnostic setting** page provides the settings for the diagnostic logs. In this example, Log Analytics stores the logs. You can also use event hubs and a storage account to save the diagnostic logs.
119119

120120
![Screenshot shows the Diagnostics settings pane with Log Analytics Configure selected.](./media/how-to-troubleshoot-application-gateway-session-affinity-issues/troubleshoot-session-affinity-issues-6.png)
121121

122-
4. Confirm the settings and then click **Save**.
122+
4. Confirm the settings and then select **Save**.
123123

124-
![Screenshot shows the Diagnostics settings pane with Save selected.](./media/how-to-troubleshoot-application-gateway-session-affinity-issues/troubleshoot-session-affinity-issues-7.png)
125124

126-
#### View and analyze the Application Gateway access logs
127125

128-
1. In the Azure portal under the Application Gateway resource view, select **Diagnostics logs** in the **MONITORING** section .
129-
130-
![Screenshot shows MONITORING with Diagnostics logs selected.](./media/how-to-troubleshoot-application-gateway-session-affinity-issues/troubleshoot-session-affinity-issues-8.png)
131-
132-
2. On the right side, select “**ApplicationGatewayAccessLog**“ in the drop-down list under **Log categories.**
133-
134-
![Screenshot shows the Log categories dropdown list with ApplicationGatewayAccessLog selected.](./media/how-to-troubleshoot-application-gateway-session-affinity-issues/troubleshoot-session-affinity-issues-9.png)
135-
136-
3. In the Application Gateway Access Log list, click the log you want to analyze and export, and then export the JSON file.
137-
138-
4. Convert the JSON file that you exported in step 3 to CSV file and view them in Excel, Power BI, or any other data-visualization tool.
139-
140-
5. Check the following data:
141-
142-
- **ClientIP**– This is the client IP address from the connecting client.
143-
- **ClientPort** - This is the source port from the connecting client for the request.
144-
- **RequestQuery** – This indicates the destination server that the request is received.
145-
- **Server-Routed**: Back-end pool instance that the request is received.
146-
- **X-AzureApplicationGateway-LOG-ID**: Correlation ID used for the request. It can be used to troubleshoot traffic issues on the back-end servers. For example: X-AzureApplicationGateway-CACHE-HIT=0&SERVER-ROUTED=10.0.2.4.
147-
148-
- **SERVER-STATUS**: HTTP response code that Application Gateway received from the back end.
149-
150-
![Screenshot shows server status in plain text, mostly obscured, with clientPort and SERVER-ROUTED highlighted.](./media/how-to-troubleshoot-application-gateway-session-affinity-issues/troubleshoot-session-affinity-issues-11.png)
151-
152-
If you see two items are coming from the same ClientIP and Client Port, and they are sent to the same back-end server, that means the Application Gateway configured correctly.
153-
154-
If you see two items are coming from the same ClientIP and Client Port, and they are sent to the different back-end servers, that means the request is bouncing between backend servers, select “**Application is using cookie-based affinity but requests still bouncing between back-end servers**” at the bottom to troubleshoot it.
155126

156127
### Use web debugger to capture and analyze the HTTP or HTTPS traffics
157128

Loading
Loading
Loading

0 commit comments

Comments
 (0)