Vertical Pod Autoscaler (VPA) 使用文档
1. 初识VPA
1.1. 什么是 VPA
VPA 是一个自动调整容器中垂直资源(CPU和内存)的工具。VPA 根据容器实际资源使用情况,自动调整Pod的资源请求,以确保Pod在运行时有足够的资源。
1.2. VPA 的优势
优势
- 资源优化: VPA通过动态调整容器资源请求,提高资源利用率。
- 性能改进: 通过确保Pod有足够的资源,VPA提高了应用程序的性能和稳定性。
- 自动化: VPA能够在不需要人为干预的情况下自动调整资源。
1.2.1. VPA 的限制
-
由于VPA会自动调整Pod的资源请求,因此Pod可能会在后台重启,Pod可能会调度到其他的节点。
-
请避免
VPA
和HPA
同时使用。
2. 安装
2.1. 先决条件
- Kubernetes 1.10+
2.2. 部署
2.2.1. 部署 VPA 服务证书
curl -sfL https://docs.an-link.com/uk8s/yaml/vpa/gencerts.sh | sh -
2.3. 部署 VPA 服务
1.22及版本以上
kubectl apply -f https://docs.an-link.com/uk8s/yaml/vpa/vpa.yaml
1.22以下
kubectl apply -f https://docs.an-link.com/uk8s/yaml/vpa/vpa-less-1.22.yaml
2.4. 部署一个 VPA 对象
kubectl apply -f https://docs.an-link.com/uk8s/yaml/vpa/deployment.yaml
3. 查看 VPA 对象
kubectl describe vpa nginx-vpa
上述命令输出为 VPA 为 Deployment 推荐的值。
Recommendation:
Container Recommendations:
Container Name: nginx
Lower Bound:
Cpu: 25m
Memory: 262144k
Target:
Cpu: 25m
Memory: 262144k
Uncapped Target:
Cpu: 25m
Memory: 262144k
Upper Bound:
Cpu: 50032m
Memory: 107227776429