【问题标题】:Does HPA also scale pods when the pods are configured to run on AKS Virtual Nodes当 pod 配置为在 AKS 虚拟节点上运行时,HPA 是否也缩放 pod
【发布时间】:2023-02-01 17:32:23
【问题描述】:

我似乎得到不同或非承诺答案的简单问题: 如果我们的 pod 配置为在虚拟节点上运行,并且我们为每个 pod 添加 /a HPA(水平 Pod 自动缩放器),它们是否也会在虚拟节点上缩放,类似于它们在常规节点/节点池上的缩放方式?

我已寻求支持,但他们不断向我发送相同的链接,但这些链接无法回答我的问题。

附加信息:我们有在具有常规节点(1 到 5 个副本)的节点池上使用 HPA 扩展的 Pod。我还可以将我们的 pod 配置为在设置了请求的虚拟节点上工作。我只是不能 100% 确定 Pod 是否正在缩放,因为我没有看到任何缩放事件。

【问题讨论】:

    标签: azure kubernetes azure-aks azure-container-instances


    【解决方案1】:

    使用 HPA 虚拟节点自动缩放将不起作用,因为将 ACI 呈现为虚拟节点而不是 Pod 的 AKS 集群。如果要求是高突发需求,则使用虚拟节点和 Azure 容器实例进行扩展。

    HPA 将自动增加/减少副本数量,以将所有 Pod 的平均 CPU 利用率维持在建议的百分比。

    我在GitHub 找到了一个解决方案,这将有助于自动缩放虚拟节点。

    复制过程:

    我已经成功地重现了该解决方案,并且在对启用虚拟节点插件.

    第 1 步:创建一个地址前缀为 10.0.0.0/8 和子网 myAKSSubnet 的 Vnet:10.240.0.0/16 和 myVirtualNodeSubnet 10.241.0.0/16

    Step2:创建一个默认节点数为 1 的集群,并映射到子网 id myVirtualNodeSubnet

    第 3 步:使用以下命令启用虚拟节点插件

    az aks enable-addons --resource-group <resourcegroupName>--name <CluserName> --addons virtual-node --subnet-name <Subnetname>
    

    第四步: 连接集群并检查节点详细信息:

    az aks get-credentials --resource-group <ResourcegroupName>--name <CluserName>
    kubectl get nodes
    

    step5: 在没有 HPA 的情况下部署相同的应用程序

    kubectl apply -f <app>.yaml
    

    第六步: 使用相同的应用程序应用 HPA

    第七步: 验证 pod 后,它现在会自动缩放到 2

    注意:在虚拟节点上启用时,插件 HPA 正在运行。

    【讨论】:

    • 谢谢你的信息。我已经有了那个链接,我的问题更多地与 HPA 是否可以自动扩展虚拟节点 (ACI) 上的 pod 而不必诉诸 Prometheus 路线有关。所以简而言之 - 使用 HPA 在虚拟节点而不是常规节点上扩展 pod,从一个副本开始,然后将 HPA 设置为在 1 到 6 个副本之间扩展,仅使用虚拟节点。
    • 按要求复制。将 HPA 上的虚拟节点的副本集更新为 2,并且正在运行。感谢您提供的信息,用“复制过程”更新了解决方案。
    【解决方案2】:

    Kubernetes 默认指标服务器不支持收集 AKS 虚拟节点的指标。但是我们可以使用自定义指标来实现您的要求。

    这是解决方法: https://learn.microsoft.com/zh-cn/samples/azure-samples/virtual-node-autoscale/virtual-node-autoscale-demo/

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-16
    • 2021-01-26
    • 1970-01-01
    • 2021-09-01
    • 2021-06-25
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    相关资源
    最近更新 更多