Google Kubenetes Engine 上的 Kubernetes 资源配额

Google Kubenetes Engine 上的 Kubernetes 资源配额

我是 Kubernetes 的新手。我猜这个问题应该有一个简单的答案。

有没有办法在集群级别禁用资源配额,或者至少在使用 Google Kubernetes Engine 时减少 kube-system pod 为非常小的集群请求的资源配额?我希望有一个在云提供商上公开可用的 kubernetes 集群,而不是我的笔记本电脑上的 minikube,但我完全不担心 HA,也不指望有超过少数人使用它的服务。

在 GKE 上启动单个节点时,kube-system pod 请求超过 70% 的 CPU,但实际使用率不到 1%。尽管第一个节点上仅使用了 1% 的 CPU,但我还是勉强启动了第二个节点,发现超过 50% 的 CPU 被保留了。例如,kube-dns 在每个节点上占用了 27% 的 CPU。对于我自己手动定义的 pod,我可以避免任何类型的 CPU 请求,但在安装 helm charts 时,其他人编写的几乎总是由于 CPU 资源不足而无法调度。

答案1

您可以编辑 GKE 创建的各种部署,但它们可能会在将来恢复(例如,升级集群时)。

查看所有内部部署:

$ kubectl get deployments --namespace kube-system
NAME                    DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
event-exporter-v0.1.9   1         1         1            1           20d
fluentd-gcp-scaler      1         1         1            1           15d
heapster-v1.5.2         1         1         1            1           20d
kube-dns                1         1         1            1           210d
kube-dns-autoscaler     1         1         1            1           210d
l7-default-backend      1         1         1            1           210d
metrics-server-v0.2.1   1         1         1            1           96d

然后编辑其中一个:

$ kubectl edit deployment/kube-dns --namespace kube-system

然后编辑资源部分。您可以减少资源分配,或者直接删除它们。但是,如果您的集群分配过多,您可能会遇到一些不稳定问题。

相关内容