实现 harbor 高可用:
Harbor 支持基于策略的 Docker 镜像复制功能, 这类似于 MySQL 的主从同步, 其可以实现不同的数据中心、 不同的运行环境之间同步镜像, 并提供友好的管理界面,大大简化了实际运维中的镜像管理工作,已经有用很多互联网公司使用harbor 搭建内网 docker 仓库的案例,并且还有实现了双向复制的案列,本文将实现单向复制的部署:
-
新部署一台 harbor 服务器192.168.99.23
过程见前一节 -
验证从 harbor 登录
- 主 harbor :192.168.99.22
复制的原理是从源harbor上推到目标harbor,所以下面的配置是要在之前创建的harbor上配置。
主harbor:192.168.99.22
从harbor:192.168.99.23
-
主 harbor:创建目标
-
主 harbor:测试连接成功后,确定
-
从 harbor:创建一个 alpine 项目:
与主 harbor 项目名称保持一致:
-
主 harbor:配置复制
-
主 harbor:点击复制,新建规则:
-
主 harbor:编辑同步策略
-
主 harbor:查看镜像同步状态
-
从 harbor:查看镜像是否同步成功
测试从 harbor 镜像下载和容器启动:
- 编辑 docker 配置文件:
vim /lib/systemd/system/docker.service
在ExecStart
追加
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.99.22 --insecure-registry 192.168.99.23
其中 192.168.99.22/23 是我们部署 Harbor 的地址,即 hostname 配置项值。配置完后需要重启 docker 服务。
- 重启 docker 服务:
systemctl daemon-reload
systemctl restart docker
-
从 harbor 项目设置为公开:
-
docker 客户端下载镜像
docker pull 192.168.99.23/alpine/alpine:v1
- 查看镜像
docker images
- docker 客户端从镜像启动容器:
docker run -it 192.168.99.23/alpine/alpine:v1 sh
至此,高可用模式的 harbor 仓库部署完毕