本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

Azure Kubernetes 服务 (AKS) 的托管节点组

以下是用新存储大小替换集群节点的示例。

存储扩展

AKS 不支持在其 模板 中添加额外磁盘。可以手动附加磁盘。然后,原始设备需要通过在虚拟机中手动挂载或在启动时使用 CustomScriptExtension 挂载,而该功能 在 AKS 中不受支持

  1. 在 Longhorn 中,将 replica-replenishment-wait-interval 设置为 0

  2. 添加一个新的节点池。稍后,Longhorn 组件将自动部署在该池中的节点上。

     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
  3. 使用 Longhorn UI 禁用旧节点池中节点的磁盘调度和请求驱逐。

  4. 对旧节点池中的 Kubernetes 节点进行隔离并排空。

     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
  5. 删除旧节点池。

     az aks nodepool delete \
       --cluster-name ${AKS_CLUSTER_NAME} \
       --name ${AKS_NODEPOOL_NAME_OLD} \
       --resource-group ${AKS_RESOURCE_GROUP}