企业级 Registry 服务 器 (harbor) 部署
修订记录
修订日期 |
修订者 |
修订内容 |
备注 |
20180527 |
brekalinux |
H arbor 部署 |
初稿 |
使用参考地址 : https://vmware.github.io/harbor/cn/
部署参考地址 : https://github.com/vmware/harbor/blob/master/docs/installation_guide.md
Github 地址 : https://github.com/vmware/harbor.git
1. 技术背景介绍 ;
Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项 目 ;
Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器, 通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution 。作为一个企业级私有 Registry 服务器, Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。 Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中, 确保数据和知识产权在公司内部网络中管控。另外, Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等 。
2. 功能介绍;
Ø 基于角色的访问控制 - 用户与 Docker 镜像仓库通过 “ 项目 ” 进行组织管理,一个用户可以对多个镜像仓库在同一命名空间( project )里有不同的权限 。
Ø 镜像复制 - 镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景 。
Ø 图形化用户界面 - 用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间 。
Ø AD/LDAP 支持 - Harbor 可以集成企业内部已有的 AD/LDAP ,用于鉴权认证管理 。
Ø 审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理 。
Ø 国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来 。
Ø RESTful API - RESTful API 提供给管理员对于 Harbor 更多的操控 , 使得与其它管理软件集成变得更容易 。
Ø 部署简单 - 提供在线和离线两种安装工具, 也可以安装到 vSphere 平台 (OVA 方式 ) 虚拟设备 。
3. 硬件支持要求 ;
资 源 |
最低配置 |
最佳配置 |
CPU |
2 CPU |
4CPU 或更高 |
M em |
4 GB |
8GB 或更高 |
Disk |
40 GB |
160 G B 或更高 |
4. 软件版本要求 ;
软件名 |
软件版本 |
相关描述 |
Python |
2.7 版本或更高 |
默认 cenots 系统自带 , 注意 : 2.7 版本以上 |
Docker engine |
1.10 版本或更高 |
参考地址 https://docs.docker.com/engine/installation/ |
Docker Compose |
1.6 版本或更高 |
参考地址 : https://docs.docker.com/compose/install/ |
Openssl |
最新优先 |
生成证书和密钥 |
5. 网络和端口 ;
服务监听端口 |
协议 |
描述 |
443 |
HTTPS |
Harbor UI 和 API 将 请求 这个端口上的 https 协议请求。 |
4443 |
HTTS |
连接到 Docker 内 部 信任服务,只有在启 认证 时才需要。 |
80 |
HTTP |
Harbor UI 和 API 将 请求 这个端口上的 http 协议请求 |
6 . harbor 部署实战 ;
6.1 部署流程 ;
(1) . 获取相关 harbor 软件 ; ( 需提前安装 docker ,Docker Compose,openssl)
(2). 生成证书和密钥 ;
(3). 配置 harbor.cfg ;
( 4 ) . 运行 install. sh 启动 harbor;
6 .2 获取软件;
软件获取地址 : https://github.com/vmware/harbor/releases
https://github.com/vmware/harbor/archive/v1.5.0.zip
$ tar xvf harbor-online-installer-<version>.tgz ( 在线安装 )
$ tar xvf harbor-offline-installer-<version>.tgz (离线安装 )
6. 3 配置 https 证书 ;
6.3.1 配置自签名证书 ;
(1). 进入目录创建C A 认证;
cd /app/harbor/cert
[root@docker-harbor]#localdomain= reg.ops.com
( 2).根据自己 需要进行 修改 :
openssl req -nodes -subj "/C=CN/ST=GuangDong/L=DongGuan/CN=$localdomain" -newkey rsa:2048 -keyout $localdomain.key -out $localdomain.csr
openssl x509 -req -days 3650 -in $localdomain.csr -signkey $localdomain.key -out $localdomain.crt
openssl x509 -req -in $localdomain.csr -CA $localdomain.crt -CAkey $localdomain.key -CAcreateserial -out $localdomain.crt -days 10000
6.3.2 配置 商业 证书 ;
注意 :
https 商业证书需要提前在证书的提供商进行购买 ;
1 . 将商业的的证书和密钥放置到 harbor.cfg 配置文件下 :
例如 :
ssl_cert = /app/harbor/cert/ops.com.crt # 证书
ssl_cert_key = //app/harbor/cert/ops.com.key.pem # 密钥
6.3.3 docker 配置自签名客户端认证;
注意 :
1. 自签名 docker 需要配置客户端认证
2. 商业证书则不用配置,因客户端能识别;
3. 否则 d ocker login reg.chehejia.com 会出现如下错误
ping attempt failed with error: Get https:// reg . chehejia /v2/: x509:
certificate is valid for server, not reg.chehejia.com
[root@docker-harbor]# mkdir -p /etc/docker/certs.d/reg.chehejia.com /
[root@docker-harbor]# cp /app/harbor/cert/reg.ops.com.crt /etc/docker/certs.d/reg.ops.com / /ca.crt
6. 4 调整配置文件 ;
[root@k8s-cluster-master01 harbor]# grep -v "^#" harbor.cfg |grep -v "^$"
_version = 1.5.0
hostname = reg.ops.com ### 访问域名地址
ui_url_protocol = https # 配置访问协议 , 默认为 http; 如果要启动 SSl 认证h ttps
max_job_workers = 50
customize_crt = on
####### 可选的 https 证书配置地址
ssl_cert = /app/harbor/cert/ops.com.crt # 证书
ssl_cert_key = /chj/app/harbor/cert/ops.com.key.pem # 密钥 #
secretkey_path = /data
######################
admiral_url = NA
log_rotate_count = 50
log_rotate_size = 200M
http_proxy =
https_proxy =
no_proxy = 127.0.0.1,localhost,ui
email_identity =
email_server = smtp.mydomain.com
email_server_port = 25
email_username = sample_admin@mydomain.com
email_password = abc
email_from = admin <sample_admin@mydomain.com>
email_ssl = false
email_insecure = false
harbor_admin_password = Harbor12345 ##web 控制台登录密码
auth_mode = db_auth
ldap_url = ldaps://ldap.mydomain.com 配置 ####ldap###
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid
ldap_scope = 2
ldap_timeout = 5
ldap_verify_cert = true
ldap_group_basedn = ou=group,dc=mydomain,dc=com
ldap_group_filter = objectclass=group
ldap_group_gid = cn
ldap_group_scope = 2 #### 配置 ldap 完毕 ########
self_registration = on
## 数据库密码# ##
token_expiration = 30 # token 过期时间,默认为 30 分钟
project_creation_restriction = everyone
db_host = mysql
db_password = root123
db_port = 3306
db_user = root
redis_url = redis:6379
clair_db_host = postgres
clair_db_password = password
clair_db_port = 5432
clair_db_username = postgres
clair_db = postgres
uaa_endpoint = uaa.mydomain.org
uaa_clientid = id
uaa_clientsecret = secret
uaa_verify_cert = true
uaa_ca_cert = /path/to/ca.pem
registry_storage_provider_name = filesystem
registry_storage_provider_config =
6.5 运行 harbor 服务 ;
[root@docker-harbor]# ./install.sh
注意 :
1. 运行前必须安装 docker 并启动 docker 服务 , 和 Docker Compose 服务 ;
2 . 运行启动过程中会拉去对应的 docker 镜像 比较慢,耐心等待完毕后自动启动;
3. 建议提前配置 docker 加速器 ( 可选择阿里云加速器 ) ;
[root@docker-harbor]# docker -c ompose stop ### 关闭harbor
7.docker 部署 ;
7.1 docker 部署 ;
[root@docker-harbor]# yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 [root@docker-harbor]# yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo [root@docker-harbor]# yum-config-manager --enable docker-ce-edge [root@docker-harbor]# yum install docker-ce [root@docker-harbor]# systemctl start docker
7. 2 部署 Docker Compose
[root@docker-harbor]# curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose [root@docker-harbor]# chmod +x /usr/local/bin/docker-compose [root@docker-harbor]# docker-compose --version docker-compose version 1.21.2, build a133471
8. 使用教程 ;
8.1 harbor 测试 ;
1. 访问域名 ;
(2). 默认管理员账号密码 ;
a dmin/ Harbor12345
( 3) 新建项目 ;
( 4 ) . 添加用户 ;
( 5) . 添加项目成员;
8. 2 使用 docker 上传镜像至 harbor;
(1). 官 网拉取一个测试镜像 ( nginx)
(2) 标记本地镜像,将其归入 harbor 仓库 。
[root@docker-harbor ~]# docker tag docker.io/nginx:latest reg.chehejia.com/public/nginx:v1
( 3). 配置登录 harbor ;
(4). push 镜像到 harbor ;
(5). H arbor 控制台查看 ;
9. 技术总结 ;
1. harbor 使用非常便捷 ,
2. 严格的权限划分,对应镜像使用权限严格控制 ;
3 . k8s 和 docker 易用;
4. 部署技术成本较小 ( Compose 统一管理 )
5. 方便支持 ldap 接入适用企业用户 ;
6. 审计查询方便 ;
以上所述就是小编给大家介绍的《企业级Registry服务器(harbor)部署》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 小白系列之Flask服务器部署
- Jenkins 远程部署 Linux 服务器
- 服务器从安装到部署全过程(二)
- Vue应用部署到服务器的正确方式
- 带你迈过那些部署服务器时的坑?
- 如何将 GitHub 上的代码一键部署到服务器?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Blockchain Basics
Daniel Drescher / Apress / 2017-3-16 / USD 20.99
In 25 concise steps, you will learn the basics of blockchain technology. No mathematical formulas, program code, or computer science jargon are used. No previous knowledge in computer science, mathema......一起来看看 《Blockchain Basics》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
HSV CMYK 转换工具
HSV CMYK互换工具