gpt4 book ai didi

nginx - 如何在入口处通过 HTTP 在多个端口上公开服务?

转载 作者:行者123 更新时间:2023-12-05 02:12:52 24 4
gpt4 key购买 nike

我在 Kubernetes 中有一项服务,我必须通过 HTTP 在多个端口上公开该服务。我使用 Nginx-Ingress 并且能够成功地通过端口 80 公开我的服务。(http://serviceA.example.com --> service-a:80)

但是我无法为 Http 使用与端口 80 不同的端口。我怎样才能让 nginx-ingress 也监听端口 7049。

我已经尝试在 nginx 服务上公开端口 7049,并向 nginx Controller 添加注释 nginx.org/listen-ports: "80,7049"。两者都不适合我。

我希望得到以下输出:

http://serviceA.example.com --> service-a:80

http://serviceA.example.com:7049 --> service-a:7049

入口服务.yml

apiVersion: v1
kind: Service
metadata:
name: nginx-ingress
namespace: nginx-ingress
spec:
externalTrafficPolicy: Local
type: LoadBalancer
ports:
- port: 80
targetPort: 80
protocol: TCP
name: http
- port: 443
targetPort: 443
protocol: TCP
name: https
selector:
app: nginx-ingress

我的服务.yml

apiVersion: v1
kind: Service
metadata:
name: my-service
labels:
app: my-service
spec:
ports:
- port: 80
targetPort: 80
protocol: TCP
name: http
- port: 443
targetPort: 443
protocol: TCP
name: https
- port: 7049
targetPort: 7049
name: symbols
selector:
app: my-service

我的服务入口.yml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-service
spec:
rules:
- host: myservice.example.com
http:
paths:
- path: /
backend:
serviceName: my-service
servicePort: 80

最佳答案

Ingress 对象用于为 HTTP 和 HTTPS 流量公开应用程序。

Ingress, added in Kubernetes v1.1, exposes HTTP and HTTPS routes from outside the cluster to services within the cluster. Traffic routing is controlled by rules defined on the Ingress resource.

what-is-ingress

您可以使用不同类型的路由,例如基于路径或基于主机名的路由,但 nginx 的端口号将为 80 或 & 443。

如果你想在不同于 80 和 443 的端口上公开你的应用程序,你需要使用 LoadBalancer类型服务

关于nginx - 如何在入口处通过 HTTP 在多个端口上公开服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55401373/

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