containerd 配置使用私有镜像仓库 harbor

前言

​当要从非安全的镜像仓库中进行 PullPush 时,会遇到 x509: certificate signed by unknown authority 错误提示; 这是由于镜像仓库是可能是 http 服务,或者 https 的证书是自签名的就会出现这个问题。

Containerd 可以配置为连接到私有镜像仓库,并使用仓库在每个节点上拉取私有镜像。

Containerd 中的配置可以用于通过 TLS 连接到私有镜像仓库,也可以与启用验证的镜像仓库连接。

下面以三种运行时来说明,如何解决这个问题

配置 Containerd

复制代码
vim /etc/containerd/config.toml

​在 /etc/containerd/config.toml 文件中加入如下的配置:

复制代码
[plugins."io.containerd.grpc.v1.cri".registry.configs."test.registry.com".tls] # test.registry.com harbor地址
  insecure_skip_verify = true # 跳过tls认证

​配置之后需要重启 containerd,重启命令为:

复制代码
systemctl restart containerd

containerd 配置完成!!

如下配置:

复制代码
vim /etc/containerd/config.toml  # 添加如下信息

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        # 如下这些仓库可以作为公共仓库使用
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
            endpoint = ["https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
            endpoint = ["https://gcr.mirrors.ustc.edu.cn"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
            endpoint = ["https://gcr.mirrors.ustc.edu.cn/google-containers/"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."quay.io"]
            endpoint = ["https://quay.mirrors.ustc.edu.cn"]
        # 内部私有仓库配置
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."www.myharbor.com"]
            endpoint = ["https://www.myharbor.com/"]

      [plugins."io.containerd.grpc.v1.cri".registry.configs]
        # 内部私有仓库认证信息
        [plugins."io.containerd.grpc.v1.cri".registry.configs."www.myharbor.com"] # 这行不确定要不要写上
          [plugins."io.containerd.grpc.v1.cri".registry.configs."www.myharbor.com".tls]
            insecure_skip_verify = false # 是否跳过证书认证
            ca_file = "/etc/containerd/www.myharbor.com/ca.crt" # CA 证书 
          [plugins."io.containerd.grpc.v1.cri".registry.configs."www.myharbor.com".auth]
            username = "test" # 在harbor里单独创建的用户,授权访问指定项目
            password = "Test123456"

配置 Docker

​在 /etc/docker/daemon.json 文件中加入如下配置:

复制代码
{
  "insecure-registries": [
    "test.registry.com",
    "test.registry.com1"
  ]
}

​修改之后重启 docker 即可,重启命令为:

复制代码
systemctl restart docker

docker 配置完成!!

配置 CRI-O

​修改 /etc/crio/crio.conf 配置文件:

复制代码
insecure_registries = ["test.registry.com"]

​重启 crio:

复制代码
systemctl restart crio

crio 配置完成!!

posted @   牛奔  阅读(6740)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示