Skip to content

Commit 018e3b4

Browse files
authored
Merge pull request #95170 from MicrosoftDocs/master
11/07 AM Publish
2 parents 827248f + 5411f02 commit 018e3b4

File tree

224 files changed

+3602
-383
lines changed

Some content is hidden

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

224 files changed

+3602
-383
lines changed

articles/active-directory/b2b/troubleshoot.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
---
22
title: Troubleshooting B2B collaboration - Azure Active Directory | Microsoft Docs
33
description: Remedies for common problems with Azure Active Directory B2B collaboration
4-
54
services: active-directory
65
ms.service: active-directory
76
ms.subservice: B2B
8-
ms.topic: conceptual
7+
ms.topic: troubleshooting
98
ms.date: 05/25/2017
10-
9+
tags: active-directory
1110
ms.author: mimart
1211
author: v-miegge
13-
manager: celestedg
12+
manager: dcscontentpm
1413
ms.reviewer: mal
15-
ms.custom: "it-pro, seo-update-azuread-jan"
14+
ms.custom:
15+
- it-pro
16+
- seo-update-azuread-jan"
1617
ms.collection: M365-identity-device-management
1718
---
1819

articles/active-directory/develop/quickstart-v2-javascript.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,11 @@ Select the option that's suitable to your development environment:
7979

8080
* (Optional) To run the project with the IIS server, [download the Visual Studio project](https://github.com/Azure-Samples/active-directory-javascript-graphapi-v2/archive/vsquickstart.zip). Extract the zip file to a local folder (for example, *C:\Azure-Samples*).
8181

82-
#### Step 3: Configure your JavaScript app
83-
8482
> [!div renderon="docs"]
83+
> #### Step 3: Configure your JavaScript app
8584
> In the *JavaScriptSPA* folder, edit *index.html*, and set the `clientID` and `authority` values under `msalConfig`.
8685
87-
> [!div class="sxs-lookup" renderon="portal"]
86+
> [!div renderon="docs"]
8887
> In the *JavaScriptSPA* folder, edit *index.html*, and replace `msalConfig` with the following code:
8988
9089
```javascript
@@ -101,10 +100,6 @@ var msalConfig = {
101100
};
102101

103102
```
104-
> [!div renderon="portal"]
105-
> > [!NOTE]
106-
> > This quickstart supports Enter_the_Supported_Account_Info_Here.
107-
108103

109104
> [!div renderon="docs"]
110105
>
@@ -119,7 +114,12 @@ var msalConfig = {
119114
> > To find the values of **Application (client) ID**, **Directory (tenant) ID**, and **Supported account types**, go to the app's **Overview** page in the Azure portal.
120115
>
121116
122-
#### Step 4: Run the project
117+
> [!div class="sxs-lookup" renderon="portal"]
118+
> #### Step 3: Your app is configured and ready to run
119+
> We have configured your project with values of your app's properties.
120+
121+
> [!div renderon="docs"]
122+
> #### Step 4: Run the project
123123
124124
* If you're using [Node.js](https://nodejs.org/en/download/):
125125

articles/active-directory/manage-apps/application-proxy-integrate-with-power-bi.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ For more information, see [Kerberos Constrained Delegation for single sign-on to
7878
Now you're ready to configure Azure AD Application Proxy.
7979

8080
1. Publish Report Services through Application Proxy with the following settings. For step-by-step instructions on how to publish an application through Application Proxy, see [Publishing applications using Azure AD Application Proxy](application-proxy-add-on-premises-application.md#add-an-on-premises-app-to-azure-ad).
81-
- **Internal URL**: Enter the URL to the Report Server that the connector can reach in the corporate network. Make sure this URL is reachable from the server the connector is installed on. A best practice is using a top-level domain such as `https://servername/` to avoid issues with subpaths (for example, `https://servername/reports/` and `https://servername/reportserver/`) not published through Application Proxy.
81+
- **Internal URL**: Enter the URL to the Report Server that the connector can reach in the corporate network. Make sure this URL is reachable from the server the connector is installed on. A best practice is using a top-level domain such as `https://servername/` to avoid issues with subpaths published through Application Proxy. For example, use `https://servername/` and not `https://servername/reports/` or `https://servername/reportserver/`.
8282
> [!NOTE]
8383
> We recommend using a secure HTTPS connection to the Report Server. See [Configure SSL connections on a native mode report server](https://docs.microsoft.com/sql/reporting-services/security/configure-ssl-connections-on-a-native-mode-report-server?view=sql-server-2017) for information how to.
8484
- **External URL**: Enter the public URL the Power BI mobile app will connect to. For example, it may look like `https://reports.contoso.com` if a custom domain is used. To use a custom domain, upload a certificate for the domain, and point a DNS record to the default msappproxy.net domain for your application. For detailed steps, see [Working with custom domains in Azure AD Application Proxy](application-proxy-configure-custom-domain.md).

articles/aks/coredns-custom.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ data:
4747
errors
4848
cache 30
4949
rewrite name substring <domain to be rewritten>.com default.svc.cluster.local
50-
proxy . /etc/resolv.conf # you can redirect this to a specific DNS server such as 10.0.0.10
50+
forward . /etc/resolv.conf # you can redirect this to a specific DNS server such as 10.0.0.10
5151
}
5252
```
5353
@@ -72,9 +72,9 @@ kubectl delete pod --namespace kube-system -l k8s-app=kube-dns
7272
> [!Note]
7373
> The command above is correct. While we're changing `coredns`, the deployment is under the **kube-dns** name.
7474
75-
## Custom proxy server
75+
## Custom forward server
7676

77-
If you need to specify a proxy server for your network traffic, you can create a ConfigMap to customize DNS. In the following example, update the `proxy` name and address with the values for your own environment. Create a file named `corednsms.yaml` and paste the following example configuration:
77+
If you need to specify a forward server for your network traffic, you can create a ConfigMap to customize DNS. In the following example, update the `forward` name and address with the values for your own environment. Create a file named `corednsms.yaml` and paste the following example configuration:
7878

7979
```yaml
8080
apiVersion: v1
@@ -85,15 +85,15 @@ metadata:
8585
data:
8686
test.server: | # you may select any name here, but it must end with the .server file extension
8787
<domain to be rewritten>.com:53 {
88-
proxy foo.com 1.1.1.1
88+
forward foo.com 1.1.1.1
8989
}
9090
```
9191
9292
As in the previous examples, create the ConfigMap using the [kubectl apply configmap][kubectl-apply] command and specify the name of your YAML manifest. Then, force CoreDNS to reload the ConfigMap using the [kubectl delete pod][kubectl delete] for the Kubernetes Scheduler to recreate them:
9393
9494
```console
9595
kubectl apply -f corednsms.yaml
96-
kubectl delete pod --namespace kube-system --label k8s-app=kube-dns
96+
kubectl delete pod --namespace kube-system --selector k8s-app=kube-dns
9797
```
9898

9999
## Use custom domains
@@ -113,15 +113,15 @@ data:
113113
puglife.local:53 {
114114
errors
115115
cache 30
116-
proxy . 192.11.0.1 # this is my test/dev DNS server
116+
forward . 192.11.0.1 # this is my test/dev DNS server
117117
}
118118
```
119119
120120
As in the previous examples, create the ConfigMap using the [kubectl apply configmap][kubectl-apply] command and specify the name of your YAML manifest. Then, force CoreDNS to reload the ConfigMap using the [kubectl delete pod][kubectl delete] for the Kubernetes Scheduler to recreate them:
121121
122122
```console
123123
kubectl apply -f corednsms.yaml
124-
kubectl delete pod --namespace kube-system --label k8s-app=kube-dns
124+
kubectl delete pod --namespace kube-system --selector k8s-app=kube-dns
125125
```
126126

127127
## Stub domains
@@ -139,12 +139,12 @@ data:
139139
abc.com:53 {
140140
errors
141141
cache 30
142-
proxy . 1.2.3.4
142+
forward . 1.2.3.4
143143
}
144144
my.cluster.local:53 {
145145
errors
146146
cache 30
147-
proxy . 2.3.4.5
147+
forward . 2.3.4.5
148148
}
149149
150150
```
@@ -153,7 +153,7 @@ As in the previous examples, create the ConfigMap using the [kubectl apply confi
153153
154154
```console
155155
kubectl apply -f corednsms.yaml
156-
kubectl delete pod --namespace kube-system --label k8s-app=kube-dns
156+
kubectl delete pod --namespace kube-system --selector k8s-app=kube-dns
157157
```
158158

159159
## Hosts plugin
@@ -185,8 +185,6 @@ To learn more about core network concepts, see [Network concepts for application
185185
[coredns]: https://coredns.io/
186186
[corednsk8s]: https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#coredns
187187
[dnscache]: https://coredns.io/plugins/cache/
188-
[aks-quickstart-cli]: https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough
189-
[aks-quickstart-portal]: https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal
190188
[kubectl-apply]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply
191189
[kubectl-get]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get
192190
[kubectl delete]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#delete

articles/api-management/api-management-api-import-restrictions.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ms.service: api-management
1212
ms.workload: mobile
1313
ms.tgt_pltfrm: na
1414
ms.topic: article
15-
ms.date: 06/26/2019
15+
ms.date: 11/06/2019
1616
ms.author: apimpm
1717
---
1818

@@ -36,6 +36,8 @@ If you're receiving errors importing your OpenAPI document, make sure you've val
3636
- Source file URL (if available) is applied to relative server URLs.
3737
- Security definitions are ignored.
3838
- Inline schema definitions for API operations are not supported. Schema definitions are defined in the API scope and can be referenced in API operations request or response scopes.
39+
- A defined URL parameter needs to be part of the URL template.
40+
- **Produces** keyword, which describes MIME types returned by an API, is not supported.
3941

4042
### <a name="open-api-v2"> </a>OpenAPI version 2
4143

articles/api-management/api-management-howto-developer-portal.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,31 @@ No.
113113

114114
### I'm getting a CORS error when using the interactive console. What should I do?
115115

116-
The interactive console makes a client-side API request from the browser. You can resolve the CORS problem by adding [a CORS policy](https://docs.microsoft.com/azure/api-management/api-management-cross-domain-policies#CORS) on your API(s). You can either specify all the parameters manually (for example, origin as https://contoso.com) or use a wildcard `*` value.
116+
The interactive console makes a client-side API request from the browser. You can resolve the CORS problem by adding [a CORS policy](https://docs.microsoft.com/azure/api-management/api-management-cross-domain-policies#CORS) on your API(s). You can specify all the parameters manually or use wildcard `*` values. For example:
117+
118+
```XML
119+
<cors>
120+
<allowed-origins>
121+
<origin>*</origin>
122+
</allowed-origins>
123+
<allowed-methods>
124+
<method>GET</method>
125+
<method>POST</method>
126+
<method>PUT</method>
127+
<method>DELETE</method>
128+
<method>HEAD</method>
129+
<method>OPTIONS</method>
130+
<method>PATCH</method>
131+
<method>TRACE</method>
132+
</allowed-methods>
133+
<allowed-headers>
134+
<header>*</header>
135+
</allowed-headers>
136+
<expose-headers>
137+
<header>*</header>
138+
</expose-headers>
139+
</cors>
140+
```
117141

118142
## Next steps
119143

articles/application-gateway/ingress-controller-add-health-probes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: application-gateway
55
author: caya
66
ms.service: application-gateway
77
ms.topic: article
8-
ms.date: 10/23/2019
8+
ms.date: 11/4/2019
99
ms.author: caya
1010
---
1111

articles/application-gateway/ingress-controller-annotations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: application-gateway
55
author: caya
66
ms.service: application-gateway
77
ms.topic: article
8-
ms.date: 10/11/2019
8+
ms.date: 11/4/2019
99
ms.author: caya
1010
---
1111

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
---
2+
title: Autoscale AKS pods with Azure Application Gateway metrics
3+
description: This article provides instructions on how to scale your AKS backend pods using Application Gateway metrics and Azure Kubernetes Metric Adapter
4+
services: application-gateway
5+
author: caya
6+
ms.service: application-gateway
7+
ms.topic: article
8+
ms.date: 11/4/2019
9+
ms.author: caya
10+
---
11+
12+
# Autoscale your AKS pods using Application Gateway Metrics (Beta)
13+
14+
As incoming traffic increases, it becomes crucial to scale up your applications based on the demand.
15+
16+
In the following tutorial, we explain how you can use Application Gateway's `AvgRequestCountPerHealthyHost` metric to scale up your application. `AvgRequestCountPerHealthyHost` measures average requests sent to a specific backend pool and backend HTTP setting combination.
17+
18+
We are going to use following two components:
19+
20+
* [`Azure Kubernetes Metric Adapter`](https://github.com/Azure/azure-k8s-metrics-adapter) - We will use the metric adapter to expose Application Gateway metrics through the metric server. The Azure Kubernetes Metric Adapter is an open source project under Azure, similar to the Application Gateway Ingress Controller.
21+
* [`Horizontal Pod Autoscaler`](https://docs.microsoft.com/azure/aks/concepts-scale#horizontal-pod-autoscaler) - We will use HPA to use Application Gateway metrics and target a deployment for scaling.
22+
23+
## Setting up Azure Kubernetes Metric Adapter
24+
25+
1. We will first create an Azure AAD service principal and assign it `Monitoring Reader` access over Application Gateway's resource group.
26+
27+
```bash
28+
applicationGatewayGroupName="<application-gateway-group-id>"
29+
applicationGatewayGroupId=$(az group show -g $applicationGatewayGroupName -o tsv --query "id")
30+
az ad sp create-for-rbac -n "azure-k8s-metric-adapter-sp" --role "Monitoring Reader" --scopes applicationGatewayGroupId
31+
```
32+
33+
1. Now, We will deploy the [`Azure Kubernetes Metric Adapter`](https://github.com/Azure/azure-k8s-metrics-adapter) using the AAD service principal created above.
34+
35+
```bash
36+
kubectl create namespace custom-metrics
37+
# use values from service principle created above to create secret
38+
kubectl create secret generic azure-k8s-metrics-adapter -n custom-metrics \
39+
--from-literal=azure-tenant-id=<tenantid> \
40+
--from-literal=azure-client-id=<clientid> \
41+
--from-literal=azure-client-secret=<secret>
42+
kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/Azure/azure-k8s-metrics-adapter/master/deploy/adapter.yaml -n custom-metrics
43+
```
44+
45+
1. We will create an `ExternalMetric` resource with name `appgw-request-count-metric`. This resource will instruct the metric adapter to expose `AvgRequestCountPerHealthyHost` metric for `myApplicationGateway` resource in `myResourceGroup` resource group. You can use the `filter` field to target a specific backend pool and backend HTTP setting in the Application Gateway.
46+
47+
```yaml
48+
apiVersion: azure.com/v1alpha2
49+
kind: ExternalMetric
50+
metadata:
51+
name: appgw-request-count-metric
52+
spec:
53+
type: azuremonitor
54+
azure:
55+
resourceGroup: myResourceGroup # replace with your application gateway's resource group name
56+
resourceName: myApplicationGateway # replace with your application gateway's name
57+
resourceProviderNamespace: Microsoft.Network
58+
resourceType: applicationGateways
59+
metric:
60+
metricName: AvgRequestCountPerHealthyHost
61+
aggregation: Average
62+
filter: BackendSettingsPool eq '<backend-pool-name>~<backend-http-setting-name>' # optional
63+
```
64+
65+
You can now make a request to the metric server to see if our new metric is getting exposed:
66+
```bash
67+
kubectl get --raw "/apis/external.metrics.k8s.io/v1beta1/namespaces/default/appgw-request-count-metric"
68+
# Sample Output
69+
# {
70+
# "kind": "ExternalMetricValueList",
71+
# "apiVersion": "external.metrics.k8s.io/v1beta1",
72+
# "metadata":
73+
# {
74+
# "selfLink": "/apis/external.metrics.k8s.io/v1beta1/namespaces/default/appgw-request-count-metric",
75+
# },
76+
# "items":
77+
# [
78+
# {
79+
# "metricName": "appgw-request-count-metric",
80+
# "metricLabels": null,
81+
# "timestamp": "2019-11-05T00:18:51Z",
82+
# "value": "30",
83+
# },
84+
# ],
85+
# }
86+
```
87+
88+
## Using the new metric to scale up the deployment
89+
90+
Once we are able to expose `appgw-request-count-metric` through the metric server, we are ready to use [`Horizontal Pod Autoscaler`](https://docs.microsoft.com/azure/aks/concepts-scale#horizontal-pod-autoscaler) to scale up our target deployment.
91+
92+
In following example, we will target a sample deployment `aspnet`. We will scale up Pods when `appgw-request-count-metric` > 200 per Pod upto a max of `10` Pods.
93+
94+
Replace your target deployment name and apply the following auto scale configuration:
95+
```yaml
96+
apiVersion: autoscaling/v2beta1
97+
kind: HorizontalPodAutoscaler
98+
metadata:
99+
name: deployment-scaler
100+
spec:
101+
scaleTargetRef:
102+
apiVersion: extensions/v1beta1
103+
kind: Deployment
104+
name: aspnet # replace with your deployment's name
105+
minReplicas: 1
106+
maxReplicas: 10
107+
metrics:
108+
- type: External
109+
external:
110+
metricName: appgw-request-count-metric
111+
targetAverageValue: 200
112+
```
113+
114+
Test your setup by using a load test tool like apache bench:
115+
```bash
116+
ab -n10000 http://<applicaiton-gateway-ip-address>/
117+
```
118+
119+
## Next steps
120+
- [**Troubleshoot Ingress Controller issues**](ingress-controller-troubleshoot.md): Troubleshoot any issues with the Ingress Controller.

articles/application-gateway/ingress-controller-cookie-affinity.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: application-gateway
55
author: caya
66
ms.service: application-gateway
77
ms.topic: article
8-
ms.date: 10/23/2019
8+
ms.date: 11/4/2019
99
ms.author: caya
1010
---
1111

0 commit comments

Comments
 (0)