作者:Daniel Weibel
译者:邱世达
审校:孙海洲
英文原文:https://learnk8s.io/kubernetes-node-size/
编者按
本文从多个维度分别阐述了使用更少的大节点与使用更多的小节点来组建 Kubernetes 集群各自的优劣,并结合实践经验给出了选择工作节点数量和大小的通用方法。
引言
欢迎来到 Kubernetes 学习园地,这是一个常规专栏,收集整理了我们在线上以及线下研讨会上由 Kubernetes 专家回答的最有意思的问题。
今天问题的答案由 Daniel Weibel 给出。Daniel 是一名软件工程师,同时也是 Learnk8s 的讲师。
在创建 Kubernetes 集群时,您首先会想到的问题之一就是:“我应该创建何种类型的工作节点,以及应该创建多少个?”
如果您正在搭建内部集群,是应该购买最新一代的超级服务器,还是使用数据中心里的十几台旧机器呢?
或者您使用的是托管 Kubernetes 服务,例如 Google Kubernetes Engine (GKE),是应该使用 8 个 n1-standard-1
实例,还是应该使用 2 个 n1-standard-4
实例来实现您想要的计算能力呢?
集群容量
一般来说,Kubernetes 集群可以被视为是将一组单个节点抽象为一个大的“超级节点”。这个超级节点的总计算容量(就 CPU 和内存而言)是所有组成节点资源容量的总和。您可以采用多种不同的资源配置方式实现集群所需的目标容量。
例如,假如您需要一个总容量为 8 个 CPU 和 32GB 内存的集群。
例如,因为要在集群上运行的应用程序需要此数量的资源。
以下是实现集群的两种可能方法:
通过这两种方式构建的集群拥有相同的资源容量,但是一种是使用 4 个较小的节点,而另一种是使用 2 个较大的节点。
究竟哪种配置方式更好呢?
为了解决这个问题,让我们对比下二者(即更少的大节点与更多的小节点)各自的优缺点。
请注意,本文中的“节点”始终代指工作节点。主节点数量和大小的选择是完全不同的主题。
更少的大节点
这方面最极端的一个例子就是由单个工作节点提供整个集群的计算容量。
在上面的示例中,这将是一个具有 16 个 CPU 和 16GB 内存的单个工作节点。
使用大节点的优势