我正在尝试使用kubernetes设置RESTFUL API应用程序。我有一个带有群集,静态IP地址的准骨设置,使用裸露的NodePort的裸露服务部署的应用程序以及配置了SSL的托管证书的入口。我需要启用CORS,但尚未使用Nginx。是可能的,还是我需要安装NGINX而不是默认GCE类?
这是我的intress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: artsdata-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "artsdasta-static-ip"
networking.gke.io/managed-certificates: artsdata-certificate
ingress.kubernetes.io/enable-cors: "true"
spec:
backend:
serviceName: artsdata-kg
servicePort: 80
检查我正在使用卷曲,如下所示:
curl -H "Access-Control-Request-Method: GET" -H "Origin: http://localhost" --head http://db.artsdata.ca
我期望响应包括访问控制 - *
当前不支持GCP L7负载平衡器中CORS机制,因此Ingress-GCE Ingress Ingress Controller确实包含适当的注释来完成此功能,请在此处找到相关的堆栈线程。
如果您考虑通过NGINX Ingress Controller替换本机GCP Ingress类,以启用交叉原始请求,则可能必须在Origin Ingress资源定义中至少包含两个注释:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"
我已经通过GCP社区教程找到了一个很好的指南,该指南解释了GKE中的Nginx Ingress Controller实施过程。
市场上还有其他L7代理框架,可以利用Traefik,Skipper等CORS请求。