如何在Kubernetes上部署微服务Web应用程序?

时间:2018-04-12 09:47:00

标签: web-applications kubernetes microservices kubernetes-ingress

我想使用Angular和微服务后端创建一个Web应用程序,为一些REST API提供服务。然后我想在Kubernetes上部署一切。

让我们说申请会提供一些饮料(咖啡和茶)。为了简化,我们假设应用程序是完全无状态的,我希望2有微服务。

如果没有Kubernetes,我会这样做:

  1. Coffea服务 - / api / coffea端点的休息API

  2. 茶叶服务 - / api /茶点端点的休息API

  3. Nginx - 使用Angular应用程序(HTML / CSS / JS /图像等)和网关(代理/ api / coffea和/ api / tea端点)的静态内容

  4. 现在的问题是如何在Kubernetes中反映这一点?只需将所有内容部署在多个副本中,然后将Coffea和Tea服务作为NodePort公开并最终将Nginx公开为LoadBalancer就足够了吗?这是一种正确的方法吗?我应该使用Ingress而不是制作自己的nginx代理吗?如果是,那么如何使用Ingress Controller提供静态内容?

    提前致谢!

1 个答案:

答案 0 :(得分:1)

  

只需将所有内容部署在多个副本中就足够了,   然后将Coffea和Tea服务作为NodePort公开并最终公开   Nginx作为LoadBalancer?

可能是的,只要使您的应用程序正常工作就足够了,但最好的方法是将您的服务与集群IP一起使用并由Ingress公开。因为Ingress适合路由,但它不适合提供静态内容,因此您只能将Nginx用作静态内容的Web服务器。您的应用看起来像隐藏在Ingress后面的3项服务:

  1. 群集IP的Coffea服务
  2. 群集IP的茶叶服务
  3. Nginx服务,群集IP作为静态内容的Web服务器
  4. Here is一个很好的答案为什么最好将Nginx用作静态内容的服务。