企业级 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 上的代码一键部署到服务器?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。