Harbor 企业级 Registry 服务器

Harbor 企业级 Registry 服务器Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理 、LDAP、审计、管理

大家好,欢迎来到IT知识分享网。

软件简介

Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理 (RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。

  • 基于角色的访问控制 – 用户与 Docker 镜像仓库通过 “项目” 进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
  • 镜像复制 – 镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
  • 图形化用户界面 – 用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。
  • AD/LDAP 支持 – Harbor 可以集成企业内部已有的 AD/LDAP,用于鉴权认证管理。
  • 审计管理 – 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  • 国际化 – 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
  • RESTful API – RESTful API 提供给管理员对于 Harbor 更多的操控,使得与其它管理软件集成变得更容易。
  • 部署简单 – 提供在线和离线两种安装工具, 也可以安装到 vSphere 平台 (OVA 方式) 虚拟设备。

使用注意事项

HTTP与HTTPS

由于私有环境没有https通讯证书,所以已下部署均是http协议。docker默认是不支持http的,需要做如下修改。

[root@cloud docker]# vi /etc/docker/daemon.json

将其中insecure-registries地址换成自己环境真实的即可。

{
“exec-opts”: [“native.cgroupdriver=systemd”],
“log-driver”: “json-file”,
“log-opts”: {
“max-size”: “100m”
},
“storage-driver”: “overlay2”,
“storage-opts”: [
“overlay2.override_kernel_check=true”
],
“registry-mirrors”: [
“https://docker.mirrors.ustc.edu.cn”,
“https://registry.docker-cn.com”
],
“insecure-registries”: [
“xxx.xxx.xxx.xxx:8082”
],
“graph”:”/data/dockerlib”
}

部署

部署前工作

Harbor官方文档

Harbor下载地址

关闭防火墙和 selinux

[root@localhost harbor]# systemctl disable –now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost harbor]# systemctl stop –now firewalld
[root@localhost harbor]# cat /etc/selinux/config

SELINUX=disabled // 修改这一行
// 修改完之后重启

[root@localhost harbor]# reboot
[root@localhost harbor]# setenforce 0
setenforce: SELinux is disabled

下载 harbor包

配置docker加速器

[root@localhost ~]# vim /etc/docker/daemon.json
{
“registry-mirrors”: [“https://kgdsiwq8.mirror.aliyuncs.com”]
}


// 重新加载docker服务

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
// 查看加速器配置情况

[root@localhost ~]# docker info
……以上省略
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://kgdsiwq8.mirror.aliyuncs.com/ // 加速器配置成功
Live Restore Enabled: false

单节点部署

(其中hostname可以直接配置为IP地址)

// 解压 harbor包到 /usr/local/ 目录下
[root@localhost ~]# tar xf harbor-offline-installer-v2.6.1.tgz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ls
bin games include lib64 sbin src
etc harbor lib libexec share
[root@localhost local]# cd harbor/
[root@localhost harbor]# ls
LICENSE harbor.v2.6.1.tar.gz install.sh
common.sh harbor.yml.tmpl prepare
// 设置主机名
[root@localhost harbor]# hostnamectl set-hostname node01
[root@localhost harbor]# bash
[root@node1 harbor]# hostname
node01
[root@node01 harbor]# cp harbor.yml.tmpl harbor.yml
[root@node01 harbor]# vim harbor.yml
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: node01 // 添加主机名
# https related config
#https: // 注释掉证书,不使用证书就需要注释
# https port for harbor, default is 443
# port: 443 // 注释
# The path of cert and key files for nginx
# certificate: /your/certificate/path // 注释
# private_key: /your/private/key/path // 注释
harbor_admin_password: Harbor12345 // 默认的登录密码
// 以上这些需要修改,其余保持默认
// 添加主机映射
[root@localhost harbor]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.91.137 node01
// 测试能否ping通 node01 主机
[root@localhost harbor]# ping node01
PING node1.example.com (192.168.91.137) 56(84) bytes of data.
64 bytes from node1.example.com (192.168.91.137): icmp_seq=1 ttl=64 time=0.044 ms
64 bytes from node1.example.com (192.168.91.137): icmp_seq=2 ttl=64 time=0.033 ms
//加载离线镜像
[root@localhost harbor]# docker load -i harbor.v2.6.1.tar.gz
[root@localhost harbor]# ./prepare
// 启动脚本进行安装
[root@localhost harbor]# ./install.sh
[Step 0]: checking if docker is installed …
Note: docker version: 20.10.12
[Step 1]: checking docker-compose is installed …
Note: docker-compose version: 1.29.2
[Step 2]: loading Harbor images …
……安装过程省略
✔ —-Harbor has been installed and started successfully.—-
// 安装完成会自动启动很多容器

[root@node1 harbor]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3daa18aedde3 goharbor/harbor-jobservice:v2.3.5 “/harbor/entrypoint.…” 5 seconds ago Up 4 seconds (health: starting) harbor-jobservice
67cda2a01e08 goharbor/nginx-photon:v2.3.5 “nginx -g ‘daemon of…” 5 seconds ago Up 4 seconds (health: starting) 0.0.0.0:80->8080/tcp, :::80->8080/tcp nginx
388f512bcfe1 goharbor/harbor-core:v2.3.5 “/harbor/entrypoint.…” 6 seconds ago Up 4 seconds (health: starting) harbor-core
b4e7fefa599e goharbor/harbor-db:v2.3.5 “/docker-entrypoint.…” 7 seconds ago Up 5 seconds (health: starting) harbor-db
bba92 goharbor/redis-photon:v2.3.5 “redis-server /etc/r…” 7 seconds ago Up 5 seconds (health: starting) redis
42368cf0e78b goharbor/registry-photon:v2.3.5 “/home/harbor/entryp…” 7 seconds ago Up 5 seconds (health: starting) registry
ed564a1e593b goharbor/harbor-registryctl:v2.3.5 “/home/harbor/start.…” 7 seconds ago Up 5 seconds (health: starting) registryctl
daa189f31bc3 goharbor/harbor-portal:v2.3.5 “nginx -g ‘daemon of…” 7 seconds ago Up 5 seconds (health: starting) harbor-portal
8ac96968e301 goharbor/harbor-log:v2.3.5 “/bin/sh -c /usr/loc…” 7 seconds ago Up 6 seconds (health: starting) 127.0.0.1:1514->10514/tcp harbor-log


// 安装完成之后会多两个文件,一个common,一个docker-compose.yml

[root@localhost harbor]# ls /usr/local/harbor/
LICENSE docker-compose.yml harbor.yml.tmpl
common harbor.v2.3.5.tar.gz install.sh
common.sh harbor.yml prepare
[root@node1 harbor]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 127.0.0.1:1514 0.0.0.0:*
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 128 [::]:80 [::]:*

4.5 harbor网页操作

使用系统账号登录

http://xxx.xxx.xxx.xxx:8082/harbor/projects admin/Harbor12345

仓库管理功能

定义Registry 实例,可以是公网的也可以是私有的,比如网易163的https://hub.c.163.com

Harbor 企业级 Registry 服务器

和docker HUB

Harbor 企业级 Registry 服务器

添加完成后,点击测试连接即可。

项目功能

项目可以作为私有的镜像仓库管理,也可以代理共有环境的镜像信息。推送私有环境的镜像,也需要先建立项目方可。如下展示的是将公共镜像私有化。

  1. 公共镜像打tag

docker tag grafana/grafana:9.2.1 xxx.xxx.xxx.xxx:8082/abu/grafana:9.2.1

  1. 查看镜像

[root@cloud docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
10.21.5.30:8081/abu/centos user d8506ac3842d 20 hours ago 193MB
centos user d8506ac3842d 20 hours ago 193MB
grafana/grafana 9.2.1 46e73c2b7a35 3 days ago 347MB

  1. 镜像推送

[root@cloud docker]# docker push xxx.xxx.xxx.xxx:8082/abu/grafana:9.2.1
The push refers to repository [xxx.xxx.xxx.xxx:8082/abu/grafana]
7cb09c9a4372: Pushed
f0be059d864b: Pushed
ef88b45a119f: Pushed
3b2b7c569a4c: Pushed
839b0b40ab56: Pushed
adff21d3bcca: Pushed
1e2c: Pushed
8675ede87d30: Pushed
34d5ebaa5410: Pushed
9.2.1: digest: sha256:33be3c2d3fae24ae6bd1c01ec2c7f329da4707af2 size: 2203

  1. 管理态

harbor网页可以看到abu状态想多了一个镜像信息。

代理镜像

新建项目时选择镜像代理即可,项目名称很重要,需要在平常使用的镜像前缀加上。

Harbor 企业级 Registry 服务器

未使用代理的时候

[root@cloud docker]# docker pull bitnami/prometheus:latest
latest: Pulling from bitnami/prometheus
0796bf144e3f: Pull complete
f2e46fdc7dbf: Pull complete
16a37524c720: Pull complete
71419d3ad358: Pull complete
a2ed6d2d4643: Pull complete
b3a121d40da9: Pull complete
2ee758bc629a: Pull complete
af7e41fdf0e4: Pull complete
Digest: sha256:145fa39d958e0546b1c154bb82215cec753c7268ba447b093d2490a556d73bd3
Status: Downloaded newer image for bitnami/prometheus:latest
docker.io/bitnami/prometheus:latest

使用harbor代理共有环境

[root@bogon cedar]# docker pull xxx.xxx.xxx.xxx:8082/dockerhub/bitnami/prometheus:latest
latest: Pulling from dockerhub/bitnami/prometheus
1dbdd: Pull complete
7a956b97b95f: Pull complete
Digest: sha256:35d02ae6b542d7980df579fe61bf096f05dd8cd80a046461
Status: Downloaded newer image for xxx.xxx.xxx.xxx:8082/dockerhub/bitnami/prometheus:latest
xxx.xxx.xxx.xxx:8082/dockerhub/bitnami/prometheus:latest

Harbor 企业级 Registry 服务器

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/53932.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信