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