GKE集群Pod CPU资源请求无法低于100mCPU问题咨询
结论
GKE本身完全支持将Pod的CPU资源请求设置为低于100mCPU的数值,你遇到的配置不生效、部署报错问题并非GKE平台的底层限制,是Istio Sidecar默认配置、ResourceQuota规则配置错误共同导致的。
问题原因及解决方法
Pod总CPU请求为125m的原因
你在Deployment中仅为业务容器配置了25mCPU请求,但Istio默认的Sidecar注入规则会自动为注入的istio-proxy容器设置100mCPU请求,两个容器的请求值相加后总Pod CPU请求就是125m,和你的预期不符。
解决方法:修改istio-sidecar-injectorConfigMap中的Sidecar默认资源请求配置,将sidecar的CPU请求调整到符合你业务实际负载的数值即可,调整后重新创建的Pod会按照新配置计算总资源请求。ResourceQuota配置后部署报错的原因
你配置的ResourceQuota是命名空间级别的总资源配额,规则中的requests.cpu: 25m代表限制该命名空间下所有Pod的CPU请求总和不能超过25m,这个值远低于单Pod的总CPU请求,自然会触发配额不足的报错,导致副本无法创建。
解决方法:根据该命名空间的总负载规划调整ResourceQuota的硬限制值,不要把单Pod的资源请求值当成命名空间的总配额填写。GKE默认
gke-resource-quotas规则的说明
这是GKE的默认行为,新创建的命名空间如果没有提前配置自定义ResourceQuota,GKE会自动生成不可编辑的默认配额规则。只要你在命名空间创建完成后、部署任何工作负载之前提前应用自定义ResourceQuota,就可以覆盖这个默认逻辑,不会生成GKE自带的配额规则。
内容的提问来源于stack exchange,提问作者Alex Montolio

