在使用kubesphere的时候 发现向应用上传文件报错 413 Request Entity Too Large
后经过咨询了微信群中大佬得知需在configmap中设置annotation 解决了问题,记录一下.

在namespace: kubesphere-controls-system 中的configmap: kubesphere-router-prod-nginx 中添加一条annotation
nginx.ingress.kubernetes.io/proxy-body-size: 8m

9 个月 后

3.0 版本已经找不到 configmap: kubesphere-router-prod-nginx 了,请问要怎么解决呢?

 kubectl get cm -n kubesphere-controls-system
NAME                       DATA   AGE
kubeconfig-admin           1      2d
kubeconfig-collie-admin    1      42h
kubeconfig-hawkeye-admin   1      24h
kubeconfig-us-manager      1      42h
kubeconfig-ws-admin        1      44h
kubeconfig-ws-viewer       1      42h

    huanggze war上传遇到大小限制,在哪里修改呢,上问说的这个cm,我在 kubesphere-controls-system namespace下没有找到

    eslrain

    $ kubectl get cm -n  kubesphere-controls-system
    NAME                       DATA   AGE
    kubeconfig-admin           1      2d2h
    kubeconfig-collie-admin    1      44h
    kubeconfig-hawkeye-admin   1      26h
    kubeconfig-us-manager      1      44h
    kubeconfig-ws-admin        1      46h
    kubeconfig-ws-viewer       1      44h
    $ kubectl get ns
    NAME                           STATUS   AGE
    collie                         Active   46h
    default                        Active   2d2h
    hawkeye                        Active   26h
    kube-federation-system         Active   2d2h
    kube-node-lease                Active   2d2h
    kube-public                    Active   2d2h
    kube-system                    Active   2d2h
    kubesphere-controls-system     Active   2d2h
    kubesphere-devops-system       Active   46h
    kubesphere-logging-system      Active   44h
    kubesphere-monitoring-system   Active   2d2h
    kubesphere-system 

      bill-byteArk 我感觉上传war包的nginx代理不在kubesphere-controls-system这个命名空间下,这个命名空间下的configmap是配置应用路由的,上传war包应该在kubesphere-system下 ks-router-config 这个configmap

        eslrain 我觉得你说的有道理,应该是在 ingress 做了限制,但是我尝试做了修改,还是无法上传 war,报错文件过大

          bill-byteArk 你要改的是 kubesphere-router-[namespace] 开头的configmap,如果没有这样的configmap,说明你的项目网关没有开启,这个cm只要在项目网关开启的时候才会创建

            Jeff 感觉他要改Kubesphere内部上传war文件的ingress-controller configmap

            Jeff 我找到你说的配置了,但是需要如何进行修改呢?下面是我当前未修改的configMap

            $ kubectl edit cm kubesphere-router-collie-nginx  -n kubesphere-controls-system
            apiVersion: v1
            kind: ConfigMap
            metadata:
              annotations:
                control-plane.alpha.kubernetes.io/leader: '{"holderIdentity":"kubesphere-router-collie-5b5d59756b-cllht","leaseDurationSeconds":30,"acquireTime":"2020-09-14T06:48:01Z","renewTime":"2020-09-14T06:51:54Z","leaderTransitions":0}'
              creationTimestamp: "2020-09-14T06:48:01Z"
              managedFields:
              - apiVersion: v1
                fieldsType: FieldsV1
                fieldsV1:
                  f:metadata:
                    f:annotations:
                      .: {}
                      f:control-plane.alpha.kubernetes.io/leader: {}
                manager: nginx-ingress-controller
                operation: Update
                time: "2020-09-14T06:51:54Z"
              name: kubesphere-router-collie-nginx
              namespace: kubesphere-controls-system
              resourceVersion: "1897710"
              selfLink: /api/v1/namespaces/kubesphere-controls-system/configmaps/kubesphere-router-collie-nginx
              uid: 974b941c-ef08-4644-8082-ac116df4aebb
            1 个月 后

            大佬们 我也遇到个附件限制问题
            但是我没有用路由和网关

            情况描述:

            通过NodePort方式发布应用

            通过ip:NodePort端口访问应用附件是可以上传且没大小限制

            但是在外部通过一个caddy代理生成https的方式代理到NodePort后 附件上传就受到大小限制了,只能小于20k。

            已经排除代理caddy代理的问题:(测试过通过caddy代理应用到docker直接发布出来的应用时没有附件大小限制的)

            这个问题在哪里呢

            4 个月 后

            ingress.yaml中配置nginx.ingress.kubernetes.io/proxy-body-size

            6 个月 后

            我的解决办法是在 Ingress 配置的 annotations 字段添加以下内容:

            nginx.ingress.kubernetes.io/proxy-body-size: '0'                # 修改为0表示不限制大小
            nginx.ingress.kubernetes.io/proxy-read-timeout: '600'
            nginx.ingress.kubernetes.io/proxy-send-timeout: '600'

            对应 kubesphere 里的选项是在 Ingress 里配置元数据

            我的这个方案也可以解决上传大文件的问题。不知道和楼主的有什么不一样?

            1 年 后

            3.3.0版本kubesphere 在网关设置–>编辑

            这样就能解决网关文件上传大小限制