是否最好有一个Kubernetes集群,其中4个节点具有资源4个CPU,16 GB RAM或2个节点集群,资源8个CPU和32 GB RAM?
如果他们在Kubernetes概念中对垂直缩放进行水平缩放,用户将获得什么好处。我的意思是假设我们想要运行4个pod,最好是使用2个节点集群,资源8个CPU和32 GB RAM或4个节点集群,资源4个CPU和16 GB RAM。
水平自动缩放
优点
由于您正在扩展VM或/和服务器,因此可能拥有更多容量。您实际上是在扩展您的群集。
从理论上讲,由于您将工作负载分散到不同的物理服务器,因此冗余更多。
缺点
从理论上讲,它的速度较慢。这意味着在同一台机器中配置服务器和虚拟机比使用pod /容器更慢(用于垂直自动扩展)
此外,您需要在扩展时配置服务器/ VM和容器/ pod。
使用普通的裸机基础设施/服务器不能很好地工作。
垂直自动缩放
优点
理论上,如果您配置了大型服务器,则自动缩放应该更快。(另外,响应更快)
如果您拥有数据密集型应用程序,则可能会受益于在同一台计算机上运行的工作负载。
如果你有一些额外的未使用的裸机服务器,那就太棒了。
缺点
如果您配置了大型服务器,则可能会浪费大量资源。
您需要更精确地计算工作负载的容量(这可能是pro或con,具体取决于您的看法)
如果您有一组固定的物理服务器,则会遇到CPU,存储,内存等的最终限制。
通常,是将水平和垂直自动缩放组合在一起。
一般来说,我会推荐更大的节点,因为它更容易在它们上面放置容器。
如果你有一个pod resources: {requests: {cpu: 2.5}},你只能将其中一个放在4核节点上,两个放在2x 4核节点上,但你可以将3放在一个8核节点上。
+----+----+----+----+ +----+----+----+----+
|-WORKLOAD--| | |-WORKLOAD--| |
+----+----+----+----+ +----+----+----+----+
如果您总共分配了16个内核并分配了8个内核,则可能没有单个节点具有4个4-CPU节点的2个以上内核,但您可以保证能够将该容器与2个8-CPU节点相匹配。
+----+----+----+----+ +----+----+----+----+
|-- USED -| | |-- USED -| |
+----+----+----+----+ +----+----+----+----+
+----+----+----+----+ +----+----+----+----+
|-- USED -| | |-- USED -| |
+----+----+----+----+ +----+----+----+----+
Where |-WORKLOAD--| goes?
------- USED ------ | |
---|---|
------- USED ------ |
但是,在您谈论的特定规模上,我有点担心运行双节点群集:如果单个节点死亡,您的群集容量会减少一半。除非我知道我正在运行需要2.0 CPU或更多CPU的多个pod,否则我可能会倾向于4节点设置,以便在节点发生故障时更具弹性(实际上确实会发生这种情况)。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。