假设您正在运行带有3个节点的kubernetes群集。
- 1主人
- 2工人
主人仅将POD安排到工作节点,而不是默认情况下。例如。我有2个具有Xeon E5-1650 V3和256GB RAM的工人节点,并且在我的群集上运行较少的豆荚(例如最多20)。有什么原因为什么我应该以与工人节点相同的方式扩展主节点的资源,或者我只能为主人使用经济机器?
首先,让我们谈谈主节点中的组件。我将它们分为以下各节。
状态
- etcd:它是集群中真理的来源。
无状态
- kube-abiserver:这是状态(etcd)的前端
其他
-
kube-controller-manager:如果需要状态===当前状态
-
kube-scheduler:获取PODS的精确节点
-
kubelet
-
kube-proxy
附加组件
- kube-dns
- kubernetes-dashboard
所有这些组件确保工人节点具有所需的群集状态,如果不是,它们将确保当前状态=所需状态。
现在,所有最终用户都将要求您的应用程序(业务逻辑) 这是一台豆荚或一堆豆荚,因此我们需要确保它们根据资源利用率(CPU,RAM,网络等)水平扩展。
主节点没有承担此责任,因此我们不必担心资源利用率(尽管如此,它需要拥有足够的资源才能生存)。因此,没有一个单点无法编排工人节点。为了使群集更具耐败性,我们将需要创建其他ETCD节点和ETCD群集。
tldr
工人节点:我们担心水平可扩展性。
主节点:我们担心高可用性
我已附上链接以进行进一步研究kubernetes-components