用于响应内容操作的 Kubernetes Ingress Gateway

Kubernetes Ingress Gateway for Response Content Manipulation

在我们的 Kubernetes 集群中,我们需要在响应中进行字符串替换 body。 Istio 有没有响应内容修改这种东西。我只能找到 header 操纵。

Nginx Ingress Controller 能做到吗?

回复包含 html 内容,href 为:<>"/static/myimages/logo.png"<> 我们想修改此响应以在其前面加上 <>"/myapp/static/myimages/logo.png"<>

有没有人推荐可以重写此内容的网关。 您有样品要分享吗?

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: resource-manager
spec:
  hosts:
  - "*"
  gateways:
  - myapp-gateway
  http:
  - match:
    - uri:
       prefix: /myapp/
      rewrite:
       uri: "/"
    route:
     - destination:
        host: myapp.voting.svc.cluster.local
        port:
          number: 9099
       headers:
        response:
         add:
          foo: bar

据我所知,istio 默认不提供主体修改。自定义特使过滤器甚至可能无法实现。

我开始研究其他 Ingress Controller,发现 NGINX-Ingress 可以进行响应操作。这是我设置的进行内容操作的入口路由。在此分享:

apiVersion: extensions/v1beta1 
kind: Ingress 
metadata: 
  name: app1-ingress 
  namespace: app1 
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      sub_filter '<title>My title' '<title>My updated title'; #This changes title that Chrome Shows on Top
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/rewrite-target: / 
spec:  
 rules:
  - http:
      paths:
      - backend:
          serviceName: app1
          servicePort: 8080
        path: /app1/(.*)