You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/application-gateway/ingress-controller-add-health-probes.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,9 @@ ms.author: greglin
13
13
14
14
By default, the Application Gateway Ingress Controller (AGIC) provisions an HTTP `GET` probe for exposed Azure Kubernetes Service (AKS) pods. You can customize the probe properties by adding a [readiness or liveness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/) to your deployment or pod specification.
15
15
16
+
> [!TIP]
17
+
> Consider [Application Gateway for Containers](for-containers/overview.md) for your Kubernetes ingress solution. For more information, see [Custom health probe for Application Gateway for Containers](for-containers/custom-health-probe.md).
18
+
16
19
## Code for adding a readiness or liveness probe
17
20
18
21
```yaml
@@ -68,4 +71,4 @@ Any property that the readiness or liveness probe can't infer uses the following
68
71
69
72
## Related content
70
73
71
-
- [What is Application Gateway for Containers?](for-containers/overview.md)
74
+
- [Application Gateway for Containers](for-containers/overview.md)
Copy file name to clipboardExpand all lines: articles/application-gateway/ingress-controller-autoscale-pods.md
+11-8Lines changed: 11 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Autoscale AKS pods with Azure Application Gateway metrics
3
-
description: This article provides instructions on how to scale your AKS back-end pods by using Application Gateway metrics and the Azure Kubernetes Metrics Adapter.
3
+
description: This article provides instructions on how to scale your AKS backend pods by using Application Gateway metrics and the Azure Kubernetes Metrics Adapter.
4
4
services: application-gateway
5
5
author: greg-lindsay
6
6
ms.service: azure-application-gateway
@@ -14,7 +14,7 @@ ms.author: greglin
14
14
15
15
As incoming traffic increases, it becomes crucial to scale up your applications based on the demand.
16
16
17
-
This article explains how you can use the `AvgRequestCountPerHealthyHost` metric in Azure Application Gateway to scale up Azure Kubernetes Service (AKS) pods for an application. The `AvgRequestCountPerHealthyHost` metric measures average requests sent to a specific combination of a back-end pool and a back-end HTTP setting.
17
+
This article explains how you can use the `AvgRequestCountPerHealthyHost` metric in Azure Application Gateway to scale up Azure Kubernetes Service (AKS) pods for an application. The `AvgRequestCountPerHealthyHost` metric measures average requests sent to a specific combination of a backend pool and a backend HTTP setting.
18
18
19
19
Use the following two components:
20
20
@@ -24,9 +24,12 @@ Use the following two components:
24
24
> [!NOTE]
25
25
> The Azure Kubernetes Metrics Adapter is no longer maintained. Kubernetes Event-driven Autoscaling (KEDA) is an alternative.
26
26
27
+
> [!TIP]
28
+
> Consider [Application Gateway for Containers](for-containers/overview.md) for your Kubernetes ingress solution. For more information, see [Scaling and availability for Application Gateway for Containers](for-containers/scaling-zone-resiliency.md).
29
+
27
30
## Set up the Azure Kubernetes Metrics Adapter
28
31
29
-
1. Create a Microsoft Entra service principal and assign it `Monitoring Reader` access over the Application Gateway instance's resource group:
32
+
1. Create a Microsoft Entra service principal and assign it `Monitoring Reader` access over the Application Gateway deployment's resource group:
1. Create an `ExternalMetric` resource with the name `appgw-request-count-metric`. This resource instructs the metric adapter to expose the `AvgRequestCountPerHealthyHost` metric for the `myApplicationGateway` resource in the `myResourceGroup` resource group. You can use the `filter` field to target a specific back-end pool and back-end HTTP setting in the Application Gateway instance.
52
+
1. Create an `ExternalMetric` resource with the name `appgw-request-count-metric`. This resource instructs the metric adapter to expose the `AvgRequestCountPerHealthyHost` metric for the `myApplicationGateway` resource in the `myResourceGroup` resource group. You can use the `filter` field to target a specific backend pool and backend HTTP setting in the Application Gateway deployment.
50
53
51
54
```yaml
52
55
apiVersion: azure.com/v1alpha2
@@ -56,8 +59,8 @@ Use the following two components:
56
59
spec:
57
60
type: azuremonitor
58
61
azure:
59
-
resourceGroup: myResourceGroup # replace with your Application Gateway instance's resource group name
60
-
resourceName: myApplicationGateway # replace with your Application Gateway instance's name
62
+
resourceGroup: myResourceGroup # replace with your Application Gateway deployment's resource group name
63
+
resourceName: myApplicationGateway # replace with your Application Gateway deployment's name
61
64
resourceProviderNamespace: Microsoft.Network
62
65
resourceType: applicationGateways
63
66
metric:
@@ -123,7 +126,7 @@ Test your setup by using a load test tool like ApacheBench:
123
126
ab -n10000 http://<applicaiton-gateway-ip-address>/
Copy file name to clipboardExpand all lines: articles/application-gateway/ingress-controller-cookie-affinity.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,9 @@ ms.author: greglin
13
13
14
14
As outlined in the [Azure Application Gateway documentation](./application-gateway-components.md#http-settings), Application Gateway supports cookie-based affinity. This support means that the service can direct subsequent traffic from a user session to the same server for processing.
15
15
16
+
> [!TIP]
17
+
> Consider [Application Gateway for Containers](for-containers/overview.md) for your Kubernetes ingress solution. For more information, see [Application Gateway for Containers session affinity overview](for-containers/session-affinity.md).
18
+
16
19
## Example
17
20
18
21
```yaml
@@ -34,4 +37,4 @@ spec:
34
37
35
38
## Related content
36
39
37
-
- [What is Application Gateway for Containers?](for-containers/overview.md)
40
+
- [Application Gateway for Containers](for-containers/overview.md)
Copy file name to clipboardExpand all lines: articles/application-gateway/ingress-controller-disable-addon.md
+15-12Lines changed: 15 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,31 +13,34 @@ ms.author: greglin
13
13
14
14
When you deploy the Application Gateway Ingress Controller (AGIC) as an Azure Kubernetes Service (AKS) add-on, you can enable and disable the add-on with one line in the Azure CLI.
15
15
16
-
The life cycle of the Azure Application Gateway instance differs when you disable the AGIC add-on, depending on whether you created the Application Gateway instance by using the AGIC add-on or you deployed it separately from the add-on. You can run the same command to re-enable the AGIC add-on if you ever disable it, or to enable the AGIC add-on by using an existing AKS cluster and Application Gateway instance.
16
+
The life cycle of the Azure Application Gateway deployment differs when you disable the AGIC add-on, depending on whether you created the Application Gateway deployment by using the AGIC add-on or you deployed it separately from the add-on. You can run the same command to re-enable the AGIC add-on if you ever disable it, or to enable the AGIC add-on by using an existing AKS cluster and Application Gateway deployment.
17
17
18
-
## Disable the AGIC add-on with an associated Application Gateway instance
18
+
> [!TIP]
19
+
> Consider [Application Gateway for Containers](for-containers/overview.md) for your Kubernetes ingress solution.
20
+
21
+
## Disable the AGIC add-on with an associated Application Gateway deployment
19
22
20
-
If the AGIC add-on automatically deployed the Application Gateway instance for you when you first set up everything, then disabling the AGIC add-on might delete the Application Gateway instance by default. The AGIC add-on considers two criteria to determine if it should delete the associated Application Gateway instance:
23
+
If the AGIC add-on automatically deployed Application Gateway for you when you first set up everything, then disabling the AGIC add-on might delete the Application Gateway deployment by default. The AGIC add-on considers two criteria to determine if it should delete the associated Application Gateway deployment:
21
24
22
-
- Is the Application Gateway instance deployed in the `MC_*` node resource group?
23
-
- Does the Application Gateway instance have the tag `created-by: ingress-appgw`? AGIC uses the tag to determine whether or not the add-on deployed the Application Gateway instance.
25
+
- Is Application Gateway deployed in the `MC_*` node resource group?
26
+
- Does the Application Gateway deployment have the tag `created-by: ingress-appgw`? AGIC uses the tag to determine whether or not the add-on deployed Application Gateway.
24
27
25
-
If both criteria are met, the AGIC add-on deletes the Application Gateway instance when you disable the add-on. However, the AGIC add-on doesn't delete the public IP address or the subnet in which it deployed the Application Gateway instance.
28
+
If both criteria are met, the AGIC add-on deletes the Application Gateway deployment when you disable the add-on. However, the AGIC add-on doesn't delete the public IP address or the subnet in which it deployed Application Gateway.
26
29
27
-
If the first criterion isn't met, disabling the add-on doesn't delete the Application Gateway instance, even if the instance has the `created-by: ingress-appgw` tag. Likewise, if the second criterion isn't met (that is, the Application Gateway instance lacks that tag), disabling the add-on doesn't delete the Application Gateway instance in the `MC_*` node resource group.
30
+
If the first criterion isn't met, disabling the add-on doesn't delete the Application Gateway deployment, even if the deployment has the `created-by: ingress-appgw` tag. Likewise, if the second criterion isn't met (that is, the Application Gateway deployment lacks that tag), disabling the add-on doesn't delete the Application Gateway deployment in the `MC_*` node resource group.
28
31
29
32
> [!TIP]
30
-
> If you don't want the add-on to delete your Application Gateway instance when you disable the add-on, but the instance meets both criteria, remove the `created-by: ingress-appgw` tag.
33
+
> If you don't want the add-on to delete your Application Gateway deployment when you disable the add-on, but the deployment meets both criteria, remove the `created-by: ingress-appgw` tag.
31
34
32
35
To disable the AGIC add-on, run the following command:
33
36
34
37
```azurecli-interactive
35
38
az aks disable-addons -n <AKS-cluster-name> -g <AKS-resource-group-name> -a ingress-appgw
36
39
```
37
40
38
-
## Enable the AGIC add-on on an existing Application Gateway instance and AKS cluster
41
+
## Enable the AGIC add-on on an existing Application Gateway deployment and AKS cluster
39
42
40
-
If you ever disable the AGIC add-on and need to re-enable it, or you want to enable the add-on by using an existing Application Gateway instance and AKS cluster, run the following command:
43
+
If you ever disable the AGIC add-on and need to re-enable it, or you want to enable the add-on by using an existing Application Gateway deployment and AKS cluster, run the following command:
@@ -46,5 +49,5 @@ az aks enable-addons -n <AKS-cluster-name> -g <AKS-cluster-resource-group> -a in
46
49
47
50
## Related content
48
51
49
-
- For more information on how to enable the AGIC add-on by using an existing Application Gateway instance and AKS cluster, see [this tutorial](tutorial-ingress-controller-add-on-existing.md).
50
-
- For information about Application Gateway for Containers, see [What is Application Gateway for Containers?](for-containers/overview.md).
52
+
- For more information on how to enable the AGIC add-on by using an existing Application Gateway deployment and AKS cluster, see [this tutorial](tutorial-ingress-controller-add-on-existing.md).
53
+
- For information about Application Gateway for Containers, see [this overview article](for-containers/overview.md).
Copy file name to clipboardExpand all lines: articles/application-gateway/ingress-controller-expose-service-over-http-https.md
+9-6Lines changed: 9 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,16 +14,19 @@ ms.author: greglin
14
14
15
15
This article illustrates the usage of [Kubernetes ingress resources](https://kubernetes.io/docs/concepts/services-networking/ingress/) to expose an example Azure Kubernetes Service (AKS) service through [Azure Application Gateway](https://azure.microsoft.com/services/application-gateway/) over HTTP or HTTPS.
16
16
17
+
> [!TIP]
18
+
> Consider [Application Gateway for Containers](for-containers/overview.md) for your Kubernetes ingress solution.
19
+
17
20
## Prerequisites
18
21
19
22
- An installed `ingress-azure` Helm chart:
20
23
-[Greenfield deployment](ingress-controller-install-new.md): If you're starting from scratch, refer to these installation instructions, which outline steps to deploy an AKS cluster with Application Gateway and install the Application Gateway Ingress Controller (AGIC) on the AKS cluster.
21
-
-[Brownfield deployment](ingress-controller-install-existing.md): If you have an existing AKS cluster and Application Gateway instance, refer to these instructions to install AGIC on the AKS cluster.
24
+
-[Brownfield deployment](ingress-controller-install-existing.md): If you have an existing AKS cluster and Application Gateway deployment, refer to these instructions to install AGIC on the AKS cluster.
22
25
- An x509 certificate and its private key, if you want to use HTTPS on this application.
23
26
24
27
## Deploy the guestbook application
25
28
26
-
The `guestbook` application is a canonical Kubernetes application that consists of a web UI front end, a back end, and a Redis database.
29
+
The `guestbook` application is a canonical Kubernetes application that consists of a web UI frontend, a backend, and a Redis database.
27
30
28
31
By default, `guestbook` exposes its application through a service with the name `frontend` on port `80`. Without a Kubernetes ingress resource, the service isn't accessible from outside the AKS cluster. You use the application, and set up ingress resources to access the application, through HTTP and HTTPS.
29
32
@@ -56,7 +59,7 @@ spec:
56
59
servicePort: 80
57
60
```
58
61
59
-
This ingress exposes the `frontend` service of the `guestbook-all-in-one` deployment as a default back end of the Application Gateway instance.
62
+
This ingress exposes the `frontend` service of the `guestbook-all-in-one` deployment as a default backend of the Application Gateway deployment.
60
63
61
64
Save the preceding ingress resource as `ing-guestbook.yaml`:
62
65
@@ -68,13 +71,13 @@ Save the preceding ingress resource as `ing-guestbook.yaml`:
68
71
69
72
1. Check the log of the ingress controller for the deployment status.
70
73
71
-
Now the `guestbook` application should be available. You can check the availability by visiting the public address of the Application Gateway instance.
74
+
Now the `guestbook` application should be available. You can check the availability by visiting the public address of the Application Gateway deployment.
72
75
73
76
## Expose services over HTTPS
74
77
75
78
### Without a specified host name
76
79
77
-
If you don't specify a host name, the `guestbook` service is available on all the host names that point to the Application Gateway instance.
80
+
If you don't specify a host name, the `guestbook` service is available on all the host names that point to the Application Gateway deployment.
78
81
79
82
1. Before you deploy the ingress resource, create a Kubernetes secret to host the certificate and private key:
80
83
@@ -177,4 +180,4 @@ spec:
177
180
178
181
## Related content
179
182
180
-
- [What is Application Gateway for Containers?](for-containers/overview.md)
183
+
- [Application Gateway for Containers](for-containers/overview.md)
Copy file name to clipboardExpand all lines: articles/application-gateway/ingress-controller-expose-websocket-server.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,9 @@ ms.author: greglin
13
13
14
14
Azure Application Gateway v2 [provides native support for the WebSocket and HTTP/2 protocols](features.md#websocket-and-http2-traffic). Both Application Gateway and the Kubernetes ingress don't have a user-configurable setting to selectively enable or disable WebSocket support.
15
15
16
+
> [!TIP]
17
+
> Consider [Application Gateway for Containers](for-containers/overview.md) for your Kubernetes ingress solution.
18
+
16
19
## YAML for WebSocket server deployment
17
20
18
21
The following Kubernetes deployment YAML shows the minimum configuration for deploying a WebSocket server, which is the same as deploying a regular web server:
@@ -73,7 +76,7 @@ spec:
73
76
servicePort: 80
74
77
```
75
78
76
-
Assuming that all the prerequisites are fulfilled, and you have an Application Gateway instance controlled by a Kubernetes ingress in Azure Kubernetes Service (AKS), the preceding deployment would result in a WebSocket server exposed on port 80 of your Application Gateway instance's public IP address and the `ws.contoso.com` domain.
79
+
Assuming that all the prerequisites are fulfilled, and you have an Application Gateway deployment controlled by a Kubernetes ingress in Azure Kubernetes Service (AKS), the preceding deployment would result in a WebSocket server exposed on port 80 of your Application Gateway deployment's public IP address and the `ws.contoso.com` domain.
77
80
78
81
The following cURL command would test the WebSocket server deployment:
79
82
@@ -98,4 +101,4 @@ To avoid the `502 Bad Gateway` error, you might need to add an HTTP `GET` handle
98
101
99
102
## Related content
100
103
101
-
- [What is Application Gateway for Containers?](for-containers/overview.md)
104
+
- [Application Gateway for Containers](for-containers/overview.md)
0 commit comments