您当前的位置: 首页 >  ar

庄小焱

暂无认证

  • 2浏览

    0关注

    805博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

庄小焱 发布时间:2021-12-30 20:37:16 ,浏览量:2

摘要

本博文主要介绍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 
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

博文参考

关注
打赏
1657692713
查看更多评论
立即登录/注册

微信扫码登录

0.0394s