rainwuK零S
- 已编辑
JFrog Container Registry 部署在 kubernetes里,通过应用路由对外发布,因为EIP地址有限,在配置应用路由之前,先添加外部服务 Service(externalName)
kind: Service
apiVersion: v1
metadata:
name: rtifactory-jcr-service
namespace: harbor-project
labels:
app: rtifactory-jcr-service
annotations:
kubesphere.io/creator: admin
kubesphere.io/description: 暴露rtifactory-jcr服务
kubesphere.io/serviceType: externalservice
spec:
type: ExternalName
sessionAffinity: None
externalName: artifac-0wpgrs-artifactory.rtifactory-jcr
然后再添加 ingress,
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: ks-console-ingress
namespace: harbor-project
annotations:
kubesphere.io/creator: admin
kubesphere.io/description: 暴露kubesphere console,禁止删除
spec:
tls:
- hosts:
- ks.demo.com
secretName: ks-console-tls # 先在配置中心添加 TLS 类型的密钥 (Secret)
rules:
- host: jfrog.demo.com
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
serviceName: ks-console-service
servicePort: 80
按照如上方案配置之后,将 JFrog Container Registry 服务暴露出去,通过 docker push 命令上传镜像的时候产生如下报错:
root@harbor-server:~# docker push jfrog.demo.com/library/postgres:9.6
The push refers to repository [jfrog.demo.com/library/postgres]
b097a9d04b28: Pushed
be0b05b5390f: Pushed
8e48dc53f4bb: Pushed
ee526a2916bf: Pushed
171411a85828: Pushed
cc03f5799485: Pushing [==================================================>] 111.8MB/111.8MB
05be9b26ce19: Pushed
fa3932cf6acb: Pushed
10a20528501b: Pushed
90e6521e6178: Pushing [=======> ] 2.491MB/16.53MB
1d466e69ce2b: Pushing [=============================> ] 2.408MB/4.145MB
100bfb61c8b5: Pushed
13f611a9c539: Pushing [====> ] 879.1kB/10.24MB
c0a294e617df: Waiting
error parsing HTTP 413 response body: invalid character '<' looking for beginning of value: "<html>\r\n<head><title>413 Request Entity Too Large</title></head>\r\n<body>\r\n<center><h1>413 Request Entity Too Large</h1></center>\r\n<hr><center>nginx/1.19.2</center>\r\n</body>\r\n</html>\r\n"
同样其它的应用在上传大文件的时候都报 “413 Request Entity Too Large” 错误。
互联网搜了一下原因,也查看了一下 helm 部署 harbor 时应用路由的配置,发现是是上传文件的大小超出了 nginx-ingress 的大小限制,在 Ingress 配置的 annotations 字段添加以下内容可以解决该问题:
nginx.ingress.kubernetes.io/proxy-body-size: '0' # 修改为0表示不限制大小