什么命令可以告诉我由 helm 图表部署的集群将使用多少个节点?



我有一个预制的掌舵图,我希望将其安装到 Kubernetes 集群中。

我可以运行什么命令来确定需要多少个节点?我知道我可以利用

kubectl get pods -o wide   

列出所有 pod,但我的理解是理论上多个 pod 可以在单个节点内运行。

除了学习之外,我问这个问题的一个原因是因为我正在使用 DigitalOcean Managed Kubernetes 服务,该服务要求我在通过 helm 部署之前指定我的集群将使用多少个节点。

这在很大程度上取决于您的集群和图表配置,并且没有一个简单的答案。

给定图表,您可以要求它生成将发送到集群的 Kubernetes YAML

helm template . -f ...yaml --set option=value

使用计划与helm install一起使用的相同-f--set选项来提供部署时设置。

在该输出中,您要查找最有可能的DeploymentStatefulSet对象;在每个输出中,您都在寻找其replicas:设置,而在template:中,resources: { requests: { ... }}。 如果将其相乘,您应该能够获得图表需要在集群上调度的总内存和 CPU。

">

节点"没有固定的大小,这取决于您在哪种"硬件"上运行它。 在 AWS 上,典型的实例类型选项范围从 1 核和 2 GB RAM 到 64 核和 512 GB RAM。 如果您确定应用程序需要 16 个内核和 64 GB RAM,如果它足够大,则可以放在一个节点上,或者可能需要四个。 还需要确定是否可以使用群集自动缩放程序(在这种情况下,固定数量的节点不是约束(,以及群集中希望有多少余量能够使节点脱机以进行升级或运行其他工作负载。

使用电子表格应该不会太难,但它在很大程度上取决于特定的图表、安装它的选项、您考虑使用的节点大小以及其他操作限制。 没有一个内置命令将"Helm 图表名称"转换为"节点数"。

首先,这始终是你的判断。假设此应用程序需要至少 300 milicore cpu 1GB RAM 最大 2 CPU 4GB RAM,那么您的群集节点至少应为 4 cpu 16GB RAM 才能始终运行此应用程序相当稳定。您的节点中将有另一个应用程序始终保持节点 CPU 平均(不是最低(低于 %50,使您的集群稳定且具有成本效益。

Kubernetes 调度程序总是试图平衡集群之间的资源利用率,但绝不会杀死 Pod 并在其他节点上重新调度以更好地分配工作负载。如果您只打算部署 1 个具有 3 个副本的应用程序,则可以创建 3 个节点集群以使您的应用程序高度可用,Kubernetes 将在节点之间分配负载。如果你想了解 Kubernetes 如何分配工作负载,那么你可以创建具有更大资源的 3+ 节点,并尝试部署具有不同资源使用情况的 3+ 应用程序。

最新更新