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/aks/api-server-authorized-ip-ranges.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ The *API server authorized IP ranges* feature has the following limitations:
26
26
27
27
- The *API server authorized IP ranges* feature was moved out of preview in October 2019. For clusters created after the feature was moved out of preview, this feature is only supported on the *Standard* SKU load balancer. Any existing clusters on the *Basic* SKU load balancer with the *API server authorized IP ranges* feature enabled will continue to work as is. However, these clusters cannot be migrated to a *Standard* SKU load balancer. Existing clusters will continue to work if the Kubernetes version and control plane are upgraded.
28
28
- The *API server authorized IP ranges* feature isn't supported on private clusters.
29
-
- When using this feature with clusters that use [Node Public IP](use-multiple-node-pools.md#assign-a-public-ip-per-node-for-your-node-pools), the node pools using Node Public IP must use public IP prefixes. The public IP prefixes must be added as authorized ranges.
29
+
- When using this feature with clusters that use [Node Public IP](use-node-public-ips.md), the node pools using Node Public IP must use public IP prefixes. The public IP prefixes must be added as authorized ranges.
30
30
31
31
## Overview of API server authorized IP ranges
32
32
@@ -38,7 +38,7 @@ For more information about the API server and other cluster components, see [Kub
38
38
39
39
## Create an AKS cluster with API server authorized IP ranges enabled
40
40
41
-
Create a cluster using the [az aks create][az-aks-create] and specify the *`--api-server-authorized-ip-ranges`* parameter to provide a list of authorized IP address ranges. These IP address ranges are usually address ranges used by your on-premises networks or public IPs. When you specify a CIDR range, start with the first IP address in the range. For example, *137.117.106.90/29* is a valid range, but make sure you specify the first IP address in the range, such as *137.117.106.88/29*.
41
+
Create a cluster using the [`az aks create`][az-aks-create] and specify the *`--api-server-authorized-ip-ranges`* parameter to provide a list of authorized IP address ranges. These IP address ranges are usually address ranges used by your on-premises networks or public IPs. When you specify a CIDR range, start with the first IP address in the range. For example, *137.117.106.90/29* is a valid range, but make sure you specify the first IP address in the range, such as *137.117.106.88/29*.
42
42
43
43
> [!IMPORTANT]
44
44
> By default, your cluster uses the [Standard SKU load balancer][standard-sku-lb] which you can use to configure the outbound gateway. When you enable API server authorized IP ranges during cluster creation, the public IP for your cluster is also allowed by default in addition to the ranges you specify. If you specify *""* or no value for *`--api-server-authorized-ip-ranges`*, API server authorized IP ranges will be disabled. Note that if you're using PowerShell, use *`--api-server-authorized-ip-ranges=""`* (with equals sign) to avoid any parsing issues.
@@ -105,7 +105,7 @@ az aks create \
105
105
106
106
## Update a cluster's API server authorized IP ranges
107
107
108
-
To update the API server authorized IP ranges on an existing cluster, use [az aks update][az-aks-update] command and use the *`--api-server-authorized-ip-ranges`*, *`--load-balancer-outbound-ip-prefixes`*, *`--load-balancer-outbound-ips`*, or *`--load-balancer-outbound-ip-prefixes`* parameters.
108
+
To update the API server authorized IP ranges on an existing cluster, use [`az aks update`][az-aks-update] command and use the *`--api-server-authorized-ip-ranges`*, *`--load-balancer-outbound-ip-prefixes`*, *`--load-balancer-outbound-ips`*, or *`--load-balancer-outbound-ip-prefixes`* parameters.
109
109
110
110
The following example updates API server authorized IP ranges on the cluster named *myAKSCluster* in the resource group named *myResourceGroup*. The IP address range to authorize is *73.140.245.0/24*:
111
111
@@ -120,7 +120,7 @@ You can also use *0.0.0.0/32* when specifying the *`--api-server-authorized-ip-r
120
120
121
121
## Disable authorized IP ranges
122
122
123
-
To disable authorized IP ranges, use [az aks update][az-aks-update] and specify an empty range to disable API server authorized IP ranges. For example:
123
+
To disable authorized IP ranges, use [`az aks update`][az-aks-update] and specify an empty range to disable API server authorized IP ranges. For example:
124
124
125
125
```azurecli-interactive
126
126
az aks update \
@@ -137,7 +137,7 @@ az aks update \
137
137
138
138
## Find existing authorized IP ranges
139
139
140
-
To find IP ranges that have been authorized, use [az aks show][az-aks-show] and specify the cluster's name and resource group. For example:
140
+
To find IP ranges that have been authorized, use [`az aks show`][az-aks-show] and specify the cluster's name and resource group. For example:
Copy file name to clipboardExpand all lines: articles/aks/configure-azure-cni.md
+3-4Lines changed: 3 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -77,7 +77,7 @@ A minimum value for maximum pods per node is enforced to guarantee space for sys
77
77
> [!NOTE]
78
78
> The minimum value in the table above is strictly enforced by the AKS service. You can not set a maxPods value lower than the minimum shown as doing so can prevent the cluster from starting.
79
79
80
-
***Azure CLI**: Specify the `--max-pods` argument when you deploy a cluster with the [az aks create][az-aks-create] command. The maximum value is 250.
80
+
***Azure CLI**: Specify the `--max-pods` argument when you deploy a cluster with the [`az aks create`][az-aks-create] command. The maximum value is 250.
81
81
***Resource Manager template**: Specify the `maxPods` property in the [ManagedClusterAgentPoolProfile] object when you deploy a cluster with a Resource Manager template. The maximum value is 250.
82
82
***Azure portal**: Change the `Max pods per node` field in the node pool settings when creating a cluster or adding a new node pool.
83
83
@@ -123,7 +123,7 @@ $ az network vnet subnet list \
Use the [az aks create][az-aks-create] command with the `--network-plugin azure` argument to create a cluster with advanced networking. Update the `--vnet-subnet-id` value with the subnet ID collected in the previous step:
126
+
Use the [`az aks create`][az-aks-create] command with the `--network-plugin azure` argument to create a cluster with advanced networking. Update the `--vnet-subnet-id` value with the subnet ID collected in the previous step:
127
127
128
128
```azurecli-interactive
129
129
az aks create \
@@ -164,7 +164,6 @@ A drawback with the traditional CNI is the exhaustion of pod IP addresses as the
164
164
165
165
The [prerequisites][prerequisites] already listed for Azure CNI still apply, but there are a few additional limitations:
166
166
167
-
* Only linux node clusters and node pools are supported.
168
167
* AKS Engine and DIY clusters are not supported.
169
168
* Azure CLI version `2.37.0` or later.
170
169
@@ -248,7 +247,7 @@ az aks nodepool add --cluster-name $clusterName -g $resourceGroup -n newnodepoo
248
247
Azure CNI provides the capability to monitor IP subnet usage. To enable IP subnet usage monitoring, follow the steps below:
249
248
250
249
### Get the YAML file
251
-
1. Download or grep the file named container-azm-ms-agentconfig.yaml from [github][github].
250
+
1. Download or grep the file named container-azm-ms-agentconfig.yaml from [GitHub][github].
252
251
2. Find azure_subnet_ip_usage in integrations. Set `enabled` to `true`.
Copy file name to clipboardExpand all lines: articles/aks/egress-outboundtype.md
+79-26Lines changed: 79 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,34 +1,29 @@
1
1
---
2
-
title: Customize user-defined routes (UDR) in Azure Kubernetes Service (AKS)
3
-
description: Learn how to define a custom egress route in Azure Kubernetes Service (AKS)
2
+
title: Customize cluster egress with outbound types in Azure Kubernetes Service (AKS)
3
+
description: Learn how to configure outbound types in Azure Kubernetes Service (AKS)
4
4
services: container-service
5
5
ms.topic: article
6
6
ms.date: 06/29/2020
7
-
7
+
ms.author: pahealy
8
+
author: phealy
8
9
9
10
#Customer intent: As a cluster operator, I want to define my own egress paths with user-defined routes. Since I define this up front I do not want AKS provided load balancer configurations.
10
11
---
11
12
12
-
# Customize cluster egress with a User-Defined Route
13
+
# Customize cluster egress with outbound types in Azure Kubernetes Service (AKS)
13
14
14
15
Egress from an AKS cluster can be customized to fit specific scenarios. By default, AKS will provision a Standard SKU Load Balancer to be set up and used for egress. However, the default setup may not meet the requirements of all scenarios if public IPs are disallowed or additional hops are required for egress.
15
16
16
-
This article walks through how to customize a cluster's egress route to support custom network scenarios, such as those which disallows public IPs and requires the cluster to sit behind a network virtual appliance (NVA).
17
-
18
-
## Prerequisites
19
-
* Azure CLI version 2.0.81 or greater
20
-
* API version of `2020-01-01` or greater
21
-
17
+
This article covers the various types of outbound connectivity that are available in AKS Clusters.
22
18
23
19
## Limitations
24
-
* OutboundType can only be defined at cluster create time and can't be updated afterwards.
20
+
* Outbound type can only be defined at cluster create time and can't be updated afterwards.
21
+
* Reconfiguring outbound type is now supported in preview; see below.
25
22
* Setting `outboundType` requires AKS clusters with a `vm-set-type` of `VirtualMachineScaleSets` and `load-balancer-sku` of `Standard`.
26
-
* Setting `outboundType` to a value of `UDR` requires a user-defined route with valid outbound connectivity for the cluster.
27
-
* Setting `outboundType` to a value of `UDR` implies the ingress source IP routed to the load-balancer may **not match** the cluster's outgoing egress destination address.
28
23
29
24
## Overview of outbound types in AKS
30
25
31
-
An AKS cluster can be customized with a unique `outboundType` of type`loadBalancer`or `userDefinedRouting`.
26
+
An AKS cluster can be configured with three different categories of outbound type: load balancer, NAT gateway, or user-defined routing.
32
27
33
28
> [!IMPORTANT]
34
29
> Outbound type impacts only the egress traffic of your cluster. For more information, see [setting up ingress controllers](ingress-basic.md).
@@ -49,6 +44,19 @@ Below is a network topology deployed in AKS clusters by default, which use an `o
49
44
50
45

51
46
47
+
For more information, see [using a standard load balancer in AKS](load-balancer-standard.md) for more information.
48
+
49
+
### Outbound type of `managedNatGateway` or `userAssignedNatGateway`
50
+
51
+
If `managedNatGateway` or `userAssignedNatGateway` are selected for `outboundType`, AKS relies on [Azure Networking NAT gateway](/azure/virtual-network/nat-gateway/manage-nat-gateway) for cluster egress.
52
+
53
+
-`managedNatGateway` is used when using managed virtual networks, and tells AKS to provision a NAT gateway and attach it to the cluster subnet.
54
+
-`userAssignedNatGateway` is used when using bring-your-own virtual networking, and requires that a NAT gateway has been provisioned before cluster creation.
55
+
56
+
NAT gateway has significantly improved handling of SNAT ports when compared to Standard Load Balancer.
57
+
58
+
For more information, see [using NAT Gateway with AKS](nat-gateway.md) for more information.
59
+
52
60
### Outbound type of userDefinedRouting
53
61
54
62
> [!NOTE]
@@ -58,26 +66,71 @@ If `userDefinedRouting` is set, AKS won't automatically configure egress paths.
58
66
59
67
The AKS cluster must be deployed into an existing virtual network with a subnet that has been previously configured because when not using standard load balancer (SLB) architecture, you must establish explicit egress. As such, this architecture requires explicitly sending egress traffic to an appliance like a firewall, gateway, proxy or to allow the Network Address Translation (NAT) to be done by a public IP assigned to the standard load balancer or appliance.
60
68
61
-
#### Load balancer creation with userDefinedRouting
69
+
For more information, see [configuring cluster egress via user-defined routing](egress-udr.md) for more information.
62
70
63
-
AKS clusters with an outbound type of UDR receive a standard load balancer (SLB) only when the first Kubernetes service of type 'loadBalancer' is deployed. The load balancer is configured with a public IP address for *inbound* requests and a backend pool for *inbound* requests. Inbound rules are configured by the Azure cloud provider, but **no outbound public IP address or outbound rules** are configured as a result of having an outbound type of UDR. Your UDR will still be the only source for egress traffic.
71
+
## Updating `outboundType` after cluster creation (PREVIEW)
64
72
65
-
Azure load balancers [don't incur a charge until a rule is placed](https://azure.microsoft.com/pricing/details/load-balancer/).
73
+
Changing the outbound type after cluster creation will deploy or remove resources as required to put the cluster into the new egress configuration.
66
74
67
-
## Deploy a cluster with outbound type of UDR and Azure Firewall
75
+
Migration is only supported between `loadBalancer`, `managedNATGateway` (if using a managed virtual network), and `userDefinedNATGateway` (if using a custom virtual network).
68
76
69
-
To illustrate the application of a cluster with outbound type using a user-defined route, a cluster can be configured on a virtual network with an Azure Firewall on its own subnet. See this example on the [restrict egress traffic with Azure firewall example](limit-egress-traffic.md#restrict-egress-traffic-using-azure-firewall).
77
+
> [!WARNING]
78
+
> Changing the outbound type on a cluster is disruptive to network connectivity and will result in a change of the cluster's egress IP address. If any firewall rules have been configured to restrict traffic from the cluster, they will need to be updated to match the new egress IP address.
70
79
71
-
> [!IMPORTANT]
72
-
> Outbound type of UDR requires there is a route for 0.0.0.0/0 and next hop destination of NVA (Network Virtual Appliance) in the route table.
73
-
> The route table already has a default 0.0.0.0/0 to Internet, without a Public IP to SNAT just adding this route will not provide you egress. AKS will validate that you don't create a 0.0.0.0/0 route pointing to the Internet but instead to NVA or gateway, etc.
74
-
> When using an outbound type of UDR, a load balancer public IP address for **inbound requests** is not created unless a service of type *loadbalancer* is configured. A public IP address for **outbound requests** is never created by AKS if an outbound type of UDR is set.
80
+
[!INCLUDE [preview features callout](includes/preview/preview-callout.md)]
75
81
76
-
## Next steps
82
+
### Install the aks-preview Azure CLI extension
83
+
84
+
`aks-preview` version 0.5.113 is required.
85
+
86
+
To install the `aks-preview` extension, run the following command:
87
+
88
+
```azurecli
89
+
az extension add --name aks-preview
90
+
```
77
91
78
-
See [Azure networking UDR overview](../virtual-network/virtual-networks-udr-overview.md).
92
+
Run the following command to update to the latest version of the extension released:
93
+
94
+
```azurecli
95
+
az extension update --name aks-preview
96
+
```
97
+
98
+
### Register the 'AKS-OutBoundTypeMigrationPreview' feature flag
99
+
100
+
Register the `AKS-OutBoundTypeMigrationPreview` feature flag by using the [az feature register][az-feature-register] command, as shown in the following example:
101
+
102
+
```azurecli-interactive
103
+
az feature register --namespace "Microsoft.ContainerService" --name "AKS-OutBoundTypeMigrationPreview"
104
+
```
105
+
106
+
It takes a few minutes for the status to show *Registered*. Verify the registration status by using the [az feature show][az-feature-show] command:
107
+
108
+
```azurecli-interactive
109
+
az feature show --namespace "Microsoft.ContainerService" --name "AKS-OutBoundTypeMigrationPreview"
110
+
```
111
+
112
+
When the status reflects *Registered*, refresh the registration of the *Microsoft.ContainerService* resource provider by using the [az provider register][az-provider-register] command:
113
+
114
+
```azurecli-interactive
115
+
az provider register --namespace Microsoft.ContainerService
116
+
```
117
+
118
+
### Update a cluster to use a new outbound type
119
+
120
+
Run the following command to change a cluster's outbound configuration:
121
+
122
+
```azurecli-interactive
123
+
az aks update -g <resourceGroup> -n <clusterName> --outbound-type <loadBalancer|managedNATGateway|userAssignedNATGateway>
124
+
```
125
+
126
+
## Next steps
79
127
80
-
See [how to create, change, or delete a route table](../virtual-network/manage-route-table.md).
128
+
-[Configure standard load balancing in an AKS cluster](load-balancer-standard.md)
129
+
-[Configure NAT gateway in an AKS cluster](nat-gateway.md)
130
+
-[Configure user-defined routing in an AKS cluster](egress-udr.md)
0 commit comments