# 纵向伸缩

Pod 的纵向伸缩（VPA）是指分配给 Pod 更多或更少的 CPU、内存等资源。

关于纵向伸缩，实现起来是比较困难的，官方对于 VPA 还没有给出确切的实现方法。

下面分别针对 **运行前** 和 **运行中** 两种情况，介绍一下纵向伸缩的实现。

## 运行前 自动配置资源请求

Kubernetes 有一个实验性的特性，由 **InitialResources** 准入插件实现，当收到的新的容器创建请求中没有明确设置 CPU 和 内存 资源请求量时，会代为设置。

该特性设置的资源请求量的大小是根据 Pod **容器** 的历史资源使用数据（通过容器镜像、tag识别）来设置资源请求。

实际上，Kubernetes 是在纵向伸缩这些 Pod。比如，若一个容器总是内存不足，下次创建一个包含该容器镜像的 Pod 的时候，它的内存资源请求就会被自动调高。

## 运行中 修改资源请求

目前针对运行中资源请求量的修改还未实现。
