gpt4 book ai didi

kubernetes-ingress - 如何在不使用 nginx 的情况下通过入口启用 CORS?

转载 作者:行者123 更新时间:2023-12-04 15:42:38 24 4
gpt4 key购买 nike

我正在尝试使用 Kubernetes 设置 RESTful API 应用程序。我有一个准系统设置,其中包含一个集群、静态 IP 地址、使用 NodePort 类型的公开服务部署的应用程序,以及一个配置有 SSL 托管证书的入口。我需要启用 CORS,但我还没有使用 nginx。是否可能,或者我是否需要安装 nginx 而不是默认的 gce 类?

这是我的 ingress.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 如下:

curl -H "Access-Control-Request-Method: GET" -H "Origin: http://localhost" --head http://db.artsdata.ca

我期待响应包含 Access-Control-Allow-*

最佳答案

当前 CORS GCP L7 负载平衡器不支持该机制,因此 ingress-gce入口 Controller 确实包含适当的 annotation要完成此功能,请找到 here相关的 Stack 线程。

如果您考虑将原生 GCP Ingress 类替换为 Nginx Ingress Controller为了启用 Cross-origin请求,那么您可能必须在原始 Ingress 资源定义中包含至少两个注释:

kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"

我找到了一个很棒的 guideline通过解释 GKE 中 Nginx Ingress Controller 实现过程的 GCP 社区教程。

市场上还有其他 L7 代理框架可以利用 CORS 请求,例如 Traefik , Skipper

关于kubernetes-ingress - 如何在不使用 nginx 的情况下通过入口启用 CORS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57301211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com