我们可以根据CPU或内存扩展Kubernetes集群中的节点,我们可以根据pod压力(每个节点的pod数量)自动扩展节点吗?在我的许多案例中,CPU和内存不是最需要的资源,但每个节点的Pod数量通常处于压力之下。
zvokhttg1#
在Kubernetes中,没有基于每个节点的Pod数量提供自动伸缩机制的选项。你可以使用Cluster Autoscaler。群集自动缩放器不依赖于负载度量。相反,它基于调度模拟和声明的Pod请求。这可以在需要更多pod时创建新节点,并在没有更多pod可供调度时缩减节点,从而有效地平衡每个节点的pod数量。有关群集自动缩放的详细信息,请参阅Daniele Polencic撰写的Gitlink和blog如果您在GKE中查找此功能,请参阅official doc- GKE和Cluster Autoscaler如果您将来需要此功能来实现此功能,您也可以提出问题请求here。
编辑:
@xsqian:根据您的评论,您正在使用AWS m5.2xlarge示例。每个EKS示例的最大Pod数实际上在此eni-max-pods git link中列出formula用于定义每个示例的最大Pod数量如下:N *(M-1)+2地点:
m5.2xlarge
此弹性网络接口文档中每个示例类型的N和M的值基于此,当您使用m5.2xlarge时,pod限制仅为58,而当您使用两个节点时,pod限制仅为116。这是一个软限制,只有你不能添加超过116的pod,如果你试图添加,那么这将进入挂起状态。但建议从2021年8月起,现在可以使用最新的AWS CNI插件增加节点上的最大Pod,如本amazon-vpc-cni-increases-pods-per-node-limits中所述,并参考本EKS user guide。
N
M
1条答案
按热度按时间zvokhttg1#
在Kubernetes中,没有基于每个节点的Pod数量提供自动伸缩机制的选项。你可以使用Cluster Autoscaler。群集自动缩放器不依赖于负载度量。相反,它基于调度模拟和声明的Pod请求。这可以在需要更多pod时创建新节点,并在没有更多pod可供调度时缩减节点,从而有效地平衡每个节点的pod数量。有关群集自动缩放的详细信息,请参阅Daniele Polencic撰写的Gitlink和blog
如果您在GKE中查找此功能,请参阅official doc- GKE和Cluster Autoscaler
如果您将来需要此功能来实现此功能,您也可以提出问题请求here。
编辑:
@xsqian:根据您的评论,您正在使用AWS
m5.2xlarge
示例。每个EKS示例的最大Pod数实际上在此eni-max-pods git link中列出formula用于定义每个示例的最大Pod数量如下:
N *(M-1)+2
地点:
此弹性网络接口文档中每个示例类型的
N
和M
的值基于此,当您使用
m5.2xlarge
时,pod限制仅为58,而当您使用两个节点时,pod限制仅为116。这是一个软限制,只有你不能添加超过116的pod,如果你试图添加,那么这将进入挂起状态。但建议从2021年8月起,现在可以使用最新的AWS CNI插件增加节点上的最大Pod,如本amazon-vpc-cni-increases-pods-per-node-limits中所述,并参考本EKS user guide。