如何使用 Traefik 在 Kubernetes 中启用 CORS
How to enable CORS in Kubernetes with Traefik
我正在尝试在 kubernetes 运行 traefik 的入口上启用 CORS。因此,在响应 header 中,我可以添加 CORS 来源,以便现在允许每个主机使用。
我怎样才能做到这一点?
下面是 k8 ingress.yml 文件。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
labels:
app: test-cors-app
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: company.host
http:
paths:
- path: /
backend:
serviceName: test-service
servicePort: 80
更新 我有 traefik 1.7
添加 Ingress 注释 traefik.ingress.kubernetes.io/router.middlewares
with headers middleware 配置。
您可以在您的入口中使用此注释:traefik.ingress.kubernetes.io/custom-response-headers
或 ingress.kubernetes.io/custom-response-headers
都可以与 traefik 一起使用。
将您的 ingress.yml 文件修改为:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
labels:
app: test-cors-app
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/custom-response-headers: "Access-Control-Allow-Origin:*||Access-Control-Allow-Methods:GET,POST,OPTIONS||Access-Control-Allow-Headers:DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range||Access-Control-Expose-Headers:Content-Length,Content-Range"
spec:
rules:
- host: company.host
http:
paths:
- path: /
backend:
serviceName: test-service
servicePort: 80
**相应地修改注解属性。它也适用于较低版本的 traefik。见 here
我正在尝试在 kubernetes 运行 traefik 的入口上启用 CORS。因此,在响应 header 中,我可以添加 CORS 来源,以便现在允许每个主机使用。 我怎样才能做到这一点? 下面是 k8 ingress.yml 文件。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
labels:
app: test-cors-app
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: company.host
http:
paths:
- path: /
backend:
serviceName: test-service
servicePort: 80
更新 我有 traefik 1.7
添加 Ingress 注释 traefik.ingress.kubernetes.io/router.middlewares
with headers middleware 配置。
您可以在您的入口中使用此注释:traefik.ingress.kubernetes.io/custom-response-headers
或 ingress.kubernetes.io/custom-response-headers
都可以与 traefik 一起使用。
将您的 ingress.yml 文件修改为:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
labels:
app: test-cors-app
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/custom-response-headers: "Access-Control-Allow-Origin:*||Access-Control-Allow-Methods:GET,POST,OPTIONS||Access-Control-Allow-Headers:DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range||Access-Control-Expose-Headers:Content-Length,Content-Range"
spec:
rules:
- host: company.host
http:
paths:
- path: /
backend:
serviceName: test-service
servicePort: 80
**相应地修改注解属性。它也适用于较低版本的 traefik。见 here