1,HPA介绍
每个pod都可以对其能使用的服务器上的计算资源设置限额,当前可以设置限额的计算资源有CPU与memory两种。
在kubernetes里,一个计算资源进行配额限定需要设定以下两个参数
requests:该资源的最小申请量,系统必须满足要求,
limits:该资源最大允许使用的量,不能被突破,当容器试图使用超过这个量的资源时,可能会被kubernetes kill并重启
2, 示例
mysql容器申请最少0.25个cpu及64MiB内存,在运行过程中mysql容器所能使用的资源配额为0.5个cpu以及128MiB内存
apiVersion:v1
kind:Pod
metadata:
name:mysql
labels:
name:mysql-server
spec:
containers:
- name:db
image:httpd
resources:
requests:
memory:"64Mi"
cpu:"250m"
limits:
memory:"128Mi"
cpu:"500m"
原理
- 资源配额应用在Namespace上,并且每个Namespace最多只能有一个 ResourceQuota 对象
- 开启计算资源配额后,创建容器时必须配置计算资源请求或限制(也可以 用LimitRange设置默认值)
- 用户超额后禁止创建新的资源