企业级Registry服务器(harbor)部署

栏目: 编程工具 · 发布时间: 5年前

                                                          企业级 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. 访问域名 ;

企业级Registry服务器(harbor)部署

(2). 默认管理员账号密码 ;

a dmin/ Harbor12345

( 3) 新建项目 ;

企业级Registry服务器(harbor)部署

4 . 添加用户 ;

企业级Registry服务器(harbor)部署

( 5) . 添加项目成员;

企业级Registry服务器(harbor)部署

企业级Registry服务器(harbor)部署

8. 2 使用 docker   上传镜像至 harbor;

(1). 网拉取一个测试镜像 ( nginx)

企业级Registry服务器(harbor)部署

(2) 标记本地镜像,将其归入 harbor 仓库

[root@docker-harbor ~]# docker tag docker.io/nginx:latest reg.chehejia.com/public/nginx:v1

( 3). 配置登录 harbor ;

企业级Registry服务器(harbor)部署

(4). push   镜像到 harbor ;

企业级Registry服务器(harbor)部署

(5).   H arbor   控制台查看 ;

企业级Registry服务器(harbor)部署

企业级Registry服务器(harbor)部署

9. 技术总结 ;

1.  harbor   使用非常便捷 ,

2.    严格的权限划分,对应镜像使用权限严格控制 ;

3    . k8s   docker   易用;

4.  部署技术成本较小 ( Compose 统一管理 )

5.     方便支持 ldap 接入适用企业用户 ;

6.     审计查询方便 ;


以上所述就是小编给大家介绍的《企业级Registry服务器(harbor)部署》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Blockchain Basics

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 压缩/解压工具

在线压缩/解压 HTML 代码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具