运行 与 GCE VM 相比,GKE 容器中的相同服务

Running the same service in a GKE container, compared to a GCE VM

这是一个关于 GKE 与 GCE 相比的一般性问题。如果在单个小型 GCE VM 上 运行ning 轻量级服务,尝试从相同大小实例上的单个 GKE 容器 运行ning 相同服务是否合理?还是集群管理的开销使这不可行?

细节:我正在使用小型 (f1-micro) GCE VM 为低流量网站提供服务。出于各种原因,我认为我会尝试将其从 apache/nginx 容器中提供服务,并在下面使用相同的硬件。但在实践中,我发现 GKE 甚至不会让你创建一个 f1-micro 实例集群,除非它至少有 3 个节点 - release notes 说这是为了有足够的内存来管理 pods.

我原以为相同的服务会占用类似的资源,无论是在 VM 中还是在容器中,但 GKE 的 3 节点限制让它听起来像简单地管理集群比服务我的站点占用更多内存第一名。是这种情况,还是限制意味着比我的服务更重? (作为参考,其实你可以创建一个3节点的f1-micro实例集群,然后将大小更改为1个节点,而且似乎运行正常,但我没有实际尝试过运行以这种方式提供服务。)

谢谢!

GKE 默认启用日志记录和监控,在您的集群中 运行s Fluentd 和 Heapster pods。这些占用了大量内存。即使禁用 logging/monitoring,您仍然需要 运行 Docker、Kubelet 和 DNS pod。这很快就消耗掉了 f1-micro 的 600MB。

我建议在 3 节点(或 1 节点)f1-micro 上使用 1 节点 g1-small 集群。每个节点的集群管理开销相对较小,因此您的服务仍然能够 运行 在相同(或更大)的占用空间中。但是,如果将大小调整为 1 的解决方法对您有用,那么顺其自然似乎没问题。