对于网站访问跨域问题比较常见,在使用Kubernetes时,配置Ingress规则也会遇到同样的问题。以下配置解决Kubernetes集群站点的跨域问题:
nginx.ingress.kubernetes.io/Access-Control-Allow-Origin: '*'
nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,token"
nginx.ingress.kubernetes.io/cors-allow-methods: 'PUT, GET, POST, OPTIONS'
nginx.ingress.kubernetes.io/cors-allow-origin: '*'
nginx.ingress.kubernetes.io/service-weight: ''
以下完整的Ingress 配置:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: kubernetes-controller
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
nginx.ingress.kubernetes.io/Access-Control-Allow-Origin: '*'
nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,token"
nginx.ingress.kubernetes.io/cors-allow-methods: 'PUT, GET, POST, OPTIONS'
nginx.ingress.kubernetes.io/cors-allow-origin: '*'
nginx.ingress.kubernetes.io/service-weight: ''
name: dam-test.sllme.com
spec:
rules:
- host: dam-test.sllme.com
http:
paths:
- path: /test-api
pathType: Prefix
backend:
service:
name: dam-test
port:
number: 8080
tls:
- hosts:
- dam-test.sllme.com
secretName: dam-test.sllme.com
status:
loadBalancer: {}