您好,欢迎来到福步贸易网!
关注我们
service@fobmy.com
全部产品分类
超赞_Docker私有仓库Harbor_多实例高可用
   https://www.fobmy.com 2023-04-12 15:47:37
核心提示:多实例共享存储架构图感谢 LB 不使用 Nginx,使用阿里 SLB。感谢架构需要考虑三个问题共享存储得选取,Harbor 得后端存储目前支
多实例共享存储架构图

感谢 LB 不使用 Nginx,使用阿里 SLB。

感谢架构需要考虑三个问题共享存储得选取,Harbor 得后端存储目前支持 AWS S3、 Openstack Swift, Ceph 等。感谢使用 阿里云极速性 NAS,磁盘 IO 性能比单块磁盘读写性能要好。使用 NFS V3 版本挂载。Session 不能在不同得实例上共享,所以 Harbor Redis 需要单独部署,并且多个实例连接相同得 Redis。Harbor 多实例数据库问题,必须单独部署一个数据库,并且多个实例连接相同得数据库。

注:生产环境如果使用阿里云 NAS,推荐使用 极速性 NAS,不推荐使用 通用型 NAS。

阿里云 NAS 性能参考文档:

感谢分享help.aliyun感谢原创分享者/document_detail/124577.html?spm=a2c4g.11186623.6.552.2eb05ea0HJUgUB

部署资源部署

Harbor 选择在线部署,使用 docker-compose 部署,docker-compose 和 Docker 部署环境感谢不再介绍,网上可以搜索到相关文档。

挂载阿里云极速性 NAS

harbor1 和 harbor2 机器都需要执行挂载 NAS

配置开机自动挂载,打开 /etc/fstab 配置文件,添加挂载命令。

# 创建 NAS 挂载目录$ mkdir /data # 提高同时发起得 NFS 请求数量$ sudo echo "options sunrpc tcp_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf$ sudo echo "options sunrpc tcp_max_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf

挂载 NFS v4 文件系统,添加以下命令:

file-system-id.region.nas.aliyuncs感谢原创分享者:/ /data nfs vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0

如果您要挂载 NFS v3 文件系统,添加以下命令:

file-system-id.region.nas.aliyuncs感谢原创分享者:/ /data nfs vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0# 在 /etc/fstab 配置文件添加好挂载,并执行挂载$ mount -a # 检查挂载,如果结果中存在 NFS 文件系统得挂载地址,则说明挂载成功$ df -h | grep aliyun临时部署单机 Harbor

在 harbor1 机器上操作

# 在线部署 Harbor$ cd /opt/$ wget 感谢分享github感谢原创分享者/goharbor/harbor/releases/download/v2.2.1/harbor-online-installer-v2.2.1.tgz$ tar xf harbor-online-installer-v2.2.1.tgz$ cd /opt/harbor$ cp harbor.yml.tmpl harbor.yml # 创建 harbor 数据存储$ mkdir /data/harbor # 添加域名证书,已有域名 SSL 证书$ mkdir /data/harbor/cert # 把 SSL 证书公钥和私钥上传到 /data/harbor/cert 目录中$ scp harbor.example.pem root等192.168.10.10:/data/harbor/cert/$ scp harbor.example.key root等192.168.10.10:/data/harbor/cert/ # 配置 harbor.yml 文件,下面是修改后文件与原文件比较结果$ diff harbor.yml harbor.yml.tmpl 5c5< hostname: harbor.example感谢原创分享者---> hostname: reg.mydomain感谢原创分享者17,18c17,18< certificate: /data/harbor/cert/harbor.example.pem< private_key: /data/harbor/cert/harbor.example.key---> certificate: /your/certificate/path> private_key: /your/private/key/path29c29< external_url: 感谢分享harbor.example感谢原创分享者---> # external_url: 感谢分享reg.mydomain感谢原创分享者:8433 < data_volume: /data/harbor---> data_volume: /data # 生成配置文件$ cd /opt/harbor # harbor 开启 helm charts 和 镜像漏洞扫描$ ./prepare --with-notary --with-trivy --with-chartmuseum # 安装$ ./install.sh --with-notary --with-trivy --with-chartmuseum # 查看$ docker-compose ps单独部署 Harbor 数据库和 Redis

# 创建 postgres 和 redis 存储目录$ mkdir -p /data/harbor-redis /data/harbor-postgresql # 修改所属组$ chown -R 999.999 /data/harbor-redis /data/harbor-postgresql# 创建 postgres 和 redis docker-compose.yml 文件$ vim docker-compose.yml version: '2.3' services:redis:image: goharbor/redis-photon:v2.2.1container_name: harbor-redisrestart: alwayscap_drop:- ALLcap_add:- CHOWN- SETG发布者会员账号- SETU发布者会员账号volumes:- /data/harbor-redis:/var/lib/redisnetworks:- harbor-dbports:- 6379:6379postgresql:image: goharbor/harbor-db:v2.2.1container_name: harbor-postgresqlrestart: alwayscap_drop:- ALLcap_add:- CHOWN- DAC_OVERR发布者会员账号E- SETG发布者会员账号- SETU发布者会员账号environment:POSTGRES_USER: postgresPOSTGRES_PASSWORD: test2021volumes:- /data/harbor-postgresql:/var/lib/postgresql/data:znetworks:- harbor-dbports:- 5432:5432 networks:harbor-db:driver: bridge # 部署 postgres 和 redis$ docker-compose up -d导入 postgres 数据

# 进入临时 harbor-db 容器导出相关表及数据$ docker exec -it -u postgres harbor-db bash # 导出数据$ pg_dump -U postgres registry > /tmp/registry.sql$ pg_dump -U postgres notarysigner > /tmp/notarysigner.sql$ pg_dump -U postgres notaryserver > /tmp/notaryserver.sql # 将数据导入单独部署得 PostgreSQL 数据库$ psql -h 192.168.10.10 -U postgres registry -W < /tmp/registry.sql$ psql -h 192.168.10.10 -U postgres notarysigner -W < /tmp/notarysigner.sql$ psql -h 192.168.10.10 -U postgres notaryserver -W < /tmp/notaryserver.sql清理临时部署单机 Harbor 数据和相关配置文件

# 清理 harbr 数据和配置文件$ cp -a /data/harbor/cert /tmp/$ rm -rf /data/harbor/*$ rm -rf /opt/harbor$ cp -a /tmp/cert /data/harbor/ # 重新创建配置文件$ cd /opt/$ tar xf harbor-online-installer-v2.2.1.tgz$ cd /opt/harbor # 修改配置文件,连接单独部署 postgres 和 redis,注释 harbor 自带得 postgres 和 redis$ cp harbor.yml.tmpl harbor.yml$ diff harbor.yml harbor.yml.tmpl 5c5< hostname: harbor.example感谢原创分享者---> hostname: reg.mydomain感谢原创分享者17,18c17,18< certificate: /data/harbor/cert/harbor.example.pem< private_key: /data/harbor/cert/harbor.example.key---> certificate: /your/certificate/path> private_key: /your/private/key/path29c29< external_url: 感谢分享harbor.example感谢原创分享者---> # external_url: 感谢分享reg.mydomain感谢原创分享者:8433 37c37< # database:---> database:39c39< # password: root123---> password: root12341c41< # max_idle_conns: 50---> max_idle_conns: 5044c44< # max_open_conns: 1000---> max_open_conns: 100047c47 < data_volume: /data/harbor---> data_volume: /data 135,158c135,158< external_database:< harbor:< host: 192.168.10.10< port: 5432< db_name: registry< username: postgres< password: test2021< ssl_mode: disable< max_idle_conns: 50< max_open_conns: 1000< notary_signer:< host: 192.168.10.10< port: 5432< db_name: notarysigner< username: postgres< password: test2021< ssl_mode: disable< notary_server:< host: 192.168.10.10< port: 5432< db_name: notaryserver< username: postgres< password: test2021< ssl_mode: disable---> # external_database:> # harbor:> # host: harbor_db_host> # port: harbor_db_port> # db_name: harbor_db_name> # username: harbor_db_username> # password: harbor_db_password> # ssl_mode: disable> # max_idle_conns: 2> # max_open_conns: 0> # notary_signer:> # host: notary_signer_db_host> # port: notary_signer_db_port> # db_name: notary_signer_db_name> # username: notary_signer_db_username> # password: notary_signer_db_password> # ssl_mode: disable> # notary_server:> # host: notary_server_db_host> # port: notary_server_db_port> # db_name: notary_server_db_name> # username: notary_server_db_username> # password: notary_server_db_password> # ssl_mode: disable161,175c161,175< external_redis:< # support redis, redis+sentinel< # host for redis: <host_redis>:<port_redis>< # host for redis+sentinel:< # <host_sentinel1>:<port_sentinel1>,<host_sentinel2>:<port_sentinel2>,<host_sentinel3>:<port_sentinel3>< host: 192.168.10.10:6379< password:< # sentinel_master_set must be set to support redis+sentinel< #sentinel_master_set:< # db_index 0 is for core, it's unchangeable< registry_db_index: 1< jobservice_db_index: 2< chartmuseum_db_index: 3< trivy_db_index: 5< idle_timeout_seconds: 30---> # external_redis:> # # support redis, redis+sentinel> # # host for redis: <host_redis>:<port_redis>> # # host for redis+sentinel:> # # <host_sentinel1>:<port_sentinel1>,<host_sentinel2>:<port_sentinel2>,<host_sentinel3>:<port_sentinel3>> # host: redis:6379> # password:> # # sentinel_master_set must be set to support redis+sentinel> # #sentinel_master_set:> # # db_index 0 is for core, it's unchangeable> # registry_db_index: 1> # jobservice_db_index: 2> # chartmuseum_db_index: 3> # trivy_db_index: 5> # idle_timeout_seconds: 30# 部署第壹个节点 harbor$ cd /opt/harbor # harbor 开启 helm charts 和 镜像漏洞扫描$ ./prepare --with-notary --with-trivy --with-chartmuseum # 安装$ ./install.sh --with-notary --with-trivy --with-chartmuseum # 查看$ docker-compose ps # 拷贝配置到 harbor2 机器上$ scp -r /opt/harbor 192.168.10.11:/opt/

在 harbor2 机器上操作

# 部署第二个节点 harbor$ cd /opt/harbor # harbor 开启 helm charts 和 镜像漏洞扫描$ ./prepare --with-notary --with-trivy --with-chartmuseum # 安装$ ./install.sh --with-notary --with-trivy --with-chartmuseum # 查看$ docker-compose ps配置阿里云 SLB

不具体介绍 SLB 配置方法,具体配置方法参考下面阿里云 SLB 配置文档,配置 443 端口,使用 TCP 协议,后端映射到两台 harbor1 和 harbor2 443 端口上。

 

免责声明:
1.本站部份内容系网友自发上传与转载,不代表本网赞同其观点;
2.秉承互联网开放、包容的精神,福步贸易网欢迎各方(自)媒体、机构转载、引用我们原创内容,但要严格注明来源:福步贸易网
3.我们倡导尊重与保护知识产权,如发现本站文章存在版权问题,烦请将版权疑问、授权证明、版权证明、联系方式等,发邮件至service@fobmy.com,我们将第一时间核实、处理,谢谢。

 
福步贸易网  |  意见建议  |  隐私政策  |  如何免费信息发布?  |  如何开通福步贸易网VIP?  |  VIP会员能享受到什么服务?  |  怎样让客户第一时间找到您的商铺?  |  如何推荐产品到自己商铺的首页?  |  忘记了福步贸易网的账号密码怎么办?  |  如何注册成为福步贸易网的新用户?  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备15082249号-2 |  m.fobmy.com