Kubernetes Ingress 配置未在 GKE 集群上更新?

Kubernetes Ingress Configuration are not updated on GKE cluster?

我想更新入口配置,它将应用于 gcloud 上 kuberntes cluter 上的入口实例 运行。

为此我执行了两个步骤:

  1. 首先,人们要求在 ingress.yml 中设置两个注释,然后重新创建入口将解决 this 中提到的问题。
kubernetes.io/ingress.class: "gce"
nginx.ingress.kubernetes.io/proxy-body-size: 20m

从集群中删除入口并重新创建入口后 也宣告了我的不幸。

ingress.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"
  1. 其次,在gcloul集群上配置ConfigMap文件,这样我们的ingress配置就会更新,但是会出现.
  2. 中提到的负结果

nginx-config.yml

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config
  namespace: default
data:
  proxy-body-size: "20m"

那么我该如何更新我的入口属性,例如注释 nginx.ingress.kubernetes.io/proxy-body-size,以便我可以上传超过 1 MB 的数据(我的集群部署在 GKE 上)?

如有任何帮助,我们将不胜感激。谢谢

您误解了 Ingress 资源中的注释部分。让我详细说明一下。

问题是您试图使用 GCE controller and apply annotations specifically for NGINX Ingress controller。您不能将 NGINX Ingress 控制器注释与 GCE 控制器一起使用。

要使您的配置正常工作,您需要部署 NGINX Ingress 控制器。

您可以按照official documentation进行部署。

部署 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 controller应用注解请参考官方documentation