我在Istio ingress上启用CORS时遇到问题。正如Istio Ingress文档所述,“ingresskubernetes.io”注释被忽略。是否可以在Istio ingress上启用CORS?
我的配置中的入口使用虚拟主机,应用程序在“api.my-domain.com”上公开。如果Web应用程序尝试请求应用程序,则会因此错误而失败:“请求的资源上没有'Access-Control-Allow-Origin'标头。因此不允许Origin(...)访问。”
有人可以建议解决这个问题吗?
使用Nginx入口控制器,我可以使用"ingress.kubernetes.io/enable-cors": "true"
,但现在这个注释不起作用。
在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