Azure Kubernetes服务(AKS)和主节点池

时间:2020-03-01 19:44:51

标签: azure azure-aks

前言

在AKS上创建Kubernetes集群时,请指定要用于节点的虚拟机类型(--node-vm-size)。我了解到,创建Kubernetes集群后无法更改此设置,这意味着添加资源时将垂直扩展而不是水平扩展。

但是,您可以在AKS群集中创建不同的节点池,这些节点池为您的节点使用不同类型的VM。因此,我想,如果您要“更改”最初选择的VM的类型,也许添加一个新的节点池并删除旧的节点池(“ nodepool1”)?

我通过以下步骤进行了尝试:

  • 创建VM类型为“ Standard_A1_v2”的名为“ stda1v2”的节点池
  • 删除“ nodepool1”(az aks nodepool delete --cluster-name ... -g ... -n nodepool1

很不幸,我遇到了Primary agentpool cannot be deleted

问题

无法删除的“主代理程序池”的目的是什么?(在很多情况下)创建AKS集群时(在现实情况下)选择哪种类型的VM会很重要吗?

我可以创建其他节点池并让主要节点存活吗?如果我的节点池的节点使用较大的VM,但主要的池仍使用“ Standard_A1_v2”,会在将来引起麻烦吗?

2 个答案:

答案 0 :(得分:1)

主节点池是群集中的第一个节点池,您不能删除它,因为当前不支持该节点池。您可以创建和删除其他节点池,并保持原来的状态不变。不会造成任何麻烦。

对于主节点池,我建议选择一个从长远来看更有意义的VM大小(因为您无法更改它)。 B系列非常适合,因为它们很便宜,并且CPU \ mem比率对于平均工作负载而言是很好的。

ps。您始终可以将主节点池扩展为0个节点,将其绑定并关闭。您将不得不重复此升级,否则它将起作用

答案 1 :(得分:1)

该功能似乎是在您提出问题时引入的,它使您可以添加新的系统节点池并删除旧的系统节点池,包括初始的节点池。我自己在整理集群时遇到相同的错误消息后,我发现必须将另一个节点池设置为系统类型才能删除第一个。

有关here的更多信息,但简而言之,Azure节点池分为两种类型(它们称为“模式”):系统和用户。首先创建单个池时,它将是系统类型(有利于系统Pod调度-因此,最好有一个或两个节点的专用池供系统使用,然后再有一个用于实际使用的用户节点池应用程式广告连播)。

因此,如果您希望删除唯一的系统池,则需要先创建另一个节点池,并将--mode开关设置为“ system”(具有首选的VM大小等),然后就可以删除第一个(实际上,nodepool模式不能在创建后更改)。