具有大量状态集和服务的 Kubernetes 集群的架构建议

Architectural suggestion for Kubernetes cluster with huge number of statefulsets and services

我需要有关在 Kubernetes 集群中管理数千个服务和状态集(1 个 pod)的建议。

每个 pods 至少需要 500mb 的内存,并且这些状态集并不总是启动,它会关闭一段时间 & 运行 一段时间。

我应该使用什么样的节点和什么样的工具来降低账单?

谢谢

您可以使用 https://cloud.google.com/kubernetes-engine/docs/how-to/preemptible-vms,但请注意,您的应用程序应设计为处理由可抢占节点轮换引起的潜在中断,即应用程序 应该是容错的。

您还可以使用集群自动缩放器https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-autoscaler,这样您的集群大小将适应实际需求。

您需要使用的节点类型取决于您的 pods 将执行的工作负载类型。 https://cloud.google.com/compute/docs/machine-types

您始终通过最大化资源利用率来减少集群的计费。

Cluster Autoscaller 将帮助您实现同样的目标。根据负载增加/减少集群中的节点数。 https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler

您还可以通过使用抢占式 VM承诺使用折扣

来减少您的账单

Preemptible VM's 因为 Kubernetes 集群中的所有节点都可以被类似的 VM 替换。 (牛不是宠物!)https://cloud.google.com/compute/docs/instances/preemptible

承诺使用折扣 如果您承诺长期使用 VM,GCP 还会降低 VM 的成本 https://cloud.google.com/compute/docs/instances/signing-up-committed-use-discounts