为什么Kubernetes 1.35对状态工作负载的扩展是一个游戏规则的改变者

为什么Kubernetes 1.35对状态工作负载的扩展是一个游戏规则的改变者

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

Kubernetes 1.35中,VPA功能已升级为GA,支持在不驱逐Pod的情况下进行调整。本文介绍了在Minikube上安装VPA、部署NGINX应用、观察资源建议及实时调整的步骤,展示了VPA在持续流量下的有效性。

🎯

关键要点

  • Kubernetes 1.35中,VPA功能已升级为GA,支持在不驱逐Pod的情况下进行调整。

  • 本文介绍了在Minikube上安装VPA、部署NGINX应用、观察资源建议及实时调整的步骤。

  • 在开始之前,需要确保Minikube、kubectl和Git等工具可用。

  • 启动Minikube集群时,建议分配至少4个CPU和4GB内存。

  • 启用Metrics Server以观察Pod资源消耗,等待60秒后验证其是否正常运行。

  • 安装VPA组件需要克隆官方autoscaler仓库并运行安装脚本。

  • 部署一个NGINX应用,设置较低的资源请求以便VPA观察使用情况并推荐调整。

  • 创建VPA时设置updateMode为Off,以便计算建议而不修改运行中的Pod。

  • 在2到3分钟后,VPA的Recommender会生成初步建议,用户可以查看VPA状态。

  • 启用InPlaceOrRecreate更新模式以实现自动资源调整,确保Pod不被驱逐或重启。

  • 生成负载并观察VPA动态调整资源,确认Pod的请求反映VPA的建议。

  • 完成观察后,停止负载生成器并清理所有演示资源。

🔎

延伸解读

VPA的实用性提升

Kubernetes 1.35中VPA的GA升级使得在不驱逐Pod的情况下调整资源成为可能,这对于状态工作负载尤为重要。此功能的引入意味着在生产环境中,应用可以在持续流量下动态调整资源,减少了因资源不足导致的服务中断风险。

Minikube环境配置注意事项

在使用Minikube进行VPA测试时,确保分配足够的资源(至少4个CPU和4GB内存)是关键。这不仅能保证VPA正常运行,还能有效模拟真实环境中的负载情况,从而更准确地观察VPA的表现。

动态调整的观察与验证

启用InPlaceOrRecreate模式后,VPA能够实时调整Pod资源。在生成负载并观察VPA动态调整时,用户应定期检查Pod的状态,确保没有发生重启或驱逐。这一过程验证了VPA在高负载下的有效性和稳定性。

延伸问答

Kubernetes 1.35中VPA的主要改进是什么?

VPA现在可以在不驱逐Pod的情况下调整运行中的Pod,这是对状态工作负载的重大改进。

如何在Minikube上安装VPA?

首先克隆官方autoscaler仓库,进入VPA目录,然后运行安装脚本即可完成VPA的安装。

在使用VPA时,如何观察资源建议?

创建VPA时设置updateMode为Off,等待2到3分钟后,可以通过kubectl命令查看VPA状态以获取资源建议。

VPA的InPlaceOrRecreate更新模式有什么作用?

该模式允许VPA在不重启Pod的情况下调整资源请求,如果节点资源不足,则会回退到传统的驱逐和重建流程。

在Kubernetes 1.35中,如何生成负载以观察VPA的动态调整?

可以通过创建ClusterIP服务并部署负载生成器Pod来生成持续的HTTP流量,从而观察VPA的动态调整。

如何清理在Minikube上演示的VPA资源?

可以通过删除命名空间来清理所有演示资源,使用kubectl delete命令即可。

🏷️

标签

➡️

继续阅读