Devops——Harbor私有仓库集群构建实战

摘要

本博文主要介绍CICD中Harbor的构建和实战。Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能

一、安装docker和docker-compose

curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

修改docker配置

vim /etc/docker/daemon.json

# 添加该行,ip为服务器ip
{
     "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],

     "insecure-registries":["仓库的ip地址"]
}

重启docker服务

systemctl restart docker

二、安装Harbor

# 下载压缩包

wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-online-installer-v1.1.2.tgz

#解压文件

tar xvf harbor-online-installer-v1.1.2.tgz

#编辑文件

vim harbor/harbor.cfg 
# hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost。
hostname = 192.168.25.140

# 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
ui_url_protocol = http

# mysql数据库root用户默认密码root123,实际使用时修改下
db_password = harbor

max_job_workers = 3 
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = NA

# 邮件设置,发送重置密码邮件时使用
email_identity = 
email_server = 你的邮箱
email_server_port = 25
email_username = 邮箱的账号
email_password = 邮箱的密码
email_from = admin <sample_admin@mydomain.com>
email_ssl = false

# 启动Harbor后,管理员UI登录的密码,默认是Harbor12345 账户是admin
harbor_admin_password = 初始仓库密码

# 认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
auth_mode = db_auth

# LDAP认证时配置项
#ldap_url = ldaps://ldap.mydomain.com
#ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
#ldap_search_pwd = password
#ldap_basedn = ou=people,dc=mydomain,dc=com
#ldap_filter = (objectClass=person)
#ldap_uid = uid 
#ldap_scope = 3 
#ldap_timeout = 5

# 是否开启自注册
self_registration = on

# Token有效时间,默认30分钟
token_expiration = 30

# 用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
project_creation_restriction = everyone

verify_remote_cert = on
# 执行安装脚本

./install.sh


# 安装成功的脚本

✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://10.68.7.20   . 
For more details, please visit https://github.com/vmware/harbor .

 三、仓库镜像上传与下载

3.1 建立镜像存放的项目

3.2 登入harbor仓库

docker login 192.168.25.140

Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

3.3 镜像进行tag打包

# 镜像打标签
docker tag 镜像名称 仓库IP/项目的仓库名/镜像名称

# 镜像的上传
docker push 仓库IP/项目的仓库名/镜像名称

四、Harbor集群搭建

我们将192.168.25.140作为主节点,192.168.25.128,192.168.25.150作为从节点。当我们往主节点上面Push镜像的时候,自动复制到节点上面。

这里同步模式,我们选择基于推送的模式,源资源过滤器,我们使用默认目标的Registry就选择我们刚才第一步配置的仓库,触发模式,我们选择事件驱动的方式,然后勾选同步删除,以及覆盖。

五、问题与解决方案

5.1 解决方案:

/etc/docker/daemon.json

{
     "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
     "insecure-registries":["192.168.25.140"]
}

5.2 解决方案:

如果有python的pip环境,直接安装

pip install docker-compose

博文参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庄小焱

我将坚持分享更多知识

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值