【发布时间】:2020-03-02 02:38:32
【问题描述】:
关于 resource quotas 的 GKE 文档指出,这些硬性限制仅适用于具有 10 个或更少节点的集群。
即使我们有超过 10 个节点,这个配额已经创建,无法删除
这是 GKE 方面的错误还是故意的并且文档无效?
【问题讨论】:
标签: google-cloud-platform google-kubernetes-engine
关于 resource quotas 的 GKE 文档指出,这些硬性限制仅适用于具有 10 个或更少节点的集群。
即使我们有超过 10 个节点,这个配额已经创建,无法删除
这是 GKE 方面的错误还是故意的并且文档无效?
【问题讨论】:
标签: google-cloud-platform google-kubernetes-engine
我今天在使用 GKE 时遇到了一个非常奇怪的错误。我们托管的gitlab-runner 停止运行新作业,消息是:
pods "xxxx" is forbidden: exceeded quota: gke-resource-quotas, requested: pods=1, used: pods=1500, limited: pods=1500
因此配额资源是不可编辑的(如文档所述)。然而,问题是只有 5 个 Pod 正在运行,而不是 1500 个。所以它可能是一个 kubernetes 错误,它计算节点数的方式,不确定。 升级控制平面和节点后,错误并没有消失,我不知道如何重置节点的计数器。
对我有用的是简单地删除此资源配额。很惊讶它甚至被允许/耸肩。
kubectl delete resourcequota gke-resource-quotas -n gitlab-runner
之后,重新创建了相同的资源配额,并且 Pod 能够再次运行。
【讨论】:
“gke-resource-quotas”可防止控制平面被部署在集群中的应用程序意外过载,从而产生过多的 kubernetes 资源。 GKE 会在集群的每个命名空间中自动安装一个名为“gke-resource-quotas”的开源 kubernetes ResourceQuota 对象。您可以使用此命令 [kubectl get resourcequota gke-resource-quotas -o yaml -n kube-system] 获取有关该对象的更多信息。
目前,GKE 资源配额包括四个 Kubernetes 资源、Pod 数量、服务、作业和入口。它们的限制是根据集群大小和其他因素计算的。 GKE 资源配额是不可变的,不能通过 API 或 kubectl 对其进行更改。资源名称“gke-resource-quotas”是保留的,如果创建同名的ResourceQuota会被覆盖。
【讨论】: