Kubernetes入口配置是否未在GKE集群上更新?

时间:2020-01-23 10:05:05

标签: nginx kubernetes google-kubernetes-engine kubernetes-ingress

我想更新入口配置,它将应用于在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文件,以便更新我们的入口配置,但得出this中提到的否定结果。

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上)?

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:1)

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

问题是您尝试使用GCE controller并专门为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控制器应用注释时,请参考官方documentation