马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
目次
一、Harbor 简介
1.1 什么是Harbor
1.2 Harbor的特性
1.3 Harbor的构成
二、Harbor 摆设
2.1 摆设 Docker-Compose 服务
2.2 摆设 Harbor 服务
(1)下载或上传 Harbor 安装步调
(2)修改harbor安装的设置文件
2.3 启动 Harbor
2.4 检察 Harbor 启动镜像
2.5 创建一个新项目
2.6 在其他客户端上传镜像
(1)在 Docker 客户端设置使用
(2)革新 Harbor 的 Web 管理界面举行检察,会发现 myproject-kgc 项目内里有两个镜像
三、维护管理Harbor
3.1 通过 Harbor Web 创建项目
3.2 创建 Harbor 用户
(1)创建用户并分配权限
(2)添加项目成员
(3)在客户端上使用平凡账户使用镜像
3.3 检察日志
3.4 修改 Harbor.cfg 设置文件
3.5 移除 Harbor 服务容器同时保存镜像数据/数据库,并举行迁徙
3.6 如需重新摆设,必要移除 Harbor 服务容器全部数据
四、Harbor堆栈高可用
4.1 主堆栈设置
1.堆栈管理添加目的
2. 编辑备仓路径 指向备用堆栈
3. 堆栈目的添加完成
4. 添加同步计谋
5. 编辑同步计谋 ------复制模式选择主动推送
4.2 备堆栈设置
1. 堆栈管理添加目的 ---和主堆栈一样设置 ---指向主堆栈
2. 此时主堆栈重新推送镜像 删除镜像 备堆栈都会同步
3. 备堆栈开起主动拉取计谋 主动哀求主仓同步
一、Harbor 简介
1.1 什么是Harbor
Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目的是资助用户敏捷搭建一个企业级的 Docker Registry 服务。
Harbor以 Docker 公司开源的 Registry 为根本,提供了图形管理 UI 、基于脚色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志 (Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
Harbor 的每个组件都是以 Docker 容器的情势构建的,使用 docker-compose 来对它举行摆设。用于摆设 Harbor 的 docker-compose 模板位于 harbor/docker-compose.yml。
1.2 Harbor的特性
1、基于脚色控制:用户和堆栈都是基于项目举行构造的,而用户在项目中可以拥有差异的权限。
2、基于镜像的复制计谋:镜像可以在多个Harbor实例之间举行复制(同步)。
3、支持 LDAP/AD:Harbor 可以集成企业内部已有的 AD/LDAP(雷同数据库的一张表),用于对已经存在的用户认证和管理。
4、镜像删除和垃圾接纳:镜像可以被删除,也可以接纳镜像占用的空间。
5、图形化用户界面:用户可以通过欣赏器来欣赏,搜刮镜像堆栈以及对项目举行管理。
6、审计管理:全部针对镜像堆栈的使用都可以被记载追溯,用于审计管理。
7、支持 RESTful API:RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与别的管理软件集成变得更容易。
8、Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了本身的业务模板。
1.3 Harbor的构成
Harbor 在架构上告急有 Proxy、Registry、Core services、Database(Harbor-db)、Log collector(Harbor-log)、Job services 六个组件。
- Proxy: 是一个 nginx 的前端署理,Harbor 的 Registry、UI、Token 服务等组件,都处在 nginx 反向署理后边。 该署理未来自欣赏器、docker clients 的哀求转发到后端差异的服务上。
- Registry: 负责储存 Docker 镜像,并处置惩罚 Docker push/pull 下令。由于要对用户举行访问控制,即差异用户对 Docker 镜像 有差异的读写权限,Registry 会指向一个 Token 服务,逼迫用户的每次 Docker pull/push 哀求都要携带一个合法的 Token, Registry 会通过公钥对 Token 举行解密验证。
- Core services: Harbor的焦点功能,告急提供以下3个服务:
1)UI(harbor-ui): 提供图形化界面,资助用户管理 Registry 上的镜像(image), 并对用户举行授权。
2)WebHook:为了实时获取Registry 上image 状态厘革的情况,在Registry 上设置 Webhook,把状态厘革转达给 UI 模块。
3)Token 服务:负责根据用户权限给每个 Docker push/pull 下令签发 Token。Docker 客户端向 Registry 服务发起的哀求, 如果不包罗 Token,会被重定向到 Token 服务,得到 Token 后再重新向 Registry 举行哀求。
- Database(harbor-db):为core services提供数据库服务,负责储存用户权限、审计日志
、Docker 镜像分组信息等数据。
- Job services: 告急用于镜像复制,当地镜像可以被同步到长途 Harbor 实例上。
- Log collector(harbor-log): 负责网络其他组件的日志到一个地方。
Harbor 的每个组件都是以 Docker 容器的情势构建的,因此,使用 Docker Compose 来对它举行摆设。
统共分为7个容器运行,通过在docker-compose.yml所在目次中实行 docker-compose ps 下令来检察, 名称分别为:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。
此中 harbor-adminserver 告急是作为一个后端的设置数据管理,并没有太多的其他功能。harbor-ui 所要使用的全部数据都通过 harbor-adminserver 如许一个数据设置管理中央来完成。
二、Harbor 摆设
2.1 摆设 Docker-Compose 服务
//下载大概上传 Docker-Compose
- curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- chmod +x /usr/local/bin/docker-compose
- docker-compose -v
复制代码 2.2 摆设 Harbor 服务
(1)下载或上传 Harbor 安装步调
- Harbor的压缩包下载地址:https://github.com/goharbor/harbor/releases
- wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
- tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
复制代码 (2)修改harbor安装的设置文件
- vim /usr/local/harbor/harbor.cfg
- --5行--修改,设置为Harbor服务器的IP地址或者域名
- hostname = 192.168.80.10
- --59行--指定管理员的初始密码,默认的用户名/密码是admin/Harbor12345
- harbor_admin_password = Harbor12345
复制代码
关于 Harbor.cfg 设置文件中有两类参数:所需参数和可选参数
1、所需参数:这些参数必要在设置文件 Harbor.cfg 中设置。如果用户更新它们并运行 install.sh 脚本重新安装 Harbor, 参数将收效。详细参数如下:
●hostname:用于访问用户界面和 register 服务。它应该是目的呆板的 IP 所在或完全限定的域名(FQDN),比方 192.168.80.10 或 hub.kgc.cn。不要使用 localhost 或 127.0.0.1 为主机名。
●ui_url_protocol:(http 或 https,默以为 http)用于访问 UI 和令牌/关照服务的协议。如果公证处于启用状态,则此参数必须为 https。
●max_job_workers:镜像复制作业线程。
●db_password:用于db_auth 的MySQL数据库root 用户的暗码。
●customize_crt:该属性可设置为打开或关闭,默认打开。打开此属性时,预备脚本创建私钥和根证书,用于天生/验证注册表令牌。当由外部泉源提供密钥和根证书时,将此属性设置为 off。
●ssl_cert:SSL 证书的路径,仅当协议设置为 https 时才应用。
●secretkey_path:用于在复制计谋中加密或解密长途 register 暗码的密钥路径。
2、可选参数:这些参数对于更新是可选的,即用户可以将其保存为默认值,并在启动 Harbor 后在 Web UI 上举行更新。如果进入 Harbor.cfg,只会在第一次启动 Harbor 时收效,随后对这些参数的更新,Harbor.cfg 将被忽略。
留意:如果选择通过 UI 设置这些参数,请确保在启动 Harbor 后立刻实行此使用。详细来说,必须在注册或在 Harbor 中创建任何新用户之前设置所需的 auth_mode。当体系中有用户时(除了默认的 admin 用户), auth_mode 不能被修改。 详细参数如下:
●Email:Harbor 必要该参数才气向用户发送“暗码重置”电子邮件,而且只有在必要该功能时才启用。请留意,在默认情况下 SSL 毗连时没有启用。如果 SMTP 服务器必要 SSL,但不支持 STARTTLS,那么应该通过设置启用 SSL email_ssl = TRUE。
●harbor_admin_password:管理员的初始暗码,只在 Harbor 第一次启动时收效。之后, 此设置将被忽略,而且应在 UI 中设置管理员的暗码。请留意,默认的用户名/暗码是admin/Harbor12345。
●auth_mode:使用的认证范例,默认情况下,它是 db_auth,即根据存储在数据库中。对于LDAP身份验证,请将其设置为 ldap_auth。
●self_registration:启用/禁用用户注册功能。禁用时,新用户只能由 Admin 用户创建,只有管理员用户可以在 Harbor 中创建新用户。留意:当 auth_mode 设置为 ldap_auth 时,自注册功能将始终处于禁用状态,而且该标记被忽略。
●Token_expiration:由令牌服务创建的令牌的到期时间(分钟),默以为 30 分钟。
●project_creation_restriction:用于控制哪些用户有权创建项目的标记。默认情况下,每个人都可
|