如何删除AKS的默认节点池,当出现“基本负载均衡器的后端地址池”错误时

41次阅读
没有评论

问题描述

在Azure Kubernetes Service中尝试使用一个新的节点池(具有更大的VM大小)替换现有的节点池。当前的节点池是使用2019-06-01版本的资源管理器API部署的ARM模板。根据Microsoft文档,用户应该能够添加一个新的系统节点池并删除原始的默认节点池。
用户可以成功部署一个额外的节点池,并将其模式设置为系统,使用这个模板,该模板使用2020-03-01版本的资源管理器API,以便可以设置新节点池的模式。
当用户尝试使用az aks nodepool delete -g gandt-testshared-rg --cluster-name gandt-testshared-aks -n agentpool命令删除原始的默认节点池时,出现错误提示Operation failed with status: 'Bad Request'. Details: The agent pool cannot be deleted because it is used as the backend address pool of the basic load balancer.
用户想知道为什么会出现这个错误,以及如何使基本负载均衡器的后端地址池使用新的节点池。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据回答1的建议,这个错误可能与没有正确删除负载均衡器有关。可能是因为在Azure清理之前,在短时间内重新部署了一个服务(类型为负载均衡器),导致之前关联的负载均衡器资源没有正确删除。
可以尝试使用Kubernetes 1.17版本和Loadbalancer Finalizer功能来解决这个问题。请更新问题,以便提供新集群版本的信息。

方案2

根据用户的评论,用户已经尝试删除集群并重新部署了一个新的集群,使用了最新版本的资源管理器API和更大的VM大小。但仍然遇到了相同的问题。这可能是由于其他原因导致的问题,建议尝试以下操作:
1. 确保没有其他服务或资源正在使用默认节点池作为后端地址池。可以通过以下步骤来检查:
– 登录到Azure门户。
– 导航到AKS集群的“负载均衡器”部分。
– 检查是否有其他负载均衡器服务正在使用默认节点池作为后端地址池。
– 如果有,请删除这些服务或将它们重新配置为使用其他节点池。
2. 如果仍然无法删除默认节点池,请尝试使用Azure CLI的az network lb address-pool delete命令手动删除后端地址池。具体步骤如下:
– 打开命令行终端。
– 运行以下命令删除后端地址池:
az network lb address-pool delete --resource-group <resource-group-name> --lb-name <load-balancer-name> --name <backend-address-pool-name>
其中,<resource-group-name>是资源组的名称,<load-balancer-name>是负载均衡器的名称,<backend-address-pool-name>是后端地址池的名称。
– 尝试再次使用az aks nodepool delete命令删除默认节点池。
如果以上解决方案仍然无法解决问题,请考虑联系Azure支持团队以获取进一步的帮助和支持。

正文完