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 @ 2024-04-28 19:11  牛奔  阅读(1890)  评论(0编辑  收藏  举报