为什么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的建议。
  • 完成观察后,停止负载生成器并清理所有演示资源。

延伸问答

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命令即可。

➡️

继续阅读