我们计划为我们的应用程序服务构建一个小型 docker 集群。我们考虑为 ha 使用 2 个 master vms,1 个 consul(如果我们选择 Swarm)和 5-10 个用于容器的主机。我们还没有决定使用什么——Docker Swarm 或 Kubernetes。
所以问题是 Swarm 和 Kubernetes 的“硬件”要求(CPU 内核、RAM)管理器可以满足哪些“硬件”要求来编排这个小型集群。
我们计划为我们的应用程序服务构建一个小型 docker 集群。我们考虑为 ha 使用 2 个 master vms,1 个 consul(如果我们选择 Swarm)和 5-10 个用于容器的主机。我们还没有决定使用什么——Docker Swarm 或 Kubernetes。
所以问题是 Swarm 和 Kubernetes 的“硬件”要求(CPU 内核、RAM)管理器可以满足哪些“硬件”要求来编排这个小型集群。
只是为了澄清一下 Robert 关于 Kubernetes 的文章。如果您想拥有多达 5 台机器来运行您的应用程序,那么即使是 1 核虚拟机(GCE 上的 n1-standard-1)也应该足够了。正如罗伯特所说,您可以使用 2 核虚拟机处理 10 节点集群。官方推荐请看: https ://kubernetes.io/docs/setup/best-practices/cluster-large/
但是,请注意,我们的主组件的资源使用与您希望在集群上运行的 pod(容器)的数量更相关。如果要说个位数,即使是 n1-standard-1 GCE 对于 10 节点集群也应该足够了。但是在 <=10 个节点集群的情况下,使用 n1-standard-2 绝对更安全。
至于 HA,我同意 Robert 的观点,即拥有 3 个主 VM 优于 2 个。Etcd(这是我们的后备存储)需要所有已注册副本的一半以上才能正常工作,因此如果有 2 个实例,所有其中需要启动(这通常不是您的目标)。如果您有 3 个实例,则其中一个可能已关闭。
如果您对 Kubernetes 有更多疑问,请告诉我。
对于 Kubernetes,单个 2 核虚拟机(例如 GCE 上的 n1-standard-2)可以处理 5 个节点,可能有 10 个。如果要运行 HA 主配置,您可能需要 3 个节点来为etcd 实例,您可能希望配置稍大的实例(如 n1-standard-4)以解决集群 etcd 的开销。