考虑到以下情况:
部署这些服务的最佳实践是什么?
聚集在同一个kubernetes集群中:
这是个好办法吗?
发布于 2019-12-12 21:29:41
这里有一些误解。
关于微服务的术语是,不是关于的大小,而是更多的是一种组织上的东西。十年前,整个系统都是作为一个整体部署的,但现在建议团队不应超过5-8人,而这些团队应该按照自己的部署周期以自己的速度工作。所以单体必须被分解成更小的服务。这种体系结构模式中的服务被称为微服务,但并不是说它们是小的或大的。
您的所有服务都应该部署为Kubernetes上的Deployment,并且这些服务应该是无状态的。因此,即使是“主重服务”也应该是无状态的,并且可能扩展到多个副本。
您是正确的,因为只有需要才能公开到互联网上的服务才能被公开。
您的“繁重服务”是否应该使用Service类型的LoadBalancer或NodePort,实际上更多地取决于您正在使用的入口控制器。如果您使用的是https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer,则应该将其公开为NodePort类型。是的,其他应用程序应该有一个Service类型的ClusterIP。
值得注意的是,所有Kubernetes 服务对象都将为副本提供负载平衡功能。服务类型(例如LoadBalancer、NodePort或ClusterIP )更多的是关于如何公开服务。
发布于 2019-12-12 21:09:39
是的,您是对的,好的方法是使用负载均衡器来管理来自公众的低流量和高流量。当定义最小和最大豆荚时,会自动增加大流量下的豆荚数,对低流量的豆荚数会自动减少。对于那些你不想向公众公开的服务,让它们成为ClusterIP。
发布于 2019-12-14 16:46:03
对于其他服务,可以使用k8s水平Pod AutoScaling。在这种情况下,豆荚数量将根据流量进行缩放。它特别适用于突如其来的激增,你可以确保资源的正确使用。
为了方便地集成微服务并管理其中的流量,您可以使用Istio。
https://stackoverflow.com/questions/59312436
复制相似问题