我有一个在 GKE Autopilot K8s 集群中运行的容器。我的部署清单中有以下内容(仅包含相关部分):
apiVersion: apps/v1
kind: Deployment
spec:
template:
spec:
containers:
resources:
requests:
memory: "250Mi"
cpu: "512m"
因此,我请求了 GKE 自动驾驶仪允许普通 Pod 使用的最低资源。请注意,我没有指定
limits
。
但是,应用清单并查看 yaml 后,我发现它与我应用的清单中的内容不匹配:
resources:
limits:
cpu: 750m
ephemeral-storage: 1Gi
memory: 768Mi
requests:
cpu: 750m
ephemeral-storage: 1Gi
memory: 768Mi
知道这是怎么回事吗?为什么 GKE 扩大了资源规模?这不必要地花费了我更多的钱吗?
有趣的是,直到最近它才按预期运行。这种行为似乎是最近几天才开始的。
如果您请求的资源如下:
memory: "250Mi"
cpu: "512m"
那么他们不符合
GKE Autopilot
将分配的最低资源量。请查看文档:
姓名 普通 Pod CPU 250 mCPU 内存 512 MiB 临时存储 10 MiB(每个容器) -- Cloud.google.com:Kubernetes Engine:文档:指南:Autopilot 中的资源请求:允许的资源范围
正如您所看到的,您请求的内存量太小,这就是您看到以下消息的原因(并且清单已被修改以创建
requests
/limits
):
Warning: Autopilot increased resource requests for Deployment default/XYZ to meet requirements. See http://g.co/gke/autopilot-resources.
要解决此问题,您需要分配文档限制内的资源,我已将其包含在上面的链接中。