前言
在AKS上创建Kubernetes集群时,请指定要用于节点的虚拟机类型(--node-vm-size
)。我了解到,创建Kubernetes集群后无法更改此设置,这意味着添加资源时将垂直扩展而不是水平扩展。
但是,您可以在AKS群集中创建不同的节点池,这些节点池为您的节点使用不同类型的VM。因此,我想,如果您要“更改”最初选择的VM的类型,也许添加一个新的节点池并删除旧的节点池(“ nodepool1”)?
我通过以下步骤进行了尝试:
az aks nodepool delete --cluster-name ... -g ... -n nodepool1
很不幸,我遇到了Primary agentpool cannot be deleted
。
问题
无法删除的“主代理程序池”的目的是什么?(在很多情况下)创建AKS集群时(在现实情况下)选择哪种类型的VM会很重要吗?
我可以创建其他节点池并让主要节点存活吗?如果我的节点池的节点使用较大的VM,但主要的池仍使用“ Standard_A1_v2”,会在将来引起麻烦吗?
答案 0 :(得分:1)
主节点池是群集中的第一个节点池,您不能删除它,因为当前不支持该节点池。您可以创建和删除其他节点池,并保持原来的状态不变。不会造成任何麻烦。
对于主节点池,我建议选择一个从长远来看更有意义的VM大小(因为您无法更改它)。 B系列非常适合,因为它们很便宜,并且CPU \ mem比率对于平均工作负载而言是很好的。
ps。您始终可以将主节点池扩展为0个节点,将其绑定并关闭。您将不得不重复此升级,否则它将起作用
答案 1 :(得分:1)
该功能似乎是在您提出问题时引入的,它使您可以添加新的系统节点池并删除旧的系统节点池,包括初始的节点池。我自己在整理集群时遇到相同的错误消息后,我发现必须将另一个节点池设置为系统类型才能删除第一个。
有关here的更多信息,但简而言之,Azure节点池分为两种类型(它们称为“模式”):系统和用户。首先创建单个池时,它将是系统类型(有利于系统Pod调度-因此,最好有一个或两个节点的专用池供系统使用,然后再有一个用于实际使用的用户节点池应用程式广告连播)。
因此,如果您希望删除唯一的系统池,则需要先创建另一个节点池,并将--mode开关设置为“ system”(具有首选的VM大小等),然后就可以删除第一个(实际上,nodepool模式不能在创建后更改)。