我想在基于微服务的体系结构中而不是整体设计下一个项目。通常将微服务定义为损害服务的一组端点(即,通用的依赖关系,功能等),还是每个端点都是自己的服务?
我以前使用过Serverless Framework,它定义了每个端点及其依赖项,并将其打包到Lambda / FaaS中。在Kubernetes中,这是否类似于每个端点都生活在其自己的Pod中?
我在思考从头开始设计可以利用自动缩放,微服务和按使用付费的新项目的理想方法时遇到了一些麻烦,但是没有找到很多有关它的信息。 / p>
对此主题有何想法/资源?
答案 0 :(得分:3)
我建议您从scaling的角度开始。将应扩展的应用程序与不应该扩展的应用程序分开。那就是Pods。
在考虑容错和负载平衡的情况下定义应用之间的连接。定义自动发现策略。这就是Services的用途。
考虑如何将您的应用暴露给外界。这就是Ingress的目的。
考虑如何重新启动和更新应用程序。 Deployments就是这样做的。
考虑集群安全性。这是Network policies发挥作用的地方。印花布项目可提供更加灵活的solution。
考虑整个群集的可用性。 Kubernetes HA clusters
在特殊情况下,您可能需要使用DaemonSets,Jobs,CronJobs和StatefulSets。
如果您决定更深入,请查看官方网站的Kubernetes concepts部分中的其他文章。