选择GKE kubernetes集群的节点大小

时间:2016-12-02 04:31:43

标签: node.js docker kubernetes google-cloud-platform rancher

我们正在讨论生产GKE集群的最佳节点大小。

一般来说,拥有更多更小的节点或更小的节点会更好吗?

e.g。我们在以下两个选项之间进行选择

  1. 3 x n1-standard-2(7.5GB 2vCPU)
  2. 2 x n1-standard-4(15GB 4vCPU)
  3. 我们在这些节点上运行:

    • 弹性搜索群集
    • Redis群集
    • PHP API微服务
    • Node API微服务
    • 3 x单独节点/反应网站

1 个答案:

答案 0 :(得分:5)

我认为有两点需要考虑:

  • 复制
如果有足够的Pod运行服务,那么像Elasticsearch或Redis集群/ sentinel这样的服务只能提供可靠的冗余:如果你有2个节点,5个elasticsearch Pod,那么3个Pod将在一个节点上,2个在另一个:你最大复制将是2.如果你碰巧在同一个节点上有2个副本Pod,它会失败,你将失去整个索引。

[编辑]:如果你使用持久性块存储(这最好用于持久性,但设置很复杂,因为每个节点都需要自己的块,使得缩放变得棘手),你就不会失去整个索引' ,但如果您依赖本地存储,情况就是如此。

因此,更多节点更好。

  • 效果

显然,你需要足够的资源。较小的节点具有较低的资源,因此如果Pod开始获得大量流量,则它将更容易达到其极限并且Pod将被弹出。

Elasticsearch非常耗费内存。您必须确定运行所有这些Pod是否需要更大的节点。

最后,随着您的需求增长,您可能希望使用不同容量节点的混合,这些节点在GKE中将具有容量标签,可用于设置资源配额以及内存和CPU的限制。您还可以添加自己的标签,以确保某些Pod最终会出现在某些类型的节点上。