首页 文章

进入 - 进入角色

提问于
浏览
2

我在Istio ingress上启用CORS时遇到问题 . 正如Istio Ingress文档所述,“ingresskubernetes.io”注释被忽略 . 是否可以在Istio ingress上启用CORS?

我的配置中的入口使用虚拟主机,应用程序在“api.my-domain.com”上公开 . 如果Web应用程序尝试请求应用程序,则会因此错误而失败:“请求的资源上没有'Access-Control-Allow-Origin'标头 . 因此不允许Origin(...)访问 . ”

有人可以建议解决这个问题吗?

使用Ngnix入口控制器,我可以使用 "ingress.kubernetes.io/enable-cors": "true" ,但现在这个注释不起作用 .

1 回答

  • 2

    在Istio中,您可以添加路由规则以指定目标服务的 corsPolicy . 对于Istio Ingress,必须将Ingress的 backend 服务指定为目标服务 . 例如,请参阅Istio Bookinfo Sample的此路由规则:

    apiVersion: config.istio.io/v1alpha2
    kind: RouteRule
    metadata:
      name: cors
    spec:
      destination:
        name: productpage
      corsPolicy:
        allowOrigin:
          - http://example.com
        allowMethods:
          - POST
          - GET
          - OPTIONS
        allowHeaders:
          - content-type
        exposeHeaders:
          - x-custom-header
        maxAge: 300s
        allowCredentials: true
    

相关问题