如何解决即使正在使用Ingress,我们是否仍需要将服务保留为nodePort?
您好Kubernetes专家
试图在这里获得更好的理解。
我使用常规部署yaml和服务yaml创建了一个部署 该服务是节点端口,然后我创建了一个入口并指向该服务
试图访问该服务,它在nginx入口的默认端口80上按预期工作。
接下来创建了相同的部署和服务文件。这里唯一插入节点端口的例外是选择ClusterIP。创建一个Ingress并指向服务。
试图访问该服务,它仅在nginx主页上失败,并且不对我的应用程序进行任何路由。
我知道nodeport是将应用程序暴露给外部世界的原因。 但是然后我使用Ingress来实现相同的功能。
即使使用Ingress,我们是否真的需要将服务设置为节点端口?
或者我的Yaml文件出了点问题。我尝试阅读有关此内容,但未获得任何相关解释。
谢谢, 阿尼什(Anish)
解决方法
首先,Service
和Ingress
资源在云提供商之间的工作方式略有不同。例如。在Google Cloud Platform和AWS上,使用NodePort
时需要使用Ingress
服务,但在OpenShift ClusterIP
正在工作。
大多数情况下,原因是 Load Balancer 位于群集的外部(在我工作的OpenShift环境中不是这种情况)。
在Google Cloud documentation中,使用NodePort
进行负载平衡,但如果您的负载平衡器是“原生容器”,则使用ClusterIP
。
在服务清单中,除非使用容器本机负载平衡,否则必须使用类型:NodePort。如果使用容器本机负载平衡,请使用类型:ClusterIP。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。