kubernetes 我计划将所有工具部署在与部署微服务应用程序的集群相同的集群中,这通常是一个好的设计吗?

rlcwz9us  于 2023-04-11  发布在  Kubernetes
关注(0)|答案(2)|浏览(105)

另外,我将在EKS集群和Minikube上部署这个工具(在Minikube上没有部署像karpenter这样的工具)。这些工具将来自他们的官方Helm图表。
对于EC2托管组,我想知道我应该在哪个示例上部署它。
对于Minikube,我有16GB的RAM,但我计划很快升级它,32GB就足够了吗?

roejwanj

roejwanj1#

一般不能从minikube的设置来比较,因为在minikube中,您可能运行的是副本,而在EKS中,您期望生产工作负载达到规模高可用
如果你的Node去了整个集群,服务就会停下来,那么运行像minikube这样大小相同的单节点集群并不是一个好主意。
人们在节点池中运行多个节点,这样他们就可以分散他们的部署。

2skhul33

2skhul332#

TL;DR

这种单节点方法并不是一种好方法。但这并不是因为集群中只有一个节点本身就不好。问题是,您还不知道资源是如何消耗的,也不知道应该如何扩展资源。

完整答案

您的服务的整体组织看起来相当不错。问题是您从错误的Angular 看待您的基础架构。例如,当您说:
对于Minikube,我有16 GB的RAM,但我计划很快升级它,32 GB就足够了吗?
这是你应该解决的第一个问题:我的应用需要多少CPU和RAM?如何扩展?
当你在Minikube中运行时,你更关心的是让你的应用工作。只要你的集群正在运行,你可以测试功能,一切都很好。但是如果你已经过了这一步,并打算转向云基础设施,那么是时候开始了解你的系统需求了。
像EKS这样的服务都是关于autoscaling的。您可以设置所需的最小资源,集群应该使用的最大数量,以及向上和向下扩展的规则。
我建议你考虑的下一步是:

  • 我的资源实际消耗了多少CPU和内存?应该允许消耗的最大量是多少?
  • 哪种EC2示例更适合您的情况?根据您在上一步中观察到的情况,面向CPU的机器会更好;或者是记忆导向的。
  • 如何在整个节点中组织微服务?这里的关键是理解StatefulSet,DaemonSet和Deployment之间的差异,以及亲和力和拓扑约束等概念。

相关问题