Skip to content

Commit 292279b

Browse files
authored
Merge pull request #299349 from craigshoemaker/aca/env-ingress
[Container Apps] New: Environment level ingress configuration
2 parents b71f857 + 7848c23 commit 292279b

File tree

2 files changed

+117
-1
lines changed

2 files changed

+117
-1
lines changed

articles/container-apps/TOC.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,9 @@
354354
- name: Overview
355355
href: ingress-overview.md
356356
displayName: Ingress overview
357-
- name: Configure ingress
357+
- name: Environment-level configuration
358+
href: ingress-environment-configuration.md
359+
- name: Application-level configuration
358360
href: ingress-how-to.md
359361
- name: Configure IP restrictions
360362
href: ip-restrictions.md
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
---
2+
title: Configure ingress in an Azure Container Apps environment
3+
description: Learn how to configure ingress in an Azure Container Apps environment.
4+
services: container-apps
5+
author: craigshoemaker
6+
ms.service: azure-container-apps
7+
ms.topic: conceptual
8+
ms.date: 05/06/2025
9+
ms.author: cshoe
10+
---
11+
12+
# Configure ingress for an Azure Container Apps environment
13+
14+
Ingress configuration in Azure Container Apps determines how external network traffic reaches your applications. Properly configuring ingress enables you to control traffic routing, improve application performance, and implement advanced deployment strategies. This article guides you through the ingress configuration options available in Azure Container Apps and helps you choose the right settings for your workloads.
15+
16+
An Azure Container Apps environment includes a scalable edge ingress proxy responsible for the following features:
17+
18+
- [Transport Layer Security (TLS) termination](networking.md#http-edge-proxy-behavior), which decrypts TLS traffic as it enters the environment. This operation shifts the work of decryption away from your container apps, reducing their resource consumption and improving their performance.
19+
20+
- [Load balancing and traffic splitting](traffic-splitting.md) between active container app revisions. Having control over where you direct incoming traffic allows you to implement patterns like [blue-green deployment](blue-green-deployment.md) and conduct [A/B testing](https://wikipedia.org/wiki/A/B_testing).
21+
22+
- [Session affinity](./sticky-sessions.md), which helps you build stateful applications that require a consistent connection to the same container app replica.
23+
24+
The following diagram shows an example environment with the ingress proxy routing traffic to two container apps.
25+
26+
:::image type="content" source="media/networking/peer-to-peer-encryption-traffic-diagram.png" alt-text="Diagram of how the ingress proxy routes traffic to your container apps.":::
27+
28+
By default, Azure Container Apps creates your container app environment with the default ingress mode. If your application needs to operate at high scale levels, you can set the ingress mode to premium.
29+
30+
## Default ingress mode
31+
32+
With the default ingress mode, your Container Apps environment has two ingress proxy instances. Container apps creates more instances as needed, up to a maximum of 10. Each instance is allocated up to 1 vCPU core and 2 GB of memory.
33+
34+
In the default ingress mode, no billing is applied for scaling the ingress proxy or for the vCPU cores and allocated memory.
35+
36+
## Premium ingress mode
37+
38+
The default ingress mode could become a bottleneck in high scale environments. As an alternative, the premium ingress mode includes advanced features to ensure your ingress keeps up with traffic demands.
39+
40+
These features include:
41+
42+
- Workload profile support: Ingress proxy instances run in a [workload profile](workload-profiles-overview.md) of your choice. You have control over the number of vCPU cores and memory resources available to the proxy.
43+
44+
- Configurable scale range rules: Proxy scale range rules are configurable so you can make sure you have as many instances as your application requires.
45+
46+
- Advanced settings: You can configure advanced settings such as idle time-outs for ingress proxy instances.
47+
48+
To decide between default and premium ingress mode, you evaluate the resources consumed by the proxy instance considering the requests served. Start by looking at vCPU cores and memory resources consumed by the proxy instance. If your environment sustains the maximum ingress proxy count (default 10) for any extended period, consider switching to premium ingress mode. For more information, see [metrics](metrics.md).
49+
50+
### Workload profile
51+
52+
You can select a workload profile to provide dedicated nodes for your ingress proxy instances that scale to your needs. The D4-D32 workload profile types are recommended. Each ingress proxy instance is allocated 1 vCPU core. For more information, see [Workload profiles in Azure Container Apps](workload-profiles-overview.md).
53+
54+
The workload profile:
55+
56+
- Must not be the Consumption workload profile.
57+
- Must not be shared with container apps or jobs.
58+
- Must not be deleted while you're using it for your ingress proxy.
59+
60+
Running your ingress proxy in a workload profile is billed at the rate for that workload profile. For more information, see [billing](billing.md#consumption-dedicated).
61+
62+
You can also configure the number of workload profile nodes. A workload profile is a scalable pool of nodes. Each node contains multiple ingress proxy instances. The number of nodes scales based on vCPU and memory utilization. The minimum number of node instances is two.
63+
64+
### Scaling
65+
66+
The ingress proxy scales independently from your container app scaling.
67+
68+
When your ingress proxy reaches high vCPU or memory utilization, Container Apps creates more ingress proxy instances. When utilization decreases, the extra ingress proxy instances are removed.
69+
70+
Your minimum and maximum ingress proxy instances are determined as follows:
71+
72+
- Minimum: There are a minimum of two node instances.
73+
74+
- Maximum: Your maximum node instances multiplied by your vCPU cores. For example, if you have 50 maximum node instances and 4 vCPU cores, you have a maximum of 200 ingress proxy instances.
75+
76+
The ingress proxy instances are spread among the available workload profile nodes.
77+
78+
### Advanced ingress settings
79+
80+
With the premium ingress mode enabled, you can also configure the following settings:
81+
82+
| Setting | Description | Minimum | Maximum | Default |
83+
|---|---|---|---|---|
84+
| Termination grace period | The amount of time (in seconds) for the container app to finish processing requests before they're canceled during shutdown. | 0 | 60 | 8 |
85+
| Idle request timeout | Idle request time-out in minutes. | 1 | 60 | 4 |
86+
| Request header count | Increase this setting if you have clients that send a large number of request headers. | 1 | N/A | 100 |
87+
88+
You should only increase these settings as needed, because raising them could lead to your ingress proxy instances consuming more resources for longer periods of time, becoming more vulnerable to resource exhaustion and denial of service attacks.
89+
90+
## Configure ingress
91+
92+
You can configure the ingress for your environment after you create it.
93+
94+
1. Browse to your environment in the Azure portal.
95+
1. Select **Networking**.
96+
1. Select **Ingress settings**.
97+
1. Configure your ingress settings as follows.
98+
99+
| Setting | Value |
100+
|---|---|
101+
| Ingress Mode| Select [**Default**](#default-ingress-mode) or [**Premium**](#premium-ingress-mode). |
102+
| Workload profile size | Select a size from [**D4** to **D32**](#workload-profile). |
103+
| Minimum node instances | Enter the [minimum workload profile node instances](#workload-profile). |
104+
| Maximum node instances | Enter the [maximum workload profile node instances](#workload-profile). |
105+
| Termination grace period |Enter the [termination grace period in minutes](#advanced-ingress-settings). |
106+
| Idle request timeout| Enter the [idle request time-out in minutes](#advanced-ingress-settings). |
107+
| Request header count | Enter the [request header count](#advanced-ingress-settings). |
108+
109+
1. Select **Apply**.
110+
111+
## Related content
112+
113+
- [Ingress in Azure Container Apps](ingress-overview.md)
114+
- [Networking in Azure Container Apps](networking.md)

0 commit comments

Comments
 (0)