CKA笔记整理(六)harbor

Harbor Registry(又称 Harbor 云原生制品仓库或 Harbor 镜像仓库)。由 VMware 公司中国研发中心云原生实验室原创,并于 2016 年 3 月开源。

harbor的通信默认为https,但想使用https则需颁发证书,如果不想使用https通信则需修改docker和containerd的配置。(配置方法见后文)

演示架构如下:共三台服务器组成。

docker harbor containerd
26.91 26.93 26.92
制作镜像 镜像仓库 拉取镜像

harbor的安装:

在26.93这台服务器上,安装docker并修改daemon.json,然后重启dcoker。

{
 "registry-mirrors": ["https://frz7i079.mirror.aliyuncs.com"],
 "insecure-registries":["192.168.26.93"]
}

json每行以逗号隔开。

安装docker-compose

yum install docker-compose或将准备的离线安装包解压,然后进入到harbor目录中,

其中harbor.v2.3.5.tar.gz为离线镜像,使用docker load -i harbor.v2.3.5.tar.gz将其导入。

harbor.yml.tmp为模板文件,  cp harbor.yml.tmp   harbor.yml,vi harbor.yml进行配置修改:

hostname:改为本机地址x.x.26.93,删除https及其端口这两行。再往下可看到管理员密码为Harbor12345 ,wq 。

扫描二维码关注公众号,回复: 16016167 查看本文章

运行prepare脚本  ./ prepare  , 运行 ./install.sh ,结束后打开web输入ip即可访问harbor,用户名admin ,密码为Harbor12345 。

在web中可进行创建用户创建项目等操作,其中用户可以设置身份,如管理员、访客等;其中的项目和镜像命名法中的分类为一个意思。(仓库地址/分类/镜像名:tag,例如docker.io/library/nginx:latest)。此处创建一个名为tom的管理员作为后面用来登录的账号。

我们需创建一个项目用来存放上传的镜像,项目名cka,访问级别:公开(指匿名用户拉取无需登录,但无论是否公开,推送镜像时都需登录),存储容量:-1 GiB  (指无容量上限)。

到此harbor端基本配置完毕,需注意的是:推送镜像前需要对镜像做分类。

把镜像命名为 192.168.26.93/cka/镜像名:tag 192.168.26.93是harbor服务器,cka是分
类(项目)
docker tag nginx 192.168.26.93/cka/nginx:v1

我们需要配置推送端26.91的daemon.json,此处添加的地址仍为harbor,然后wq后重启26.91的docker。

{
 "registry-mirrors":["https://frz7i079.mirror.aliyuncs.com"],
 "insecure-registries":["192.168.26.93"]
}

一切准备就绪,登录harbor服务器:docker  login  192.168.26.93 -u tom  -p xxxxx (用户名和密码也可不写在命令中),登陆后会出现一个文件来记录登录信息,可使用ls .docker/ 查看到config.json。其中auth后的这串字符为用户名和密码,可使用echo  字符   | base64 -d来解密。

登录成功后可以docker  push  192.168.26.93/cka/nginx:v1来推送镜像至harbor仓库。

在26.92服务器上下载26.91推送至harbor仓库的镜像时,需先编辑/etc/containerd/config.toml,找到mirrors,复制粘贴并修改,添加harbor端ip,并将第二行https改为http,

[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
    endpoint = ["https://frz7i079.mirror.aliyuncs.com"]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."192.168.26.93"]
    endpoint = ["http://192.168.26.93"]

然后重启containerd,此时crictl可拉取harbor仓库的镜像。

如想使用nerdctl拉取镜像可在拉取命令中添加参数 --insecure-registry 来拉取:

nerdctl --insecure-registry pull 192.168.26.93/cka/nginx:1

如果不想加参数来拉取则需修改配置文件/etc/nerdctl/nerdctl.toml,将insecure_registry = fales 改为true。即可拉取。

需注意的是crictl没有登录功能,如果遇到项目访问级别为私有的镜像,则需登录。但是nerdctl有登录功能。

如果想重启harbor服务,则需进入harbor目录下,然后docker-compose stop ,然后docker-compose up  -d 即可,等待运行完成。

猜你喜欢

转载自blog.csdn.net/qq_52676760/article/details/129096922