当我们执行“kubectl规模部署”时,Kubernetes不尊重HPA配置吗?

当我们执行“kubectl规模部署”时,Kubernetes不尊重HPA配置吗?,kubernetes,kubectl,Kubernetes,Kubectl,情景: 我已经使用helm图表部署了一项服务,我可以看到我的服务、hpa、部署、POD等。 在我的hpa设置中:最小吊舱数设置为1。 我可以看到我的吊舱正在运行,能够处理服务请求 过了一会儿-- 我已经执行了-kubectl scale deploy-replicas=0 一旦我运行上述命令,我可以看到我的pod被删除,尽管hpa最小pod设置被设置为1,但我预计过一段时间hpa将扩大到最小pod计数,即1。 但我看不到这种情况发生,我已经等了一个多小时,hpa没有创建新的吊舱。 我也尝试过向我

情景: 我已经使用helm图表部署了一项服务,我可以看到我的服务、hpa、部署、POD等。 在我的hpa设置中:最小吊舱数设置为1。 我可以看到我的吊舱正在运行,能够处理服务请求

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

以下是我在kubectl获得hpa的情况 名称引用的目标是MINPODS MAXPODS副本年龄** 测试部署/xxxx/1000%1 4 0 1小时

有趣的是,我发现hpa的扩展速度很快:当我执行kubectl scale deploy-replicas=2时,请注意hpa中的计数是1,我可以看到2个pod很快被创建,但是在5分钟内,1个pod被hpa删除

这是Kubernetes特别是hpa的预期行为吗? 如中所示,如果我们通过执行-kubectl scale deploy-replicas=0删除所有POD, a hpa不会阻止将副本计数减少到hpa配置中配置的pod计数以下,并且 b hpa不会根据hpa旋转周期扩大到配置的最小吊舱数量。 基本上是c,直到我们重新部署或执行另一轮kubectl scale deploy以更新副本计数,此服务将不会有POD

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

这是一个很好的观察。我查阅了HPA的文档,发现了HPA用来缩放豆荚的数学公式

TargetNumOfPods = ceil(sum(CurrentPodsCPUUtilization) / Target)
在您的情况下,当前吊舱利用率为零,因为您的吊舱数为零。所以从数学上来说,这个方程的结果是零。这就是为什么如果吊舱数为零,HPA不工作的原因

答:HPA不应阻止POD的手动缩放,因为它只能从cpu、内存等资源中触发。一旦您使用kubectl scale或任何其他方式进行缩放,HPA将根据最小、最大副本和平均利用率值进入画面

b:如果当前计数不为零,HPA将最多扩展到最小复制副本数。我试过了,效果非常好

c:是的,除非您将副本计数设置为非零值,否则HPA将不起作用。所以你必须放大到一些非零值


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

这是一个很好的观察。我查阅了HPA的文档,发现了HPA用来缩放豆荚的数学公式

TargetNumOfPods = ceil(sum(CurrentPodsCPUUtilization) / Target)
在您的情况下,当前吊舱利用率为零,因为您的吊舱数为零。所以从数学上来说,这个方程的结果是零。这就是为什么如果吊舱数为零,HPA不工作的原因

答:HPA不应阻止POD的手动缩放,因为它只能从cpu、内存等资源中触发。一旦您使用kubectl scale或任何其他方式进行缩放,HPA将根据最小、最大副本和平均利用率值进入画面

b:如果当前计数不为零,HPA将最多扩展到最小复制副本数。我试过了,效果非常好

c:是的,除非您将副本计数设置为非零值,否则HPA将不起作用。所以你必须放大到一些非零值


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

谢谢Rajesh的解释。从hpa算法的角度来看完全有意义。我觉得Kubernetes引擎可能会在创建/删除任何数量的副本之前查看hpa值,以防有hpa与部署相关联,但事实并非如此。感谢Rajesh的解释。从hpa算法的角度来看完全有意义。我觉得Kubernetes引擎可能会在创建/删除任意数量的副本之前查看hpa值,以防有hpa与部署关联,但看起来并非如此。