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/acs-aks-migration.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ ACS and AKS differ in some key areas that affect migration. Before any migration
24
24
* Unmanaged disks must be converted before you can attach them to AKS nodes.
25
25
* Custom `StorageClass` objects for Azure disks must be changed from `unmanaged` to `managed`.
26
26
* Any `PersistentVolumes` should use `kind: Managed`.
27
-
* AKS supports [multiple node pools](https://docs.microsoft.com/azure/aks/use-multiple-node-pools) (currently in preview).
27
+
* AKS supports [multiple node pools](https://docs.microsoft.com/azure/aks/use-multiple-node-pools).
28
28
* Nodes based on Windows Server are currently in [preview in AKS](https://azure.microsoft.com/blog/kubernetes-on-azure/).
29
29
* AKS supports a limited set of [regions](https://docs.microsoft.com/azure/aks/quotas-skus-regions).
30
30
* AKS is a managed service with a hosted Kubernetes control plane. You might need to modify your applications if you've previously modified the configuration of your ACS masters.
Copy file name to clipboardExpand all lines: articles/aks/availability-zones.md
+7-48Lines changed: 7 additions & 48 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,58 +10,17 @@ ms.date: 06/24/2019
10
10
ms.author: mlearned
11
11
---
12
12
13
-
# Preview - Create an Azure Kubernetes Service (AKS) cluster that uses Availability Zones
13
+
# Create an Azure Kubernetes Service (AKS) cluster that uses Availability Zones
14
14
15
15
An Azure Kubernetes Service (AKS) cluster distributes resources such as the nodes and storage across logical sections of the underlying Azure compute infrastructure. This deployment model makes sure that the nodes run across separate update and fault domains in a single Azure datacenter. AKS clusters deployed with this default behavior provide a high level of availability to protect against a hardware failure or planned maintenance event.
16
16
17
17
To provide a higher level of availability to your applications, AKS clusters can be distributed across availability zones. These zones are physically separate datacenters within a given region. When the cluster components are distributed across multiple zones, your AKS cluster is able to tolerate a failure in one of those zones. Your applications and management operations continue to be available even if one entire datacenter has a problem.
18
18
19
-
This article shows you how to create an AKS cluster and distribute the node components across availability zones. This feature is currently in preview.
20
-
21
-
> [!IMPORTANT]
22
-
> 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:
23
-
>
24
-
> *[AKS Support Policies][aks-support-policies]
25
-
> *[Azure Support FAQ][aks-faq]
19
+
This article shows you how to create an AKS cluster and distribute the node components across availability zones.
26
20
27
21
## Before you begin
28
22
29
-
You need the Azure CLI version 2.0.66 or later installed and configured. Run `az --version` to find the version. If you need to install or upgrade, see [Install Azure CLI][install-azure-cli].
30
-
31
-
### Install aks-preview CLI extension
32
-
33
-
To create AKS clusters that use availability zones, 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:
34
-
35
-
```azurecli-interactive
36
-
# Install the aks-preview extension
37
-
az extension add --name aks-preview
38
-
39
-
# Update the extension to make sure you have the latest version installed
40
-
az extension update --name aks-preview
41
-
```
42
-
43
-
### Register the AvailabilityZonePreview feature flag for your subscription
44
-
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
-
47
-
> [!CAUTION]
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
-
50
-
```azurecli-interactive
51
-
az feature register --name AvailabilityZonePreview --namespace Microsoft.ContainerService
52
-
```
53
-
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:
55
-
56
-
```azurecli-interactive
57
-
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AvailabilityZonePreview')].{Name:name,State:properties.state}"
58
-
```
59
-
60
-
When ready, refresh the registration of the *Microsoft.ContainerService* resource provider using the [az provider register][az-provider-register] command:
61
-
62
-
```azurecli-interactive
63
-
az provider register --namespace Microsoft.ContainerService
64
-
```
23
+
You need the Azure CLI version 2.0.76 or later installed and configured. Run `az --version` to find the version. If you need to install or upgrade, see [Install Azure CLI][install-azure-cli].
65
24
66
25
## Limitations and region availability
67
26
@@ -87,7 +46,7 @@ The following limitations apply when you create an AKS cluster using availabilit
87
46
* Clusters with availability zones enabled require use of Azure Standard Load Balancers for distribution across zones.
88
47
* You must use Kubernetes version 1.13.5 or greater in order to deploy Standard Load Balancers.
89
48
90
-
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].
49
+
AKS clusters that use availability zones must use the Azure load balancer *standard* SKU, which is the default value for the load balancer type. This load balancer type can only be defined at cluster create time. For more information and the limitations of the standard load balancer, see [Azure load balancer standard SKU limitations][standard-lb-limitations].
91
50
92
51
### Azure disks limitations
93
52
@@ -109,9 +68,9 @@ In a zone outage, the nodes can be rebalanced manually or using the cluster au
109
68
110
69
## Create an AKS cluster across availability zones
111
70
112
-
When you create a cluster using the [az aks create][az-aks-create] command, the `--node-zones` parameter defines which zones agent nodes are deployed into. The AKS control plane components for your cluster are also spread across zones in the highest available configuration when you create a cluster specifying the `--node-zones` parameter.
71
+
When you create a cluster using the [az aks create][az-aks-create] command, the `--zones` parameter defines which zones agent nodes are deployed into. The AKS control plane components for your cluster are also spread across zones in the highest available configuration when you create a cluster specifying the `--zones` parameter.
113
72
114
-
If you don't define any zones for the default agent pool when you create an AKS cluster, the AKS control plane components for your cluster will not use availability zones. You can add additional node pools (currently in preview in AKS) using the [az aks nodepool add][az-aks-nodepool-add] command and specify `--node-zones` for those new agent nodes, however the control plane components remain without availability zone awareness. You can't change the zone awareness for a node pool or the AKS control plane components once they're deployed.
73
+
If you don't define any zones for the default agent pool when you create an AKS cluster, the AKS control plane components for your cluster will not use availability zones. You can add additional node pools using the [az aks nodepool add][az-aks-nodepool-add] command and specify `--zones` for those new agent nodes, however the control plane components remain without availability zone awareness. You can't change the zone awareness for a node pool or the AKS control plane components once they're deployed.
115
74
116
75
The following example creates an AKS cluster named *myAKSCluster* in the resource group named *myResourceGroup*. A total of *3* nodes are created - one agent in zone *1*, one in *2*, and then one in *3*. The AKS control plane components are also distributed across zones in the highest available configuration since they're defined as part of the cluster create process.
Copy file name to clipboardExpand all lines: articles/aks/cluster-autoscaler.md
+17-35Lines changed: 17 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,33 +10,15 @@ ms.date: 07/18/2019
10
10
ms.author: mlearned
11
11
---
12
12
13
-
# Preview - Automatically scale a cluster to meet application demands on Azure Kubernetes Service (AKS)
13
+
# Automatically scale a cluster to meet application demands on Azure Kubernetes Service (AKS)
14
14
15
15
To keep up with application demands in Azure Kubernetes Service (AKS), you may need to adjust the number of nodes that run your workloads. The cluster autoscaler component can watch for pods in your cluster that can't be scheduled because of resource constraints. When issues are detected, the number of nodes in a node pool is increased to meet the application demand. Nodes are also regularly checked for a lack of running pods, with the number of nodes then decreased as needed. This ability to automatically scale up or down the number of nodes in your AKS cluster lets you run an efficient, cost-effective cluster.
16
16
17
-
This article shows you how to enable and manage the cluster autoscaler in an AKS cluster. The cluster autoscaler should only be tested in preview on AKS clusters.
18
-
19
-
> [!IMPORTANT]
20
-
> 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:
21
-
>
22
-
> *[AKS Support Policies][aks-support-policies]
23
-
> *[Azure Support FAQ][aks-faq]
17
+
This article shows you how to enable and manage the cluster autoscaler in an AKS cluster.
24
18
25
19
## Before you begin
26
20
27
-
This article requires that you are running the Azure CLI version 2.0.65 or later. Run `az --version` to find the version. If you need to install or upgrade, see [Install Azure CLI][azure-cli-install].
28
-
29
-
### Install aks-preview CLI extension
30
-
31
-
To use the cluster autoscaler, 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:
32
-
33
-
```azurecli-interactive
34
-
# Install the aks-preview extension
35
-
az extension add --name aks-preview
36
-
37
-
# Update the extension to make sure you have the latest version installed
38
-
az extension update --name aks-preview
39
-
```
21
+
This article requires that you are running the Azure CLI version 2.0.76 or later. Run `az --version` to find the version. If you need to install or upgrade, see [Install Azure CLI][azure-cli-install].
40
22
41
23
## Limitations
42
24
@@ -48,7 +30,7 @@ The following limitations apply when you create and manage AKS clusters that use
48
30
49
31
To adjust to changing application demands, such as between the workday and evening or on a weekend, clusters often need a way to automatically scale. AKS clusters can scale in one of two ways:
50
32
51
-
* The **cluster autoscaler** watches for pods that can't be scheduled on nodes because of resource constraints. The cluster then automatically increases the number of nodes.
33
+
* The **cluster autoscaler** watches for pods that can't be scheduled on nodes because of resource constraints. The cluster then automatically increases the number of nodes.
52
34
* The **horizontal pod autoscaler** uses the Metrics Server in a Kubernetes cluster to monitor the resource demand of pods. If an application needs more resources, the number of pods is automatically increased to meet the demand.
53
35
54
36

@@ -86,21 +68,19 @@ az aks create \
86
68
--resource-group myResourceGroup \
87
69
--name myAKSCluster \
88
70
--node-count 1 \
89
-
--enable-vmss \
71
+
--vm-set-type VirtualMachineScaleSets \
72
+
--load-balancer-sku standard \
90
73
--enable-cluster-autoscaler \
91
74
--min-count 1 \
92
75
--max-count 3
93
76
```
94
77
95
-
> [!NOTE]
96
-
> If you specify a *--kubernetes-version* when running `az aks create`, that version must meet or exceed the minimum version number required as outlined in the preceding [Before you begin](#before-you-begin) section.
97
-
98
78
It takes a few minutes to create the cluster and configure the cluster autoscaler settings.
99
79
100
80
## Change the cluster autoscaler settings
101
81
102
82
> [!IMPORTANT]
103
-
> If you have the *multiple agent pools* feature enabled on your subscription, skip to the [autoscale with multiple agent pools section](#use-the-cluster-autoscaler-with-multiple-node-pools-enabled). Clusters with multiple agent pools enabled require use of the `az aks nodepool` command set to change node pool specific properties instead of `az aks`. The below instructions assume you have not enabled multiple node pools. To check if you have it enabled, run `az feature list -o table` and look for `Microsoft.ContainerService/multiagentpoolpreview`.
83
+
> If you have multiple node pools in your AKS cluster, skip to the [autoscale with multiple agent pools section](#use-the-cluster-autoscaler-with-multiple-node-pools-enabled). Clusters with multiple agent pools require use of the `az aks nodepool` command set to change node pool specific properties instead of `az aks`.
104
84
105
85
In the previous step to create an AKS cluster or update an existing node pool, the cluster autoscaler minimum node count was set to *1*, and the maximum node count was set to *3*. As your application demands change, you may need to adjust the cluster autoscaler node count.
106
86
@@ -118,7 +98,7 @@ az aks update \
118
98
The above example updates cluster autoscaler on the single node pool in *myAKSCluster* to a minimum of *1* and maximum of *5* nodes.
119
99
120
100
> [!NOTE]
121
-
> During preview, you can't set a higher minimum node count than is currently set for the node pool. For example, if you currently have min count set to *1*, you can't update the min count to *3*.
101
+
> You can't set a higher minimum node count than is currently set for the node pool. For example, if you currently have min count set to *1*, you can't update the min count to *3*.
122
102
123
103
Monitor the performance of your applications and services, and adjust the cluster autoscaler node counts to match the required performance.
124
104
@@ -137,20 +117,20 @@ You can manually scale your cluster after disabling the cluster autoscaler by us
137
117
138
118
## Re-enable a disabled cluster autoscaler
139
119
140
-
If you wish to re-enable the cluster autoscaler on an existing cluster, you can re-enable it using the [az aks update][az-aks-update] command, specifying the *--enable-cluster-autoscaler* parameter.
120
+
If you wish to re-enable the cluster autoscaler on an existing cluster, you can re-enable it using the [az aks update][az-aks-update] command, specifying the *--enable-cluster-autoscaler*, *--min-count*, and *--max-count* parameters.
141
121
142
122
## Use the cluster autoscaler with multiple node pools enabled
143
123
144
-
The cluster autoscaler can be used together with the [multiple node pools preview feature](use-multiple-node-pools.md) enabled. Follow that document to learn how to enable multiple node pools and add additional node pools to an existing cluster. When using both features together, you enable the cluster autoscaler on each individual node pool in the cluster and can pass unique autoscaling rules to each.
124
+
The cluster autoscaler can be used together with the [multiple node pools](use-multiple-node-pools.md) enabled. Follow that document to learn how to enable multiple node pools and add additional node pools to an existing cluster. When using both features together, you enable the cluster autoscaler on each individual node pool in the cluster and can pass unique autoscaling rules to each.
145
125
146
126
The below command assumes you followed the [initial instructions](#create-an-aks-cluster-and-enable-the-cluster-autoscaler) earlier in this document and you want to update an existing node pool's max-count from *3* to *5*. Use the [az aks nodepool update][az-aks-nodepool-update] command to update an existing node pool's settings.
147
127
148
128
```azurecli-interactive
149
129
az aks nodepool update \
150
130
--resource-group myResourceGroup \
151
-
--cluster-name multipoolcluster \
152
-
--name mynodepool \
153
-
--enable-cluster-autoscaler \
131
+
--cluster-name myAKSCluster \
132
+
--name nodepool1 \
133
+
--update-cluster-autoscaler \
154
134
--min-count 1 \
155
135
--max-count 5
156
136
```
@@ -160,11 +140,13 @@ The cluster autoscaler can be disabled with [az aks nodepool update][az-aks-node
160
140
```azurecli-interactive
161
141
az aks nodepool update \
162
142
--resource-group myResourceGroup \
163
-
--cluster-name multipoolcluster \
164
-
--name mynodepool \
143
+
--cluster-name myAKSCluster \
144
+
--name nodepool1 \
165
145
--disable-cluster-autoscaler
166
146
```
167
147
148
+
If you wish to re-enable the cluster autoscaler on an existing cluster, you can re-enable it using the [az aks nodepool update][az-aks-nodepool-update] command, specifying the *--enable-cluster-autoscaler*, *--min-count*, and *--max-count* parameters.
149
+
168
150
## Next steps
169
151
170
152
This article showed you how to automatically scale the number of AKS nodes. You can also use the horizontal pod autoscaler to automatically adjust the number of pods that run your application. For steps on using the horizontal pod autoscaler, see [Scale applications in AKS][aks-scale-apps].
0 commit comments