gpt4 book ai didi

kubernetes - 入口、重写目标、前端和 API 相同的 URL。版本 0.22.0+

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

我想把这样的设置放在一起:

  • example.com #frond end
  • example.com/api
  • example.com/authentication

很明显,他们每个人都分开了应用程序,应该能够继续他们自己的道路,例如。 http://example.com/api/v1/test?v=ok

现在我有一个像这样的 yaml:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: frontend-service
servicePort: 80
- path: /api(/|$)(.*)
backend:
serviceName: backend-service
servicePort: 80
- path: /authentication(/|$)(.*)
backend:
serviceName: identityserver-service
servicePort: 80

/api 和/authentication 的行为符合我的要求,但前端的子路径不起作用。例如,找不到 http://example.com/css/bootstrap.css

到目前为止我已经尝试过

1- 在前端路径的与处添加(/|$)(.*)

2- 添加前端路径的副本,具有相同的后端和端口以及 /.*

他们都没有解决问题。

这是描述结果:

Name:             test-ingress
Namespace: default
Address: 127.0.0.1
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
*
/ frontend-service:80 (10.1.80.38:80,10.1.80.43:80,10.1.80.50:80)
/api(/|$)(.*) backend-service:80 (10.1.80.39:80,10.1.80.42:80,10.1.80.47:80)
/authentication(/|$)(.*) identityserver-service:80 (10.1.80.40:80,10.1.80.41:80,10.1.80.45:80)
Annotations: nginx.ingress.kubernetes.io/rewrite-target: /$2
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal UPDATE 43s (x14 over 13h) nginx-ingress-controller Ingress default/test-ingress

PS:我发现了一些似乎早于版本 0.22.0 并且不再有效的答案。 kubernetes ingress with multiple target-rewrite

最佳答案

您的问题在于不正确的正则表达式。如果启用了多行标志,则 $ 运算符匹配字符串的末尾或行的末尾。对于第一组,您正在捕获 /$ 但您的字符串没有结束并且不匹配。

我测试了这个并且它适用于这个正则表达式:

 paths:
- path: /()(.*)
backend:
serviceName: frontend-service
servicePort: 80

关于kubernetes - 入口、重写目标、前端和 API 相同的 URL。版本 0.22.0+,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63411774/

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