gpt4 book ai didi

kubernetes - 如何在具有一个80端口的一个入口中公开具有多个端口的服务

转载 作者:行者123 更新时间:2023-12-02 11:55:07 27 4
gpt4 key购买 nike

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

apiVersion: v1
kind: Service
metadata:
name: my-api
spec:
selector:
app: my-api
ports:
- name: api1
port: 3000
targetPort: 3000
- name: api2
port: 4000
targetPort: 4000
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: app-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
tls:
- hosts:
- example.com
secretName: app-tls
rules:
- host: example.com
http:
paths:
- path: /my-api(/|$)(.*)
backend:
serviceName: my-api
servicePort: 80
但是当我尝试到达 https://example.com/my-api时,它总是返回503状态代码。

最佳答案

servicePort: 80并不意味着nginx入口在80端口上提供服务。这实际上是后端服务上的端口,听起来您有2个端口:30004000
默认情况下,nginx入口 Controller 在端口80上提供服务,并且如果您还启用了TLS或/和443,则可以使用。就您而言,如果您想同时提供这两个API,则可以简单地分隔路径。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: app-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
tls:
- hosts:
- example.com
secretName: app-tls
rules:
- host: example.com
http:
paths:
- path: /my-api1(/|$)(.*)
backend:
serviceName: my-api
servicePort: 3000
- path: /my-api2(/|$)(.*)
backend:
serviceName: my-api
servicePort: 4000
✌️

关于kubernetes - 如何在具有一个80端口的一个入口中公开具有多个端口的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63386644/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com