nginx - Kubernetes 入口配置未在 GKE 集群上更新?
问题描述
我想更新入口配置,这将应用于在 gcloud 上的 kuberntes 集群上运行的入口实例。
为此,我执行了两个步骤:
- 首先,人们要求设置两个注释
ingress.yml
然后重新创建入口将解决这个问题。
kubernetes.io/ingress.class: "gce" nginx.ingress.kubernetes.io/proxy-body-size: 20m
从集群中删除入口并再次创建入口后也宣布我不走运。
入口.yml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: "gce"
nginx.ingress.kubernetes.io/proxy-body-size: 20m
nginx.org/client-max-body-size: "20m"
- 其次,在 gcloul 集群上配置 ConfigMap 文件,这样我们的 ingress 配置会更新,但是会出现上面提到的否定结果。
nginx-config.yml
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-config
namespace: default
data:
proxy-body-size: "20m"
那么如何更新我的入口属性,例如 annotation nginx.ingress.kubernetes.io/proxy-body-size
,以便我可以上传超过 1 MB 的数据(我的集群部署在 GKE 上)?
任何帮助,将不胜感激。谢谢
解决方案
您误解了Ingress
资源中的注释部分。让我详细说明一下。
问题是您尝试使用GCE 控制器并专门为NGINX Ingress 控制器应用注释。您不能将 NGINX Ingress 控制器注释与 GCE 控制器一起使用。
为了使您的配置正常工作,您需要部署 NGINX Ingress 控制器。
您可以按照官方文档进行部署。
部署 NGINX Ingress 控制器后,Ingress
定义部分应如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/proxy-body-size: "20m"
具体看下面的部分:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/proxy-body-size: "20m"
为 NGINX Ingress 控制器应用注解时请参考官方文档。
推荐阅读
- ionic-framework - 无法让 Ionic 5 部署到物理设备:命令 PhaseScriptExecution 失败
- javascript - 在异步函数中更新 HTML
- cluster-computing - Eureka 客户端有时会使用错误的主机名注册
- google-maps - 如何从旧的谷歌街景网址获取全景 ID?
- groovy - NiFi:根据属性过滤流文件
- excel - 上传到 Dropbox 但文件很小
- java - 使用 ThreadPoolExecutor 在 5 分钟内发出 100000 个请求
- ajax - Ajax Json 和选择选项
- sql - 如何从列中的数据结构中获取值
- django - 如何创造性地使用 Django slug