基于CPU的水平Pod自动缩放在Kubernetes集群中不起作用

时间:2020-11-10 04:09:53

标签: kubernetes kubectl kubernetes-pod amazon-eks

我正在尝试为部署在AWS(使用EKS)中的Kubernetes集群测试水平Pod自动缩放功能。

我在YAML文件中将“资源”设置为“ CPU”,将目标类型设置为“利用率”,并将“ averageUtilization”设置为15。

因此从技术上讲,当CPU利用率百分比达到 15%设置百分比时,Kubernetes集群应水平自动缩放(自动添加Pod)。这是YAML文件的重要组成部分:

    maxReplicas: 11
    metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 15

我正在向Kubernetes集群中注入大量HTTP流量,但是所有Pod稳定在35%-36%的CPU,带有5或6个Pod,它们不会创建额外的Pod来将平均CPU利用率降低到15%我在YAML文件中将其设置为“ averageUtilization”。

无论我多次调试和运行测试多少次,情况都是一样的。我在这里做错什么,我还想念其他东西吗?

1 个答案:

答案 0 :(得分:3)

您是否检查了metrics-server是否已启用?为了启用hpahttps://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-metrics-apis

这是metrics-server文档:https://github.com/kubernetes-sigs/metrics-server。为了快速测试它并解决问题,您可以禁用TLS:--kubelet-insecure-tls。在生产中,您需要再次启用TLS。

要检查metrics-server是否已启用,可以运行kubectl top命令。它需要几秒钟才能开始,因为它需要首先收集一些指标。