您现在的位置是:首页 >技术交流 >helm push报错server gave HTTP response to HTTPS client网站首页技术交流

helm push报错server gave HTTP response to HTTPS client

MY.BOO 2026-01-23 00:01:02
简介helm push报错server gave HTTP response to HTTPS client

在自己搭建的docker registry中,使用

helm push xxx.tgz oci://xxx/helm-charts

命令推送chart的时候,报错

Error: failed to do request: Head “https://xxx/v2/helm-charts/xxx/blobs/sha256:6523d007650e4bd5590bd99dbedf2f78566cf986db498b8a4028c042be07cabc”: http: server gave HTTP response to HTTPS client

这是因为Helm 在默认情况下会使用 HTTPS 与 OCI Registry 通信,如果你的 Registry 只支持 HTTP,就会出现“server gave HTTP response to HTTPS client”的错误。解决办法是让 Helm 使用纯 HTTP 通信,这可以通过在 push 命令中添加 “–plain-http” 参数来实现。例如:

helm push --plain-http xxx.tgz oci://xxx/helm-charts

这样 Helm 就会使用 HTTP 协议而不是 HTTPS 进行请求,从而避免该错误。

另外,如果你在登录时也遇到问题,可以使用类似 “helm registry login --insecure …” 的方式来允许不安全的 TLS 连接,但针对 push 操作,关键在于加上 “–plain-http” 参数。

参考资料:​
https://github.com/helm/helm/issues/6324

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。