Kubernetes 如何使用一个80端口在一个入口中公开多端口服务

Kubernetes 如何使用一个80端口在一个入口中公开多端口服务,kubernetes,kubernetes-ingress,nginx-ingress,Kubernetes,Kubernetes Ingress,Nginx Ingress,我想在一个80端口中通过入口公开我的两个API服务 apiVersion:v1 种类:服务 元数据: 名称:我的api 规格: 选择器: 应用程序:我的api 端口: -姓名:api1 港口:3000 目标港:3000 -姓名:api2 港口:4000 目标港:4000 --- apiVersion:networking.k8s.io/v1beta1 种类:入口 元数据: 名称:应用程序入口 注释: nginx.ingres.kubernetes.io/rewrite-target://2美元

我想在一个80端口中通过入口公开我的两个API服务

apiVersion:v1 种类:服务 元数据: 名称:我的api 规格: 选择器: 应用程序:我的api 端口: -姓名:api1 港口:3000 目标港:3000 -姓名:api2 港口:4000 目标港:4000 --- apiVersion:networking.k8s.io/v1beta1 种类:入口 元数据: 名称:应用程序入口 注释: nginx.ingres.kubernetes.io/rewrite-target://2美元 规格: tls: -主持人: -example.com secretName:app tls 规则: -主持人:example.com http: 路径: -路径:/my api(/|$)(*) 后端: serviceName:MyAPI 服务端口:80
但是当我试图到达
https://example.com/my-api
,它总是返回503状态代码。

servicePort:80
并不意味着nginx入口正在端口
80
上服务。这实际上是后端服务上的端口,听起来您有两个端口:
3000
4000

默认情况下,nginx入口控制器在端口
80
上工作,如果您也启用了TLS或/和
443
。在您的情况下,如果您想为这两个API提供服务,您可以简单地分离路径

apiVersion:networking.k8s.io/v1beta1 种类:入口 元数据: 名称:应用程序入口 注释: nginx.ingres.kubernetes.io/rewrite-target://2美元 规格: tls: -主持人: -example.com secretName:app tls 规则: -主持人:example.com http: 路径: -路径:/my-api1(/|$)(.*) 后端: serviceName:MyAPI 服务端口:3000 -路径:/my-api2(/|$)(.*) 后端: serviceName:MyAPI 服务端口:4000
✌️

servicePort:80
并不意味着nginx入口服务于端口
80
。这实际上是后端服务上的端口,听起来您有两个端口:
3000
4000

默认情况下,nginx入口控制器在端口
80
上工作,如果您也启用了TLS或/和
443
。在您的情况下,如果您想为这两个API提供服务,您可以简单地分离路径

apiVersion:networking.k8s.io/v1beta1 种类:入口 元数据: 名称:应用程序入口 注释: nginx.ingres.kubernetes.io/rewrite-target://2美元 规格: tls: -主持人: -example.com secretName:app tls 规则: -主持人:example.com http: 路径: -路径:/my-api1(/|$)(.*) 后端: serviceName:MyAPI 服务端口:3000 -路径:/my-api2(/|$)(.*) 后端: serviceName:MyAPI 服务端口:4000 ✌️