Manage Node-Group on Azure AKS
See Create and manage multiple node pools for a cluster in Azure Kubernetes Service (AKS) for more information.
Following is an example to replace cluster nodes with a new storage size.
Storage Expansion
AKS does not support additional disk in its template. It is possible for manual disk attachment. Then raw device needs to be mounted either by manually mounting in VM or during launch with CustomScriptExtension that is not supported in AKS.
In Longhorn, set
replica-replenishment-wait-interval
to0
.Add a new node-pool. Later Longhorn components will be automatically deployed on the nodes in this pool.
AKS_NODEPOOL_NAME_NEW=<new-nodepool-name>
AKS_RESOURCE_GROUP=<aks-resource-group>
AKS_CLUSTER_NAME=<aks-cluster-name>
AKS_DISK_SIZE_NEW=<new-disk-size-in-gb>
AKS_NODE_NUM=<number-of-nodes>
AKS_K8S_VERSION=<kubernetes-version>
az aks nodepool add \
--resource-group ${AKS_RESOURCE_GROUP} \
--cluster-name ${AKS_CLUSTER_NAME} \
--name ${AKS_NODEPOOL_NAME_NEW} \
--node-count ${AKS_NODE_NUM} \
--node-osdisk-size ${AKS_DISK_SIZE_NEW} \
--kubernetes-version ${AKS_K8S_VERSION} \
--mode System
Using Longhorn UI to disable the disk scheduling and request eviction for nodes in the old node-pool.
Cordon and drain Kubernetes nodes in the old node-pool.
AKS_NODEPOOL_NAME_OLD=<old-nodepool-name>
for n in `kubectl get nodes | grep ${AKS_NODEPOOL_NAME_OLD}- | awk '{print $1}'`; do
kubectl cordon $n && \
kubectl drain $n --ignore-daemonsets --delete-emptydir-data
done
Delete old node-pool.
az aks nodepool delete \
--cluster-name ${AKS_CLUSTER_NAME} \
--name ${AKS_NODEPOOL_NAME_OLD} \
--resource-group ${AKS_RESOURCE_GROUP}
© 2019-2023 Longhorn Authors | Documentation Distributed under CC-BY-4.0
© 2023 The Linux Foundation. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page.