我可以看到 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/