CPU 基于水平 pod 自动缩放在 kubernetes 集群中不起作用
CPU based horizontal pod autoscaling doesn't work in kubernetes cluster
我正在尝试为部署在 AWS 中的 Kubernetes 集群测试水平 pod 自动缩放功能(使用 EKS)。
我已将资源设置为 'CPU',将目标类型设置为 'Utilization',并在 YAML 文件中将 'averageUtilization' 设置为 15。
所以从技术上讲,当 CPU 利用率达到 15% 设置百分比时,Kubernetes 集群应该自动水平扩展(自动添加 pods)。这是 YAML 文件的重要部分:
maxReplicas: 11
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 15
我将大量 HTTP 流量注入 Kubernetes 集群,但所有 pods 稳定在 35% - 36% CPU 5 或 6 pods 而他们没有创建额外的 pods 以将平均 CPU 利用率降低到 15%(我在 YAML 文件中将其设置为 'averageUtilization')。
无论我调试多少次,运行测试多少次,都是一样的情况。我在这里做错了什么,我错过了什么吗?
您是否检查过 metrics-server
是否已启用?它是启用 hpa
所必需的:https://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
命令。它需要几秒钟才能启动,因为它需要先收集一些指标。
我正在尝试为部署在 AWS 中的 Kubernetes 集群测试水平 pod 自动缩放功能(使用 EKS)。
我已将资源设置为 'CPU',将目标类型设置为 'Utilization',并在 YAML 文件中将 'averageUtilization' 设置为 15。
所以从技术上讲,当 CPU 利用率达到 15% 设置百分比时,Kubernetes 集群应该自动水平扩展(自动添加 pods)。这是 YAML 文件的重要部分:
maxReplicas: 11
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 15
我将大量 HTTP 流量注入 Kubernetes 集群,但所有 pods 稳定在 35% - 36% CPU 5 或 6 pods 而他们没有创建额外的 pods 以将平均 CPU 利用率降低到 15%(我在 YAML 文件中将其设置为 'averageUtilization')。
无论我调试多少次,运行测试多少次,都是一样的情况。我在这里做错了什么,我错过了什么吗?
您是否检查过 metrics-server
是否已启用?它是启用 hpa
所必需的:https://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
命令。它需要几秒钟才能启动,因为它需要先收集一些指标。