1,HPA介绍

每个pod都可以对其能使用的服务器上的计算资源设置限额,当前可以设置限额的计算资源有CPU与memory两种。
在kubernetes里,一个计算资源进行配额限定需要设定以下两个参数
requests:该资源的最小申请量,系统必须满足要求,
limits:该资源最大允许使用的量,不能被突破,当容器试图使用超过这个量的资源时,可能会被kubernetes kill并重启

2, 示例

mysql容器申请最少0.25个cpu及64MiB内存,在运行过程中mysql容器所能使用的资源配额为0.5个cpu以及128MiB内存

  1. apiVersion:v1
  2. kind:Pod
  3. metadata:
  4. name:mysql
  5. labels:
  6. name:mysql-server
  7. spec:
  8. containers:
  9. - name:db
  10. image:httpd
  11. resources:
  12. requests:
  13. memory:"64Mi"
  14. cpu:"250m"
  15. limits:
  16. memory:"128Mi"
  17. cpu:"500m"

原理

  • 资源配额应用在Namespace上,并且每个Namespace最多只能有一个 ResourceQuota 对象
  • 开启计算资源配额后,创建容器时必须配置计算资源请求或限制(也可以 用LimitRange设置默认值)
  • 用户超额后禁止创建新的资源