You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Rancher部署K8s时“server gave HTTP response to HTTPS client”错误?

解决Rancher部署时HTTP私有镜像仓库拉取失败问题

问题原因

你的私有镜像仓库使用HTTP协议,但K8s集群的容器运行时(如containerd、Docker)默认会对非官方镜像仓库发起HTTPS请求,导致出现http: server gave HTTP response to HTTPS client错误。

解决方案

根据集群使用的容器运行时,选择对应配置方式:

1. 集群使用Docker作为容器运行时

在所有K8s节点(master和node)上完成以下操作:

  • 编辑/etc/docker/daemon.json文件,添加私有仓库的HTTP信任配置:
    {
      "insecure-registries": ["192.168.1.132:5000"]
    }
    
  • 重启Docker服务:
    systemctl restart docker
    
  • 重启K8s kubelet服务:
    systemctl restart kubelet
    

2. 集群使用containerd作为容器运行时

在所有K8s节点上完成以下操作:

  • 编辑/etc/containerd/config.toml文件,找到[plugins."io.containerd.grpc.v1.cri".registry]节点,添加私有仓库的HTTP配置:
    [plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."192.168.1.132:5000"]
          endpoint = ["http://192.168.1.132:5000"]
      [plugins."io.containerd.grpc.v1.cri".registry.configs]
        [plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.1.132:5000".tls]
          insecure_skip_verify = true
    
  • 重启containerd服务:
    systemctl restart containerd
    
  • 重启K8s kubelet服务:
    systemctl restart kubelet
    

3. 验证配置

配置完成后,在任意K8s节点上测试拉取镜像:

# 若使用containerd运行时
crictl pull 192.168.1.132:5000/test-demo:latest
# 若使用Docker运行时
docker pull 192.168.1.132:5000/test-demo:latest

确认拉取成功后,再通过Rancher重新部署应用即可。


内容的提问来源于stack exchange,提问作者Trần văn Toàn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:10:29