Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我是否需要Kubernetes吊舱中用于web应用的nginx容器?_Nginx_Kubernetes - Fatal编程技术网

我是否需要Kubernetes吊舱中用于web应用的nginx容器?

我是否需要Kubernetes吊舱中用于web应用的nginx容器?,nginx,kubernetes,Nginx,Kubernetes,这是一个非常基本的问题,但我不知道答案。我有一个应用程序,应该有三个容器-前端,后端和数据库容器 现在,它们服务于不同的端口,从不同的端口请求数据 所以我读到在一个吊舱里,它是一个本地网络,容器可以通信。nginx也参与其中吗?我的理解是,由于pod管理容器之间的通信,因此它不起作用。我的理解是,nginx仅用于服务外部请求和跨相同容器集群的负载平衡 如果有人能帮助我理解这一点,我将不胜感激 您可以在不同的POD中部署FE、BE和DB—不同的部署可以分别扩展/管理它们。即使在不同的名称空间中也更

这是一个非常基本的问题,但我不知道答案。我有一个应用程序,应该有三个容器-前端,后端和数据库容器

现在,它们服务于不同的端口,从不同的端口请求数据

所以我读到在一个吊舱里,它是一个本地网络,容器可以通信。nginx也参与其中吗?我的理解是,由于pod管理容器之间的通信,因此它不起作用。我的理解是,nginx仅用于服务外部请求和跨相同容器集群的负载平衡

如果有人能帮助我理解这一点,我将不胜感激

您可以在不同的POD中部署FE、BE和DB—不同的部署可以分别扩展/管理它们。即使在不同的名称空间中也更好。 为BE&DB创建ClusterIP类型的k8s。使用k8s DNS解析器访问它们-service-name.namespace.svc.cluster.local 为FE创建LoadBalancer或NodePort类型的k8s,将其暴露在k8s之外。使用负载平衡器地址或节点ip:节点端口访问它。 您可以在不同的POD中部署FE、BE和DB—不同的部署可以分别扩展/管理它们。即使在不同的名称空间中也更好。 为BE&DB创建ClusterIP类型的k8s。使用k8s DNS解析器访问它们-service-name.namespace.svc.cluster.local 为FE创建LoadBalancer或NodePort类型的k8s,将其暴露在k8s之外。使用负载平衡器地址或节点ip:节点端口访问它。
Nginx可以为您的静态网页web应用提供服务,但不能连接DB。Nginx将是一个预先代理,就像是web应用程序/字体端的入口控制器一样。字体端和后端将使用ClusterIP类型的服务进行通信。Fontend服务将是一种节点端口服务。

Nginx可以为您的静态网页web应用提供服务,但不能为connect DB提供服务。Nginx将是一个预先代理,就像是web应用程序/字体端的入口控制器一样。字体端和后端将使用ClusterIP类型的服务进行通信。Fontend服务将是一种节点端口服务。

我建议不要将这3个容器放在同一个pod中。如果这样做,您将失去许多优势,比如能够独立扩展服务,或者能够在不中断整个堆栈的情况下更新一个组件。吊舱只能用于将紧密耦合的容器分组。正如《基本法》所说:

Pod表示一个部署单元:一个Pod的单个实例 Kubernetes中的应用程序,它可能由单个 容器或少量紧密耦合且 共享资源


您应该采用的方法是为每个组件制作一个Pod,并将这些组件放在一个Pod后面,以便Pod可以相互交互。一旦您对这样做感到满意,您还应该查看并允许您扩展应用程序,并在应用程序出现故障时提供恢复。

我建议不要将这3个容器放在同一个pod中。如果这样做,您将失去许多优势,比如能够独立扩展服务,或者能够在不中断整个堆栈的情况下更新一个组件。吊舱只能用于将紧密耦合的容器分组。正如《基本法》所说:

Pod表示一个部署单元:一个Pod的单个实例 Kubernetes中的应用程序,它可能由单个 容器或少量紧密耦合且 共享资源


您应该采用的方法是为每个组件制作一个Pod,并将这些组件放在一个Pod后面,以便Pod可以相互交互。一旦您对这样做感到满意,您还应该查看并允许您扩展应用程序,并在应用程序出现故障时提供恢复。

除了@Max Lobur answer,这里还需要提到Kubernetes资源,这是一种在集群外部公开前端应用程序服务并管理对它们的访问的方法。实际上,入口是一个逻辑资源元素,它通过描述一组用于流量管理的规则。因此,入口控制器可以通过提供L7网络设施(如:负载平衡、SSL终止和嵌套应用程序服务的HTTP/HTTPS流量路由)发挥API网关的作用。您可以考虑查看最流行的解决方案:等等,

< P>除了@ Max Lobur回答之外,在这里还提到Kubernetes资源也是重要的,这是一种如何在集群之外公开前端应用服务并管理对它们的访问的方法。实际上,入口是一个逻辑资源元素,它通过描述一组用于流量管理的规则。因此,入口控制器可以通过提供L7网络设施发挥API网关的作用,如:负载平衡、S
嵌套应用程序服务的SL终止和HTTP/HTTPS流量路由。你可能会考虑看最流行的解决方案:等等,虽然你的理解方式很难理解,但没有什么可怕的问题。可怕的是前端、后端和db都在同一个pod中。没有可怕的问题,尽管你的提问方式很难理解。糟糕的是前端、后端和db都在同一个pod中。