2017-12-22 7 views
0

Istio ingress에서 CORS를 활성화하는 데 문제가 있습니다. Istio Ingress 문서에 나와 있듯이 "ingresskubernetes.io"주석은 무시됩니다. Istio 입구에서 CORS를 활성화 할 수 있습니까?Istio ingress - enabling cors

내 구성의 입구가 가상 호스트를 사용하며 앱이 "api.my-domain.com"에 노출됩니다. 응용 프로그램을 요청하려고하면 웹 응용 프로그램이이 오류로 실패합니다 : "No 'Access-Control-Allow-Origin'헤더가 요청 된 자원에 있습니다. 따라서 Origin (...)은 액세스가 허용되지 않습니다."

누군가이 문제에 대한 해결책을 제안 할 수 있습니까?

Ngnix 입구 제어기를 사용하면 "ingress.kubernetes.io/enable-cors": "true"을 사용할 수 있지만 이제는이 주석이 작동하지 않습니다.

답변

1

Istio에서 대상 규칙의 corsPolicy을 지정하는 경로 규칙을 추가 할 수 있습니다. Istio 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