Pod 原地垂直伸缩

该提案旨在允许 Pod 资源 requests 和 limits 的原地更新,而不需要重新启动 Pod 或其容器,该方案的核心思想是让 PodSpec 的 Resources 是可变的,表示所需的资源,此外 扩展 PodStatus 来反映分配给 Pod 的资源,并提供有关应用于 Pod 及其容器的实际资源信息。
此外该提案还提出了改进容器运行时接口(CRI)API,以便在运行时管理容器的 CPU 和内存资源配置,尝试扩展 UpdateContainerResources 这个 CRI API,使其适用于 Windows 和除 Linux 之外的其他未来的运行时。它还需求扩展 ContainerStatus CRI API,以允许 Kubelet 能够发现当前配置在容器上的资源。

原因

由于各种原因,分配给 Pod 的容器资源可能需要变更比,这种场景有很多:
如 Pod 处理的负载大幅增加,而目前的资源不足了
又或者说负载大幅减少了,而分配的资源未被使用
资源配置不合理
目前,更改资源分配是需要重新创建 Pod 的,因为 PodSpec 的容器资源是不可改变的。 虽然许多无状态的工作负载被设计成可以承受这样的中断,但有些工作负载更加敏感,特别是在使用低数量的 Pod 副本时。

此外,对于有状态或批处理的工作负载,Pod 重启是一个严重的破坏行为,会导致工作负载可用性降低或运行成本提高。

允许在不重新创建 Pod

你可能感兴趣的:(Kubernetes,linux,运维,kubernetes,容器,云原生)