如何在 GKE 中通过入口启用 Cors

Posted

技术标签:

【中文标题】如何在 GKE 中通过入口启用 Cors【英文标题】:how to enable-cors in GKE with ingress 【发布时间】:2018-06-19 19:13:16 【问题描述】:

我正在尝试使用以下注释启用带有入口的 cors,但没有成功:

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

【问题讨论】:

你把这些东西放在哪儿了? kubernetes.yaml 遇到了同样的问题,google了一下,发现gce入口控制器不支持enable-cors:github.com/kubernetes/ingress-gce/blob/master/docs/… 【参考方案1】:

正确的注解是ingress.kubernetes.io/enable-cors: "true"

【讨论】:

是的,必须使用nginx控制器而不是gce。【参考方案2】:

这是对在 GCP 上使用 Kubernetes 的人的已批准答案的补充。

如果人们现有的 Ingress 使用 gce 类运行,他们需要先切换到 nginx

那么你应该按照NGINX Ingress Controller - Installation Guide的安装步骤。

但请注意,如果您使用的是 Kubernetes 1.8+,则默认启用 RBAC。在运行第一个 RBAC 安装行时,这可能会给您一个错误。错误类似于:“服务器出错(禁止):创建“STDIN”时出错:clusterroles.rbac.authorization.k8s.io “nginx-ingress-clusterrole”被禁止:尝试授予额外权限”。

虽然此配置步骤失败,但 nginx 入口控制器将无法运行,它会一遍又一遍地崩溃并抱怨 RBAC。

当我自己在网上搜索时,我发现了一个与此错误相关的帖子,它帮助我获得了一个正在运行的 nginx 入口控制器。

请阅读post by user dafstone at March 5 2018。

它将您的 GCP 帐户添加为集群管理员,允许您按照安装指南中的说明安装所需的 RBAC 规则。

祝你好运!

【讨论】:

以上是关于如何在 GKE 中通过入口启用 Cors的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 terraform 为自动创建的 GKE 集群和服务防火墙规则启用 Logconfig

在 GKE 中启用审核日志记录

如何在spring webflux安全中通过绕过选项请求?

如何使用 terraform gke 模块启用 gce_persistent_disk_csi_driver_config

如何将 GKE Ingress 与 Nginx Ingress 一起使用?

如何在 Flutter 中通过更改主题来更改文本颜色