前置条件介绍:

         在k8s集群中,容器进行时选择containerd,通过helm部署了harbor,访问方式设置为Nodeport,关闭了TLS,注释了nodeport中https中相关内容。

docker+harbor做法:

        1、关闭机器(虚拟机)的代理

        2、给docker配置harbor的http地址,在/etc/docker/daemon.json文件(没有则新建此文件)中新增如下内容

{
     "insecure-registries": ["core.harbor.domain:30002"]
}

        3、配置下域名,在“/etc/hosts”文件中新增如下内容

# 因为我的harbor使用的是nodeport,所以我将我的master节点配置在此
192.168.1.155 core.harbor.domain

        4、修改harbor-core的cm,使用命令“$ kubectl edit cm harbor-core -n harbor”,修改如下内容

找到:

EXT_ENDPOINT: https://core.harbor.domain 

修改为:

EXT_ENDPOINT: http://core.harbor.domain:30002

        5、重启harbor的core pod

$ kubectl delete pod harbor-core-xxx -n harbor

然后执行登录“$ sudo docker login core.harbor.domain:30002 -u admin -p Harbor12345”,提示login succeeded即代表登陆成功,可以进行docker pull、push。

k8s拉取harbor的私有仓库镜像做法:

编辑 containerd 配置:

sudo vim /etc/containerd/config.toml 

找到:

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

修改如下:

 重启containerd

sudo systemctl daemon-reload
sudo systemctl restart containerd.service

更多推荐