gpt4 book ai didi

kubernetes - Kubernetes入口-访问Web服务容器子路径

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

我有一个在容器中运行的Web服务(dashboard-service)。该服务在以下位置提供所需的网页:
http://192.168.1.100:3000/page2/
http://192.168.1.100:3000/page3/
等等
我在kubernetes集群中运行了dashboard-service,并且想要使用入口来控制访问,如下所示:
这样我就可以访问:http://192.168.1.100:3000/dashboard/1
http://192.168.1.100:3000/dashboard/2
等等
我尝试了以下入口设置,但收到“404 Not Found”
有什么方法可以将路由添加到子路径?

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-service
namespace: db
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /dashboard/
pathType: Prefix
backend:
service:
name: dashboard-service
port:
number: 3000

最佳答案

首先,入口没有下面的配置

  backend:
service:
name: dashboard-service
port:
number: 3000
您应该改用next。
  - backend:
serviceName: dashboard-service
servicePort: 3000
接下来,我建议您安装,配置和使用 nginx ingress controller而不是常规的kubernetes-ingress。另请注意,如果您使用nginx Controller ,则注释应为 nginx.ingress.kubernetes.io/rewrite-target:,而不是 ingress.kubernetes.io/rewrite-target:按照 NGINX Ingress Controller rewrite documentation,您的入口应该像
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /page$2
name: dashboard-service
namespace: db
spec:
rules:
http:
paths:
- backend:
serviceName: dashboard-service
servicePort: 3000
path: /dashboard(/|$)(.*)
我在这里为您测试了正则表达式和捕获组: https://regex101.com/r/3zmz6J/1

关于kubernetes - Kubernetes入口-访问Web服务容器子路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64265566/

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