可以用作 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) 群集工作节点

AKS初体验:登录到node节点的几种方式

Terraform 在 AKS 节点资源组中创建入口应用程序网关

索引(用于搜索索引)70,000 个节点的最简单方法是啥?

在 Spark 执行器节点上安装 Python 依赖项的最简单方法是啥?

允许其他人下载我拥有的数据集的最便宜的方法是啥?