Skip to the content.

harbor是http的前提下使用kubernetes

k8s 使用新版本1.28,harbor使用的http,没有使用证书。

# kubectl version
Client Version: v1.28.4

# ctr --version
ctr containerd.io 1.6.20

先把配置做备份

mv /etc/containerd/config.toml /etc/containerd/config.toml.bak
containerd config default>/etc/containerd/config.toml
systemctl restart containerd
systemctl status containerd.service

确定重启没问题后修改配置文件 使用官网的pause镜像,拉不下来,所以改国内,需要修改的配置在149行, 在 [plugins.”io.containerd.grpc.v1.cri”.registry.configs] 下面添加, 在 [plugins.”io.containerd.grpc.v1.cri”.registry.mirrors] 下面添加,配置如下

vim /etc/containerd/config.toml 
...
    sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6"
...
147     [plugins."io.containerd.grpc.v1.cri".registry.auths]
148
149     [plugins."io.containerd.grpc.v1.cri".registry.configs]
        [plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.test.cn:20000"]
        [plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.test.cn:20000".tls]
          ca_file = ""
          cert_file = ""
          insecure_skip_verify = true
          key_file = ""

      [plugins."io.containerd.grpc.v1.cri".registry.headers]

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.test.cn:20000"]
          endpoint = ["http://harbor.test.cn:20000"]
...

修改containerd配置后重启,检查状态是否正常

systemctl restart containerd
systemctl status containerd

docker已经不用了,使用的containerd 相比于docker , 多了namespace概念, 每个image和container 都会在各自的namespace下可见, 目前k8s会使用k8s.io 作为命名空间

ctr和docker对镜像的管理命令对比:

操作                     ctr                         docker
查看镜像              ctr images ls                 docker images
镜像导入/导出      ctr images import/exporter    docker load/save
镜像拉取/推送      ctr images pull/push              docker pull/push
镜像tag                ctr images tag                docker tag

参考kubernetes-with-containerd-http-server

2023年12月12日 于 linux工匠 发表