gpt4 book ai didi

kubernetes - 当我们执行 "kubectl scale deploy"时,Kubernetes 不尊重 HPA 配置吗?

转载 作者:行者123 更新时间:2023-12-02 11:57:46 24 4
gpt4 key购买 nike

情景:我已经使用 helm chart 部署了一个服务,我可以看到我的服务、hpa、部署、pod 等。在我的 hpa 设置中:最小 pod 计数设置为 1。我可以看到我的 Pod 正在运行并且能够处理服务请求。

过了一会儿——我已经执行了——“kubectl scale deploy --replicas=0”运行上述命令后,我可以看到我的 pod 已被删除(尽管 hpa min pod 设置设置为 1),我期待一段时间后 hpa 将扩大到最小 pod 计数,即 1。但是我没有看到这种情况发生,我已经等了一个多小时,hpa 没有创建新的 pod。我也尝试向我的 Kubernetes 服务发送请求,我在想现在 hpa 将扩大 pod,因为没有 pod 来服务请求,但是 hps 似乎没有这样做,我得到了一个响应我的服务不可用。

这是我在 kubectl get hpa 中看到的名称 引用 目标 MINPODS MAXPODS REPLICAS 年龄**测试部署/xxxx/1000% 1 4 0 1h

有趣的是,我发现 hpa 快速缩减: 当我执行“kubectl scale deploy --replicas=2”(请注意 in hpa 计数为 1)时,我可以看到 2 个 pod快速创建,但在 5 分钟内,1 个 pod 被 hpa 删除。

这是 Kubernetes(尤其是 hpa)的预期行为吗?如,如果我们通过执行 --"kubectl scale deploy --replicas=0"删除所有 pod,a) hpa 不会阻止以减少副本数少于配置的 pod 数(在 hpa 配置中)和b) hpa 不会按比例扩大(基于 hpa 旋转周期)到配置的最小 pod 数。并且本质上 c) 在我们重新部署或执行另一轮“kubectl scale deploy”以更新副本计数之前,不会有此服务的 pod。

这是 Kubernetes 代码库中的预期行为还是(可能的)错误?我使用的是 Kubernetes 1.8 版本。

最佳答案

这是一个很棒的观察。我正在浏览 HPA 的文档,遇到了 HPA 用来缩放 pod 的数学公式。它看起来像

TargetNumOfPods = ceil(sum(CurrentPodsCPUUtilization) / Target)

在您的情况下,当前 pod 利用率为零,因为您的 pod 计数为零。所以从数学上讲,这个等式结果为零。因此,如果 pod 计数为零,这就是 HPA 无法工作的原因。

a: HPA 不应阻止手动扩展 pod,因为它仅从资源(cpu、内存等)获得触发。一旦您使用“kubectl scale”或通过任何其他方式进行缩放,HPA 将根据最小、最大副本和平均利用率值出现。

b: 如果当前计数不为零,HPA 会扩展到最小副本数。我试过了,它工作得很好。

c: 是的,除非您将副本数设为非零值,否则 HPA 将无法工作。所以你必须扩大到一些非零值。

希望这能解答您对 HPA 的疑虑。

关于kubernetes - 当我们执行 "kubectl scale deploy"时,Kubernetes 不尊重 HPA 配置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54473962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com