2017-12-22 4 views
0

Ich habe ein Problem mit der Aktivierung von CORS auf Istio Ingress. Wie Intio Ingress-Dokumentation besagt, werden "ingresskubernetes.io" -Anmerkungen ignoriert. Ist es möglich, CORS auf Istio ingress zu aktivieren?Istio Ingress - Aktivieren Kors

Der Eingang in meiner Konfiguration verwendet einen virtuellen Host und App ist auf "api.my-domain.com" ausgesetzt. Die Webanwendung schlägt mit diesem Fehler fehl, wenn sie versucht, die App anzufordern: "Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. Origin (...) ist daher nicht erlaubt."

Kann jemand eine Lösung für dieses Problem vorschlagen?

Mit dem Ngnix Ingress Controller könnte ich einfach "ingress.kubernetes.io/enable-cors": "true" verwenden, aber jetzt wird diese Annotation nicht funktionieren.

Antwort

1

In Istio können Sie eine Route Rule hinzufügen, um corsPolicy eines Zieldienstes anzugeben. Im Falle von Istio Ingress muss der Dienst backend des Ingress als Zieldienst angegeben werden. Siehe zum Beispiel diese Routenregel für 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 
Verwandte Themen