首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法阻止库伯内特斯·海母将路径发送到目标舱

无法阻止库伯内特斯·海母将路径发送到目标舱
EN

Stack Overflow用户
提问于 2020-12-10 22:27:13
回答 1查看 352关注 0票数 1

这看起来可能像一个复制,但并不是因为链接线程中的解决方案对我不起作用。

我已经配置了根据路径将请求发送到不同的豆荚

期望的行为:

public_ip/app1 -> pod1 1_ip:容器1_port/

public_ip/app2 -> pod2 2_ip:容器2_port/

public_ip/app3 -> pod3 3_ip:容器3_port/

实际行为:

public_ip/app1 -> pod1 1_ip:收集器1_port/app1

public_ip/app2 -> pod2 2_ip:容器2_port/app2

公用ip/app3 -> pod3 3_ip:收集器3_port/app3

所以我们在app1,app2,app3上得到了404 s。

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: some_name
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
    acme.cert-manager.io/http01-edit-in-place: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  ingressClassName: "nginx"
  tls:
  - hosts:
    - some.host
    secretName: tls-cafe-ingress
  rules:
  - host: some.host
    http:
      paths:
      - path: /app1(/|$)(.*)
        backend:
          serviceName: app1
          servicePort: 1234
      - path: /app2(/|$)(.*)
        backend:
          serviceName: app2
          servicePort: 2345
      - path: /app3(/|$)(.*)
        backend:
          serviceName: app3
          servicePort: 3456

问题是,一旦有正则表达式,就会生成路径规范。这可以通过检查Ingress的日志来看到:

代码语言:javascript
复制
k logs -n nginx-ingress ingress-pod-name

在这里,我们可以看到hat在日志中有对/appX的请求,并试图从本地html文件夹中提供这些请求,换句话说,yaml中定义的路径被忽略了。

如果将regexes从路径中移除,则路径将向下发送到目标荚,从而破坏应用程序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-21 10:08:29

有两种流行的K8s侵入控制器使用Nginx:

在这种情况下应用的关键区别是注释的使用。对于您使用的社区入口控制器:

nginx.ingress.kubernetes.io/<annotation_type>

对于nginxinc的用途:

代码语言:javascript
复制
nginx.org/<annoation_type> 

要查看更多关于差异的信息,请访问文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65243189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档