sealos安装k8s1.28.7 containerd拉取镜像失败配置本地harbor 使用http

在这里插入图片描述
containerd 总是拉取镜像失败
默认配置文件如下
sudo cat /etc/containerd/config.toml

 sudo cat /etc/containerd/config.toml

version = 2
root = "/var/lib/containerd"
state = "/run/containerd"
oom_score = 0

[grpc]
  address = "/run/containerd/containerd.sock"
  uid = 0
  gid = 0
  max_recv_message_size = 16777216
  max_send_message_size = 16777216

[debug]
  address = "/run/containerd/containerd-debug.sock"
  uid = 0
  gid = 0
  level = "warn"

[timeouts]
  "io.containerd.timeout.shim.cleanup" = "5s"
  "io.containerd.timeout.shim.load" = "5s"
  "io.containerd.timeout.shim.shutdown" = "3s"
  "io.containerd.timeout.task.state" = "2s"

[plugins]
  [plugins."io.containerd.grpc.v1.cri"]
    sandbox_image = "sealos.hub:5000/pause:3.9"
    max_container_log_line_size = -1
    max_concurrent_downloads = 20
    disable_apparmor = false
    [plugins."io.containerd.grpc.v1.cri".containerd]
      snapshotter = "overlayfs"
      default_runtime_name = "runc"
      [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
        [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
          runtime_type = "io.containerd.runc.v2"
          runtime_engine = ""
          runtime_root = ""
          [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
            SystemdCgroup = true
    [plugins."io.containerd.grpc.v1.cri".registry]
      config_path = "/etc/containerd/certs.d"
      [plugins."io.containerd.grpc.v1.cri".registry.configs]
          [plugins."io.containerd.grpc.v1.cri".registry.configs."sealos.hub:5000".auth]
            username = "admin"
            password = "passw0rd"

一下是修改后的配置

version = 2
root = "/var/lib/containerd"
state = "/run/containerd"
oom_score = 0

[grpc]
  address = "/run/containerd/containerd.sock"
  uid = 0
  gid = 0
  max_recv_message_size = 16777216
  max_send_message_size = 16777216

[debug]
  address = "/run/containerd/containerd-debug.sock"
  uid = 0
  gid = 0
  level = "warn"

[timeouts]
  "io.containerd.timeout.shim.cleanup" = "5s"
  "io.containerd.timeout.shim.load" = "5s"
  "io.containerd.timeout.shim.shutdown" = "3s"
  "io.containerd.timeout.task.state" = "2s"

[plugins]
  [plugins."io.containerd.grpc.v1.cri"]
    sandbox_image = "192.168.1.223:8088/repo/pause:3.9"
    [plugins."io.containerd.grpc.v1.cri".registry]
      config_path = "/etc/containerd/certs.d"

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."192.168.1.223:8088"]
          endpoint = ["http://192.168.1.223:8088"]

      [plugins."io.containerd.grpc.v1.cri".registry.configs]
        [plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.1.223:8088".tls]
          insecure_skip_verify = true

修改如下配置后还需要添加
mkdir -p /etc/containerd/certs.d/192.168.1.223:8088

cat > /etc/containerd/certs.d/192.168.1.223:8088/hosts.toml <<EOF
server = "http://192.168.1.223:8088"

[host."http://192.168.1.223:8088"]
  capabilities = ["pull", "resolve", "push"]
  [host."http://192.168.1.223:8088".auth]
    username = "admin"
    password = "Harbor12345"
EOF


systemctl restart containerd
systemctl status containerd
重启容器
然后验证是否可以拉取镜像
ctr image pull --plain-http 192.168.1.223:8088/repo/nginx:latest

ctr image list验证是否拉取镜像成功!
kubectl create secret docker-registry harbor-credentials
–docker-server=192.168.1.223:8088
–docker-username=admin
–docker-password=Harbor123345
-n nginx

接下来就是在k8s中拉取镜像在image: 192.168.1.223:8088/repo/nginx:latest
启动nginx

更多推荐