如何在 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
如何使用 terraform gke 模块启用 gce_persistent_disk_csi_driver_config