所有分类
  • 所有分类
  • 未分类

K8S–解决containerd拉镜像的报错:http: server gave HTTP response to HTTPS client

简介

本文介绍解决K8Scontainerd拉镜像的报错:containerd http: server gave HTTP response to HTTPS client的方法。

问题描述

在kubernetes中使用containerd容器服务获取私有仓库的镜像的时候报错:

`https://xxxxxxx/v2/xxxx/xxxx/manifests/sha256:xxxx: http: server gave HTTP response to HTTPS client`

原因分析

原因是:Harbor私有仓库用的是http,但是容器获取镜像是通过https的。

解决方案

修改配置,支持访问Harbor私库的http地址。本处我的Harbor私库地址是:http://192.168.5.193:/15001

第1步:修改配置

修改/etc/containerd/config.toml文件,添加如下内容:

[plugins."io.containerd.grpc.v1.cri".registry.configs]
  [plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.5.193:15001".tls]
    insecure_skip_verify = true
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."192.168.5.193:15001"]
    endpoint = ["http://192.168.5.193:15001"]

添加的位置是:

[plugins]
  [plugins.”io.containerd.grpc.v1.cri”]
    [plugins.”io.containerd.grpc.v1.cri”.registry]

如下图所示:

备注

https方式如果没有证书,也可以用这个方法去修改,一模一样。

第2步:重启containerd

systemctl restart containerd

第3步:测试

再次运行原来创建pod的命令即可,也可以单独测试拉取镜像:

crictl pull --creds admin:Harbor12345 192.168.5.193:15001/custom_image/nginx:latest
0

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录