2

您好 Kubernetes 专家,

试图在这里得到更好的理解。

我已经使用常规部署 yaml 和服务 yaml 创建了一个部署该服务是节点端口,然后我创建了一个入口并指向该服务

尝试访问该服务,它在 nginx 入口的默认端口 80 上按预期工作。

接下来创建相同的部署和服务文件。这里唯一的例外是节点端口是选择 ClusterIP。创建了一个 Ingress 并指向了该服务。

试图访问该服务,它只是在 nginx 主页上失败,并且没有对我的应用程序进行任何路由。

我知道 nodeport 是将应用程序暴露给外部世界的原因。但后来我使用 Ingress 来获得相同的功能。

即使我们使用Ingress,我们真的需要将服务设置为节点端口吗???

或者我的 yaml 文件出了什么问题。我试着阅读它,但无法得到任何相关的解释。

谢谢你,阿尼什

4

1 回答 1

2

首先,ServiceIngress资源在云提供商之间的工作方式略有不同。例如在 Google Cloud Platform 和AWS上,您需要在使用NodePort时使用服务,Ingress但在例如 OpenShiftClusterIP上工作。

大多数情况下,原因是负载均衡位于集群外部(在我工作的 OpenShift 环境中不是这种情况)。

Google Cloud 文档中,NodePort用于负载平衡,但ClusterIP如果您的负载平衡器是“容器原生”。

在服务清单中,您必须使用 type: NodePort ,除非您使用的是容器本机负载平衡。如果使用容器原生负载均衡,请使用类型:ClusterIP。

于 2020-08-13T19:34:01.220 回答