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/availability-zones.md
+4-6Lines changed: 4 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ You need the Azure CLI version 2.0.66 or later installed and configured. Run `a
30
30
31
31
### Install aks-preview CLI extension
32
32
33
-
To create AKS clusters that use availability zones, you need the *aks-preview* CLI extension version 0.4.1 or higher. Install the *aks-preview* Azure CLI extension using the [az extension add][az-extension-add] command, then check for any available updates using the [az extension update][az-extension-update] command::
33
+
To create AKS clusters that use availability zones, you need the *aks-preview* CLI extension version 0.4.1 or higher. Install the *aks-preview* Azure CLI extension using the [az extension add][az-extension-add] command, then check for any available updates using the [az extension update][az-extension-update] command:
34
34
35
35
```azurecli-interactive
36
36
# Install the aks-preview extension
@@ -40,23 +40,21 @@ az extension add --name aks-preview
40
40
az extension update --name aks-preview
41
41
```
42
42
43
-
### Register feature flags for your subscription
43
+
### Register the AvailabilityZonePreview feature flag for your subscription
44
44
45
-
To create an AKS cluster that supports availability zones, first enable some feature flags on your subscription. The *standard* SKU of the Azure load balancer is also required to provide resiliency for the network components to route traffic into your cluster. Register the *AvailabilityZonePreview*and *AKSAzureStandardLoadBalancer*feature flags using the [az feature register][az-feature-register] command as shown in the following example:
45
+
To create an AKS cluster that availability zones, first enable the *AvailabilityZonePreview*feature flag on your subscription. Register the *AvailabilityZonePreview* feature flag using the [az feature register][az-feature-register] command as shown in the following example:
46
46
47
47
> [!CAUTION]
48
48
> When you register a feature on a subscription, you can't currently un-register that feature. After you enable some preview features, defaults may be used for all AKS clusters then created in the subscription. Don't enable preview features on production subscriptions. Use a separate subscription to test preview features and gather feedback.
49
49
50
50
```azurecli-interactive
51
51
az feature register --name AvailabilityZonePreview --namespace Microsoft.ContainerService
52
-
az feature register --name AKSAzureStandardLoadBalancer --namespace Microsoft.ContainerService
53
52
```
54
53
55
54
It takes a few minutes for the status to show *Registered*. You can check on the registration status using the [az feature list][az-feature-list] command:
56
55
57
56
```azurecli-interactive
58
57
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AvailabilityZonePreview')].{Name:name,State:properties.state}"
59
-
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AKSAzureStandardLoadBalancer')].{Name:name,State:properties.state}"
60
58
```
61
59
62
60
When ready, refresh the registration of the *Microsoft.ContainerService* resource provider using the [az provider register][az-provider-register] command:
@@ -84,7 +82,7 @@ The following limitations apply when you create an AKS cluster using availabilit
84
82
* Clusters with availability zones enabled require use of Azure Standard Load Balancers for distribution across zones.
85
83
* You must use Kubernetes version 1.13.5 or greater in order to deploy Standard Load Balancers.
86
84
87
-
AKS clusters that use availability zones must use the Azure load balancer *standard* SKU. The default *basic* SKU of the Azure load balancer doesn't support distribution across availability zones. For more information and the limitations of the standard load balancer, see [Azure load balancer standard SKU preview limitations][standard-lb-limitations].
85
+
AKS clusters that use availability zones must use the Azure load balancer *standard* SKU. The default *basic* SKU of the Azure load balancer doesn't support distribution across availability zones. For more information and the limitations of the standard load balancer, see [Azure load balancer standard SKU limitations][standard-lb-limitations].
Copy file name to clipboardExpand all lines: articles/aks/load-balancer-standard.md
+83-49Lines changed: 83 additions & 49 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,18 @@
1
1
---
2
-
title: Preview - Use a Standard SKU load balancer in Azure Kubernetes Service (AKS)
2
+
title: Use a Standard SKU load balancer in Azure Kubernetes Service (AKS)
3
3
description: Learn how to use a load balancer with a Standard SKU to expose your services with Azure Kubernetes Service (AKS).
4
4
services: container-service
5
5
author: zr-msft
6
6
7
7
ms.service: container-service
8
8
ms.topic: article
9
-
ms.date: 06/25/2019
9
+
ms.date: 09/05/2019
10
10
ms.author: zarhoads
11
11
12
12
#Customer intent: As a cluster operator or developer, I want to learn how to create a service in AKS that uses an Azure Load Balancer with a Standard SKU.
13
13
---
14
14
15
-
# Preview - Use a Standard SKU load balancer in Azure Kubernetes Service (AKS)
15
+
# Use a Standard SKU load balancer in Azure Kubernetes Service (AKS)
16
16
17
17
To provide access to your applications in Azure Kubernetes Service (AKS), you can create and use an Azure Load Balancer. A load balancer running on AKS can be used as an internal or an external load balancer. An internal load balancer makes a Kubernetes service accessible only to applications running in the same virtual network as the AKS cluster. An external load balancer receives one or more public IPs for ingress and makes a Kubernetes service accessible externally using the public IPs.
18
18
@@ -22,8 +22,6 @@ This article shows you how to create and use an Azure Load Balancer with the *St
22
22
23
23
This article assumes a basic understanding of Kubernetes and Azure Load Balancer concepts. For more information, see [Kubernetes core concepts for Azure Kubernetes Service (AKS)][kubernetes-concepts] and [What is Azure Load Balancer?][azure-lb].
24
24
25
-
This feature is currently in preview.
26
-
27
25
If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin.
@@ -34,17 +32,11 @@ If you choose to install and use the CLI locally, this article requires that you
34
32
35
33
The AKS cluster service principal needs permission to manage network resources if you use an existing subnet or resource group. In general, assign the *Network contributor* role to your service principal on the delegated resources. For more information on permissions, see [Delegate AKS access to other Azure resources][aks-sp].
36
34
37
-
You must create an AKS cluster that sets the SKU for the load balancer to *Standard* instead of the default *Basic*. Creating an AKS cluster is covered in a later step, but you first need to enable a few preview features.
38
-
39
-
> [!IMPORTANT]
40
-
> AKS preview features are self-service opt-in. Previews are provided "as-is" and "as available" and are excluded from the service level agreements and limited warranty. AKS Previews are partially covered by customer support on best effort basis. As such, these features are not meant for production use. For additional infromation, please see the following support articles:
41
-
>
42
-
> *[AKS Support Policies][aks-support-policies]
43
-
> *[Azure Support FAQ][aks-faq]
35
+
You must create an AKS cluster that sets the SKU for the load balancer to *Standard* instead of the default *Basic*.
44
36
45
37
### Install aks-preview CLI extension
46
38
47
-
To use the Azure load balancer standard SKU, you need the *aks-preview* CLI extension version 0.4.1 or higher. Install the *aks-preview* Azure CLI extension using the [az extension add][az-extension-add] command, then check for any available updates using the [az extension update][az-extension-update] command::
39
+
To use the Azure load balancer standard SKU, you need the *aks-preview* CLI extension version 0.4.12 or higher. Install the *aks-preview* Azure CLI extension using the [az extension add][az-extension-add] command, then check for any available updates using the [az extension update][az-extension-update] command:
48
40
49
41
```azurecli-interactive
50
42
# Install the aks-preview extension
@@ -54,45 +46,17 @@ az extension add --name aks-preview
To create an AKS cluster that can use a load balancer with the *Standard* SKU, you must enable the *AKSAzureStandardLoadBalancer* feature flag on your subscription.
60
-
61
-
> [!CAUTION]
62
-
> When you register a feature on a subscription, you can't currently un-register that feature. After you enable some preview features, defaults may be used for all AKS clusters then created in the subscription. Don't enable preview features on production subscriptions. Use a separate subscription to test preview features and gather feedback.
63
-
64
-
Register the *AKSAzureStandardLoadBalancer* feature flag using the [az feature register][az-feature-register] command as shown in the following example:
65
-
66
-
```azurecli-interactive
67
-
az feature register --namespace "Microsoft.ContainerService" --name "AKSAzureStandardLoadBalancer"
68
-
```
69
-
70
-
> [!NOTE]
71
-
> Any AKS cluster you create after you've successfully registered the *AKSAzureStandardLoadBalancer* feature flag use this preview cluster experience. To continue to create regular, fully-supported clusters, don't enable preview features on production subscriptions. Use a separate test or development Azure subscription for testing preview features.
72
-
73
-
It takes a few minutes for the status to show *Registered*. You can check on the registration status using the [az feature list][az-feature-list] command:
74
-
75
-
```azurecli-interactive
76
-
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AKSAzureStandardLoadBalancer')].{Name:name,State:properties.state}"
77
-
```
78
-
79
-
When ready, refresh the registration of the *Microsoft.ContainerService* resource provider using the [az provider register][az-provider-register] command:
80
-
81
-
```azurecli-interactive
82
-
az provider register --namespace Microsoft.ContainerService
83
-
```
84
-
85
49
### Limitations
86
50
87
51
The following limitations apply when you create and manage AKS clusters that support a load balancer with the *Standard* SKU:
88
52
89
-
*When using the *Standard* SKU for a load balancer, you must allow public addresses and avoid creating any Azure Policy that bans IP creation. The AKS cluster automatically creates a *Standard* SKU public IP in same resource group created for the AKS cluster, which usually named with *MC_* at the beginning. AKS assigns the public IP to the *Standard* SKU load balancer. The public IP is required for allowing egress traffic from the AKS cluster. This public IP is also required to maintain connectivity between the control plane and agent nodes as well as to maintain compatibility with previous versions of AKS.
90
-
* When using the *Standard* SKU for a load balancer, you must use Kubernetes version 1.13.5 or greater.
91
-
92
-
While this feature is in preview, the following additional limitations apply:
93
-
94
-
*When using the *Standard* SKU for a load balancer in AKS, you cannot set your own public IP address for egress for the load balancer. You must use the IP address AKS assigns to your load balancer.
95
-
*This cannot be used with the [Node Public IP feature](use-multiple-node-pools.md#assign-a-public-ip-per-node-in-a-node-pool).
53
+
*At least one public IP or IP prefix is required for allowing egress traffic from the AKS cluster. The public IP or IP prefix is also required to maintain connectivity between the control plane and agent nodes as well as to maintain compatibility with previous versions of AKS. You have the following options for specifying public IPs or IP prefixes with a *Standard* SKU load balancer:
54
+
* Provide your own public IPs.
55
+
* Provide your own public IP prefixes.
56
+
* Specify a number up to 100 to allow the AKS cluster to create that many *Standard* SKU public IPs in the same resource group created as the AKS cluster, which is usually named with *MC_* at the beginning. AKS assigns the public IP to the *Standard* SKU load balancer. By default, one public IP will automatically be created in the same resource group as the AKS cluster, if no public IP, public IP prefix, or number of IPs is specified. You also must allow public addresses and avoid creating any Azure Policy that bans IP creation.
57
+
* When using the *Standard* SKU for a load balancer, you must use Kubernetes version 1.13 or greater.
58
+
*Defining the load balancer SKU can only be done when you create an AKS cluster. You cannot change the load balancer SKU after an AKS cluster has been created.
59
+
*You can only use one load balancer SKU in a single cluster.
96
60
97
61
## Create a resource group
98
62
@@ -121,10 +85,12 @@ The following example output shows the resource group created successfully:
121
85
```
122
86
123
87
## Create AKS cluster
124
-
In order to run an AKS cluster that supports a load balancer with the *Standard* SKU, your cluster needs to set the *load-balancer-sku* parameter to *standard*. This parameter creates a load balancer with the *Standard* SKU when your cluster is created. When you run a *LoadBalancer* service on your cluster, the configuration of the *Standard*SK load balancer is updated with the service's configuration. Use the [az aks create][az-aks-create] command to create an AKS cluster named *myAKSCluster*.
88
+
In order to run an AKS cluster that supports a load balancer with the *Standard* SKU, your cluster needs to set the *load-balancer-sku* parameter to *standard*. This parameter creates a load balancer with the *Standard* SKU when your cluster is created. When you run a *LoadBalancer* service on your cluster, the configuration of the *Standard*SKU load balancer is updated with the service's configuration. Use the [az aks create][az-aks-create] command to create an AKS cluster named *myAKSCluster*.
125
89
126
90
> [!NOTE]
127
91
> The *load-balancer-sku* property can only be used when your cluster is created. You cannot change the load balancer SKU after an AKS cluster has been created. Also, you can only use one type of load balancer SKU in a single cluster.
92
+
>
93
+
> If you want to use your own public IPs, use the *load-balancer-outbound-ips*, or *load-balancer-outbound-ip-prefixes* parameters. Both of these parameters can also be used when [updating the cluster](#optional---provide-your-own-public-ips-or-prefixes-for-egress).
128
94
129
95
```azurecli-interactive
130
96
az aks create \
@@ -305,6 +271,71 @@ Navigate to the public IP in a browser and verify you see the sample application
305
271
> [!NOTE]
306
272
> You can also configure the load balancer to be internal and not expose a public IP. To configure the load balancer as internal, add `service.beta.kubernetes.io/azure-load-balancer-internal: "true"` as an annotation to the *LoadBalancer* service. You can see an example yaml manifest as well as more details about an internal load balancer [here][internal-lb-yaml].
307
273
274
+
## Optional - Scale the number of managed public IPs
275
+
276
+
When using a *Standard* SKU load balancer with managed outbound public IPs, which are created by default, you can scale the number of managed outbound public IPs using the *load-balancer-managed-ip-count* parameter.
277
+
278
+
```azurecli-interactive
279
+
az aks update \
280
+
--resource-group myResourceGroup \
281
+
--name myAKSCluster \
282
+
--load-balancer-managed-outbound-ip-count 2
283
+
```
284
+
285
+
The above example sets the number of managed outbound public IPs to *2* for the *myAKSCluster* cluster in *myResourceGroup*. You can also use the *load-balancer-managed-ip-count* parameter to set the initial number of managed outbound public IPs when creating your cluster. The default number of managed outbound public IPs is 1.
286
+
287
+
## Optional - Provide your own public IPs or prefixes for egress
288
+
289
+
When using a *Standard* SKU load balancer, the AKS cluster automatically creates a public IP in same resource group created for the AKS cluster and assigns the public IP to the *Standard* SKU load balancer. Alternatively, you can assign your own public IP.
290
+
291
+
> [!IMPORTANT]
292
+
> You must use *Standard* SKU public IPs for egress with your *Standard* SKU your load balancer. You can verify the SKU of your public IPs using the [az network public-ip show][az-network-public-ip-show] command:
293
+
>
294
+
> ```azurecli-interactive
295
+
> az network public-ip show --resource-group myResourceGroup --name myPublicIP --query sku.name -o tsv
296
+
> ```
297
+
298
+
Use the [az network public-ip show][az-network-public-ip-show] command to list the IDs of your public IPs.
299
+
300
+
```azurecli-interactive
301
+
az network public-ip show --resource-group myResourceGroup --name myPublicIP --query id -o tsv
302
+
```
303
+
304
+
The above command shows the ID for the *myPublicIP* public IP in the *myResourceGroup* resource group.
305
+
306
+
Use the *az aks update* command with the *load-balancer-outbound-ips* parameter to update your cluster with your public IPs.
307
+
308
+
The following example uses the *load-balancer-outbound-ips* parameter with the IDs from the previous command.
You can also use public IP prefixes for egress with your *Standard* SKU load balancer. The following example uses the [az network public-ip prefix show][az-network-public-ip-prefix-show] command to list the IDs of your public IP prefixes:
318
+
319
+
```azurecli-interactive
320
+
az network public-ip prefix show --resource-group myResourceGroup --name myPublicIPPrefix --query id -o tsv
321
+
```
322
+
323
+
The above command shows the ID for the *myPublicIPPrefix* public IP prefix in the *myResourceGroup* resource group.
324
+
325
+
Use the *az aks update* command with the *load-balancer-outbound-ip-prefixes* parameter with the IDs from the previous command.
326
+
327
+
The following example uses the *load-balancer-outbound-ip-prefixes* parameter with the IDs from the previous command.
0 commit comments