首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将微服务部署到kubernetes的最佳实践

将微服务部署到kubernetes的最佳实践
EN

Stack Overflow用户
提问于 2019-12-12 20:44:12
回答 3查看 212关注 0票数 0

考虑到以下情况:

  • 我有一个主要的重型服务和许多其他的小型微服务
  • 小微服务只消耗重型服务
  • 只有主要的重型服务才会暴露在公共互联网上。

部署这些服务的最佳实践是什么?

聚集在同一个kubernetes集群中:

  • 重型服务 LoadBalancer
  • 另一个小微服务作为ClusterIP (以保护他们免受公共互联网)。

这是个好办法吗?

EN

回答 3

Stack Overflow用户

发布于 2019-12-12 21:29:41

这里有一些误解。

关于微服务的术语是,不是关于的大小,而是更多的是一种组织上的东西。十年前,整个系统都是作为一个整体部署的,但现在建议团队不应超过5-8人,而这些团队应该按照自己的部署周期以自己的速度工作。所以单体必须被分解成更小的服务。这种体系结构模式中的服务被称为微服务,但并不是说它们是小的或大的。

您的所有服务都应该部署为Kubernetes上的Deployment,并且这些服务应该是无状态的。因此,即使是“主重服务”也应该是无状态的,并且可能扩展到多个副本。

您是正确的,因为只有需要才能公开到互联网上的服务才能被公开。

您的“繁重服务”是否应该使用Service类型的LoadBalancerNodePort,实际上更多地取决于您正在使用的入口控制器。如果您使用的是https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer,则应该将其公开为NodePort类型。是的,其他应用程序应该有一个Service类型的ClusterIP

值得注意的是,所有Kubernetes 服务对象都将为副本提供负载平衡功能。服务类型(例如LoadBalancerNodePortClusterIP )更多的是关于如何公开服务。

票数 3
EN

Stack Overflow用户

发布于 2019-12-12 21:09:39

是的,您是对的,好的方法是使用负载均衡器来管理来自公众的低流量和高流量。当定义最小和最大豆荚时,会自动增加大流量下的豆荚数,对低流量的豆荚数会自动减少。对于那些你不想向公众公开的服务,让它们成为ClusterIP

票数 1
EN

Stack Overflow用户

发布于 2019-12-14 16:46:03

对于其他服务,可以使用k8s水平Pod AutoScaling。在这种情况下,豆荚数量将根据流量进行缩放。它特别适用于突如其来的激增,你可以确保资源的正确使用。

为了方便地集成微服务并管理其中的流量,您可以使用Istio。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59312436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档