我想使用Angular和微服务后端创建一个Web应用程序,为一些REST API提供服务。然后我想在Kubernetes上部署一切。
让我们说申请会提供一些饮料(咖啡和茶)。为了简化,我们假设应用程序是完全无状态的,我希望2有微服务。
如果没有Kubernetes,我会这样做:
Coffea服务 - / api / coffea端点的休息API
茶叶服务 - / api /茶点端点的休息API
Nginx - 使用Angular应用程序(HTML / CSS / JS /图像等)和网关(代理/ api / coffea和/ api / tea端点)的静态内容
现在的问题是如何在Kubernetes中反映这一点?只需将所有内容部署在多个副本中,然后将Coffea和Tea服务作为NodePort公开并最终将Nginx公开为LoadBalancer就足够了吗?这是一种正确的方法吗?我应该使用Ingress而不是制作自己的nginx代理吗?如果是,那么如何使用Ingress Controller提供静态内容?
提前致谢!
答案 0 :(得分:1)
只需将所有内容部署在多个副本中就足够了, 然后将Coffea和Tea服务作为NodePort公开并最终公开 Nginx作为LoadBalancer?
可能是的,只要使您的应用程序正常工作就足够了,但最好的方法是将您的服务与集群IP一起使用并由Ingress公开。因为Ingress适合路由,但它不适合提供静态内容,因此您只能将Nginx用作静态内容的Web服务器。您的应用看起来像隐藏在Ingress后面的3项服务:
Here is一个很好的答案为什么最好将Nginx用作静态内容的服务。