【问题标题】:Traslate nginx ingress rule with snippet to IstioTraslate nginx 入口规则与片段到 Istio
【发布时间】:2021-05-12 06:19:21
【问题描述】:

我有一个 nginx 入口控制器并与他公开服务,我们计划将 Istio 更改为入口流量。

我有一个包含 sn-p 的入口规则:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/server-snippet: |
      location  ~* "^/" {
        proxy_pass "https://127.0.0.1";
        proxy_set_header Host $http_x_forwarded_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_connect_timeout 10s;
        proxy_send_timeout 120s;
        proxy_read_timeout 120s;
        client_max_body_size 300m;
      }

  name: foo
spec:
  ingressClassName: bar
  rules:
    - host: foo.bar
  tls:
  - hosts:
    -  foo.bar

这个入口将http_x_forwarded_host复制到Host并发送到nginx入口。

有什么想法可以将此规则转换为 istio? 谢谢。

马可

【问题讨论】:

    标签: istio nginx-ingress istio-gateway


    【解决方案1】:

    欢迎来到 SO!,

    理论上应该可以使用以下 Istio 构建组件:

    1. 使用基于正则表达式的重写

    nginx.ingress.kubernetes.io/rewrite-target => EnvoyFilterHTTP_ROUTE 对象

    (可以在 github 上找到示例here

    1. 将“X-Forwarded-For/X-Real-IP”标头转发到上游主机

    如果您的应用程序需要知道真实的客户端 IP 地址,请使用 Gateway Network Topology (Alpha) 功能。

    备注:

    您附加的源清单文件似乎受到最新 nginx 入口控制器的known issue 的影响,这在我的环境中显示以下错误:

    Error from server (BadRequest): error when creating "STDIN": admission webhook "validate.nginx.ingress.kubernetes.io" denied the request:
    -------------------------------------------------------------------------------
    Error: exit status 1
    2021/06/21 11:05:45 [emerg] 851#851: invalid number of arguments in "proxy_set_header" directive in /tmp/nginx-cfg063051389:453
    nginx: [emerg] invalid number of arguments in "proxy_set_header" directive in /tmp/nginx-cfg063051389:453
    nginx: configuration file /tmp/nginx-cfg063051389 test failed 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-24
      • 1970-01-01
      • 2021-11-17
      • 2020-10-02
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      相关资源
      最近更新 更多