kubernetes - 为什么Kubernetes中没有节点池的概念?

标签 kubernetes google-kubernetes-engine amazon-eks azure-aks kubernetes-pod

我可以看到 GKE、AKS、EKS 都内置了节点池概念,但 Kubernetes 本身不提供该支持。这背后的原因可能是什么?

我们通常需要不同的节点类型来满足不同的要求,如下所示-

某些 Pod 需要 CPU 或内存密集型和优化节点。 一些 Pod 正在处理 ML/AI 算法,需要支持 GPU 的节点。这些支持 GPU 的节点应该仅由某些 Pod 使用,因为它们很昂贵。 一些 Pod/作业希望利用现货/可抢占节点来降低成本。

Kubernetes 没有内置此类支持有什么具体原因吗?

最佳答案

节点池是云提供商特定的技术/分组。

Kubernetes 旨在部署在各种基础设施上,包括本地/裸机。在这种情况下,节点池没有任何意义。

节点池通常是为 Kubernetes 提供一组相同配置的节点以在集群中使用的一种方式。

您可以使用节点选择器和/或污点/容忍来指定所需的节点。

因此,您可以使用 GPU 污染节点,然后要求 pod 具有匹配的容忍度,以便调度到这些节点上。节点池在这里不会产生任何影响。您可以将物理服务器加入集群并以完全相同的方式污染该节点——除了一些不同的注释之外,Kubernetes 不会认为这与也注册到集群的基于 Google、Amazon 或 Azure 的节点有任何不同在节点上。

关于kubernetes - 为什么Kubernetes中没有节点池的概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74623525/

相关文章:

docker - 是否可以在不在云端的情况下私​​下使用 Google 容器?

amazon-eks - 对 kubernetes-dashboard 进行身份验证时, `aws-iam-authenticator` 和 `aws eks get-token` 生成的 token 之间有什么区别?

kubernetes 从 1.9.0 升级到 1.10 FATAL : could not decode configuration: unable to decode config from bytes

docker - Kubernetes 可以像 Docker Compose 一样使用吗?

Docker 构建失败 - 使用 GKE 的 Gitlab CI。无法通过 tcp ://localhost:2375. 连接到 Docker 守护程序 docker 守护程序是否正在运行?

amazon-web-services - 如何在具有持久卷的 EKS 集群之上设置可扩展的 Jenkins?

amazon-web-services - MacBook 上的 aws-azure-login 登录错误 : unknown option '--no-disable-extensions '

kubernetes - 按端口的入口后端规则?

kubernetes - 如何让 Kubernetes 物理卷部署在适当的区域中?

json - kubernetes 上的 Keycloak 和使用 log4j2 记录 json 布局格式