可以用作 AKS 节点的最便宜的 VM 是啥?
Posted
技术标签:
【中文标题】可以用作 AKS 节点的最便宜的 VM 是啥?【英文标题】:What Is The Cheapest VM That Can Be Used As An AKS Node?可以用作 AKS 节点的最便宜的 VM 是什么? 【发布时间】:2019-07-19 11:07:05 【问题描述】:我正在测试一些 Terraform 代码来创建一个 Kubernetes 集群,所以我选择了最小/最便宜的 VM
resource "azurerm_kubernetes_cluster" "k8s"
name = "$var.cluster_name"
location = "$azurerm_resource_group.resource_group.location"
resource_group_name = "$azurerm_resource_group.resource_group.name"
dns_prefix = "$var.dns_prefix"
agent_pool_profile
name = "agentpool"
count = "$var.agent_count"
vm_size = "Standard_B1s"
os_type = "Linux"
os_disk_size_gb = "$var.agent_disk_size"
service_principal
client_id = "$var.client_id"
client_secret = "$var.client_secret"
但是,当我 terraform apply
时,我从 azure 收到此错误消息:
“为此群集选择的 VM SKU
Standard_B1s
没有足够的 CPU/内存来作为 AKS 节点运行。”
如何列出 AKS 节点的有效 VM SKU 并按成本对其进行排序?
【问题讨论】:
我将其标记为有用。如果有列出有效虚拟机的命令行方式,我会在接受之前将其再打开 24 小时。 Kubernetes 最低要求可以在这里找到:kubernetes.io/docs/setup/independent/install-kubeadm/… 其他建议应考虑工作负载分析。 【参考方案1】:您需要选择具有至少 3.5 GB 内存的实例。从blog 中阅读关于节点大小的注释。您可以在Azure sales site 上列出 VM 的大小和价格。
目前,最便宜的是Standard_B2s
,配备 4 GB RAM。您也可以直接在 Azure 门户中对其进行排序。
【讨论】:
【参考方案2】:如果你调整 vmss 的大小,你会做一个比 B2 便宜的 B1,然后升级实例。 Linux 每月 3.80 美元,Windows 每月 10.22 美元
无论出于何种原因,您还不能在 Terraform 中执行此操作。
第 1 步: 点击 vmss -> 设置 -> 大小 -> 查看所有大小(小字) -> 调整大小
第 2 步: 点击 vmss -> 设置 -> 实例 -> _0 -> 升级(在顶部控制器栏)
我不会过多担心 vm 实例的大小。这就是 Terraform 让你失望的地方。 os_disk_size_gb。将此值设置得较低,否则默认为每个实例每月 20 美元。似乎无法更改层级,他们默认使用高级 128GB 磁盘,并且看起来您每个节点只需花费 30 美元。
更新: 我开始遇到大小为 b1ls 的实例的一些问题。
【讨论】:
这很有趣。但是,如果您不能自动执行此操作,它并不能真正帮助我。 我所做的是使用 Terraform,然后编写了一个 PowerShell 脚本来调整大小。然后,您可以编写一个 PowerShell 来初始化并应用 Terraform,然后运行另一个 PowerShell,因此它是完全自动化的。但是,我遇到了一个问题,我无法使用 kubectl 和 b1ls 删除命名空间。如果调整为 b1ls 没有意义,我会尽快更新我的答案。如果您想省钱,我会专注于 os_disk_size_gb。然后,您可以编写脚本在不使用时释放 vmss 或在不使用时销毁 terraform。【参考方案3】:只是为了添加到现有答案。我不认为有一个枚举可以列出所有有效的 vm 大小,但是如果您查看 API definition,它会非常清楚地列出所有这些。
您可以使用 azureprice.net 或类似的东西来确定您所在地区最便宜的虚拟机(通常是 B 系列)。
【讨论】:
以上是关于可以用作 AKS 节点的最便宜的 VM 是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Shell (ssh) 到 Azure AKS (Kubernetes) 群集工作节点
Terraform 在 AKS 节点资源组中创建入口应用程序网关