docker 推送到 Kubernetes 集群内的私有 Docker 注册表失败:413 请求实体太大

docker push into private Docker registry inside Kubernetes cluster fails with: 413 Request Entity Too Large

我已经在 Kubernetes 集群中部署了私有 Docker 注册表(图像 registry:2)并通过 Ingress 公开了它。我正在使用 nginxinc/kubernetes-ingress(不是:kubernetes/ingress-nginxNGINX ingress controller.

curl https://my_registry/v2/_catalog 工作正常。但是 docker push 进入注册表会遇到此错误: Pushing ... 100.6MB/100.6MB ... 413 Request Entity Too Large.

据我所知,这可以通过指示 NGINX ingres 控制器接受更大的数据块来缓解。我有例如尝试将注释 nginx.ingress.kubernetes.io/proxy-body-size: "200m" 添加到我的 Ingress 规范中(按照建议 here),但这到目前为止还没有奏效。

那么指示 nginxinc/kubernetes-ingress NGINX 入口控制器接受足够大的块的正确方法是什么?

UPDATE 我同时 concluded nginxinc/kubernetes-ingress 没有从注释中获取其配置,而是从名为 [=26] 的 ConfigMap =] 驻留在与 NGINX 入口控制器相同的命名空间中。我现在已经添加了这样一个ConfigMapdataclient-max-body-size: "200m",但是问题依旧

您需要设置注释:

nginx.org/client-max-body-size "200m"

我已经从 NGINX Inc.'s to Kubernetes' NGINX 入口控制器切换,并在 Ingress' metadata 中添加以下注释证明足够了:

annotations:
  nginx.ingress.kubernetes.io/proxy-body-size: 500m