关于harbor:Harbor在arm架构下亲测编译成功

先装置好Docker,docker-compose华为云arm架构装置Docker arm架构装置docker-compose Harbor官网: https://github.com/goharbor/h... Harbor官网没有提供arm架构的包,须要本人编译,我编译好的版本是:harbor-1.9.1 大家能够按我的博客,本人去编译,或评论留言给我,我发给大家我编译好的版本是: harbor-1.9.1 arm架构下编译Harbor#下载源码包 https://github.com/goharbor/harbor/archive/v1.9.1.tar.gzwget https://codeload.github.com/goharbor/harbor/tar.gz/v1.9.1#解压harbor源码包tar -zxvf v1.9.1.tar.gz #进入源码根目录cd harbor-1.9.1#编辑 harbor.yml 配置文件,批改其中的参数,例如主机名、明码等信息。vim make/harbor.yml#hostname = reg.mydomain.com#主机IPhostname: 122.9.0.1#明码harbor_admin_password: Harbor12345#批改数据保留目录data_volume: /data1/harborlog: location: /data1/var/log/harbor#harbor从1.6版本之后仅反对PostgreSQL数据库作为内部数据库,之前版本能够应用mysql#能够应用内部的redis#也能够应用自带的redis,就不要放开正文external_redis: host: 192.168.1.1 port: 6379 password: beyond2020#批改 Dockerfile,将 photon:2.0 批改为 photon:3.0,是因为 photon 3.0 才开始反对 aarch64。#有可能是photon:1.0 批改为 photon:3.0find ./ -type f|grep "Dockerfile$"|grep -v "\.D"|xargs sed -i "s#photon:2.0#photon:3.0#g"find ./ -type f|grep "Dockerfile$"|grep -v "\.D"|xargs sed -i "s#photon:1.0#photon:3.0#g"#启动编译组件性能。vim Makefile... ... BUILDBIN=true ... ... REGISTRYVERSION=v2.7.1... ... #批改以下几个文件,这几处是软件存在的 BUG,请知悉。vim make/photon/Makefile#批改为: /binary/bin/registry#如下:@echo "building registry container for photon..."@chmod 655 $(DOCKERFILEPATH_REG)/binary/bin/registry && $(DOCKERBUILD) -f $(DOCKERFILEPATH_REG)/$(DOCKERFILENAME_REG) -t $(DOCKERIMAGENAME_REG):$(REGISTRYVERSION)-$(VERSIONTAG) .@echo "Done."vim make/photon/registry/Dockerfile#批改为: COPY ./make/photon/registry/binary/bin/registry /usr/bin#如下COPY ./make/photon/common/install_cert.sh /harborCOPY ./make/photon/registry/entrypoint.sh /COPY ./make/photon/registry/binary/bin/registry /usr/binvim make/photon/registryctl/Dockerfile#批改为: COPY ./make/photon/registry/binary/bin/registry /usr/bin#如下:COPY ./make/photon/common/install_cert.sh /harborCOPY ./make/photon/registry/binary/bin/registry /usr/binCOPY ./make/photon/registryctl/start.sh /harbor/COPY ./make/photon/registryctl/harbor_registryctl /harbor/#拉取 golang 1.12.12 官网镜像。docker pull golang:1.12.12#编译、装置和启动 harbor 服务,开启 Notary 和 Clair 性能,执行如下命令。cd harbor-1.9.1make install GOBUILDIMAGE=golang:1.12.12 VERSIONTAG=v1.9.1 PKGVERSIONTAG=v1.9.1 UIVERSIONTAG=v1.9.1编译完查看Harbor启动状况docker ps#redis 始终在重启 Restartinggoharbor/redis-photon:v1.9.1 "redis-server /etc/r…" 6 minutes ago Restarting (139) 19 seconds ago goharbor/redis-photon:v1.9.1 查看日志报错如下:<jemalloc>: Unsupported system page size华为云arm架构docker启动redis报错:<jemalloc>: Unsupported system page size ...

September 5, 2022 · 2 min · jiezi

关于harbor:Linux安装Harbor亲测成功

Harbor简介Harbor 是为企业用户设计的容器镜像仓库开源我的项目,包含了权限治理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、治理界面、自我注册、HA 等企业必须的性能,同时针对中国用户的特点,设计镜像复制和中文反对等性能。 尽管Docker官网提供了公共的镜像仓库,然而从平安和效率等方面思考,部署咱们公有环境内的Registry也是十分必要的。Harbor是由VMware公司开源的企业级的Docker Registry治理我的项目,相比docker官网领有更丰盛的权限权力和欠缺的架构设计,实用大规模docker集群部署提供仓库服务。它次要提供 Dcoker Registry 治理界面UI,可基于角色访问控制,镜像复制, AD/LDAP 集成,日志审核等性能,齐全的反对中文。先装置好DockerCentos7离线装置Docker Linux下部署HarborHarbor官网下载: https://github.com/goharbor/h...下载包: harbor-offline-installer-v1.5.0.tgz #解压tar -zxvf harbor-offline-installer-v1.5.0.tgz#批改配置文件harbor.cfg,次要批改hostname为装置服务器的ip,如: 192.168.0.5#登录默认账号密码: admin/Harbor12345#批改 harbor.cfg#hostname = reg.mydomain.comhostname = 192.168.0.5#筹备sudo ./prepare#启动 sudo ./install.sh#报错,提醒要装置1.7.1+版本的docker-compose✖ Need to install docker-compose(1.7.1+) by yourself first and run this script again.装置docker-compose官网下载地址: https://github.com/docker/com...下载: docker-compose-Linux-x86_64 #复制cp docker-compose-Linux-x86_64 /usr/local/bin/docker-compose#可执行权限chmod +x /usr/local/bin/docker-compose#查看版本docker-compose version启动Harbor相干镜像#启动docker-compose up -d#这样是在线下载镜像,须要有网#docker-compose 相干命令docker-compose topdocker-compose psdocker-compose stopdocker-compose start 再次启动docker-compose down 停用移除所有容器docker-compose logsdocker ps #发现所有harbor相干的服务都启动OK了,示意装置结束 浏览器拜访: http://192.168.0.5/ 账户/明码: admin/Harbor12345 Docker配置仓库地址vim /etc/docker/daemon.json#减少上面内容,harbor默认端口为80状况,如果非80,须要在IP后加端口#{"insecure-registries":["harbor服务端IP"]}{"insecure-registries":["192.168.0.5"]}#从新加载配置systemctl daemon-reload#重启dockersystemctl restart docker#登录胜利docker login 192.168.0.5输出账户和明码#或者docker login 192.168.0.5 -u admin -p Harbor12345

August 30, 2022 · 1 min · jiezi

关于harbor:开源摘星计划Harbor-高可用集群设计及部署实操-视频基于离线安装方式

本文由开源摘星打算反对我的项目 Harbor 的贡献者「勾永彪」投稿。 开源摘星打算(WeOpen Star) 是由腾源会 2022 年推出的全新我的项目,旨在为开源人提供成长激励,为开源我的项目提供成长反对,助力开发者更好地理解开源,更快地逾越鸿沟,参加到开源的具体奉献与实际中。 流动详情请见:https://github.com/weopenproj... 【摘要】  基于Harbor离线装置形式的高可用方案设计及部署。一、环境阐明1.1 架构图 Harbor高可用架构图 【架构解析】:将Harbor的redis缓存组件、PostgreSQL数据库组件迁徙到零碎内部做高可用,应用内部共享存储实现多个Harbor实例的数据共享,Harbor实例可横向扩大。1.2 主机清单IP地址主机名形容192.168.2.107harbor1Harbor实例1,8021端口192.168.2.108harbor2Harbor实例2,8021端口192.168.2.110harbor-data部署Harbor实例的共享存储、内部数据库、内部缓存服务192.168.2.111/负载平衡VIP,8121端口 1.3 服务版本服务版本要求装置版本Harbor/2.3.5Docker17.06.0+19.03.8Docker-compose1.18.0+v2.2.3Redis6.0.166.2.7PostgreSQLv13.213.5二、主机初始化Harbor实例进行初始化 装置docker装置docker-compose配置内核参数2.1 装置docker$ wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo$ yum install -y docker-ce$ systemctl enable  --now docker$ systemctl status docker$ cat <<EOF > /etc/docker/daemon.json{   "registry-mirrors": ["https://xcg41ct3.mirror.aliyuncs.com"],   "exec-opts": ["native.cgroupdriver=systemd"],     "registry-mirrors": ["https://3hjcmqfe.mirror.aliyuncs.com"],    "log-driver": "json-file",   "log-opts": {           "max-size": "500m",           "max-file": "2"         }}EOF $ systemctl daemon-reload$ systemctl restart dockerexec-opts": ["native.cgroupdriver=systemd"],     #驱动器 registry-mirrors: 镜像减速地址,可多个 max-file: log最多保留数量 live-restore: 重启docker不重启容器,多用于k8s上2.2 装置docker-compose装置docker-compose 1.18.0以上的版本,本处装置v2.2.3版本。 $ wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64$ mv  docker-compose-linux-x86_64 /usr/local/bin/docker-compose$ chmod +x /usr/local/bin/docker-compose$ docker-compose versionDocker Compose version v2.2.32.3 配置内核参数$ modprobe br_netfilter$ cat >> /etc/sysctl.conf << EOFnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1      #路由转发EOF$ sysctl -p三、应用NFS提供内部共享存储在192.168.2.110部署NFS服务提供共享存储给Harbor1实例、Harbor2实例应用。192.168.2.110作为NFS服务端,harbor实例为客户端。 3.1 部署NFS服务端1)装置并启动nfs$ yum  install -y  nfs-utils $ systemctl start nfs && systemctl enable nfs  && systemctl status nfs$ chkconfig nfs on              #设置为开机自启2)创立共享目录客户端的数据将近程存入到共享目录下。 $ mkdir -p /data/harbor_data3)批改配置$ cat /etc/exports /data/harbor_data  192.168.2.0/24(rw,no_root_squash)  #容许哪个网段的客户端应用指定共享目录$ exportfs -arv            #使配置文件失效exporting 192.168.2.0/24:/data/harbor_data 4)重启nfs服务$ systemctl restart nfs 5)查看共享目录信息$ showmount  -e localhost                    export list for localhost:/data/harbor_data3.2 部署客户端在harbor1和harbor2上操作 $ yum -y install nfs-utils$ systemctl start nfs-utils &&  systemctl enable nfs-utils && systemctl status  nfs-utils3.3 客户端挂载NFS共享存储在harbor1和harbor2节点操作,创立实例的存储目录,而后挂载到NFS。 $ mkdir -p /data/harbor_data $ cat <<EOF >> /etc/fstab192.168.2.110:/data/harbor_data /data/harbor_data nfs  defaults  0 0EOF $ mount -a挂载格局:NFSIP:共享目录   本地目录  nfs defaults 0 0测试是否能够失常应用:[root@harbor2 ~]# touch  /data/harbor_data/test.txt [root@harbor1 ~]# ls /data/harbor_data/test.txt四、部署Redis缓存服务(源码) 本处为演示环境,理论生产环境请对Redis服务做高可用及数据备份。在192.168.2.110部署Redis缓存服务,为harbor1和harbor2实例提供内部redis缓存服务。 4.1 下载安装包$ wget https://download.redis.io/releases/redis-6.2.7.tar.gz4.2 装置依赖包$ yum  install  -y  gcc  gcc-c++4.3 源码编译$ mkdir -p /app/$ tar zxvf  redis-6.2.7.tar.gz  -C /app$ cd /app/redis-6.2.7/$ make   #编译$ make  install   #装置4.4 批改配置文件redis默认只反对本地应用,本处须要批改几个参数: 内部可连贯;redis启动形式;redis近程连贯明码;$ vim  /app/redis-6.2.7/redis.conf #bind 127.0.0.1 -::1  #75行,正文掉bind的行,容许任何主机连贯;daemonize yes       #259行,将no批改为yes,使redis能够应用守护过程形式启动;requirepass lidabai666   #903行,设置redis连贯的auth明码(lidabai666)4.5 启动Redis服务后面配置了应用守护过程形式启动,所以间接应用systemctl则能够启动redis服务。 $ pwd/app/redis-6.2.7$ redis-server redis.conf4.6 服务验证1)查看Redis服务版本$ redis-cli -vredis-cli 6.2.72)查看端口redis默认监听6379端口 $ ps aux | grep  6379root  6200  0.1  0.2 162416 10020 ?  Ssl 17:59  0:00 redis-server *:6379root  6231  0.0  0.0 112720  984 pts/0  R+  18:01  0:00 grep --color=auto 63793)客户端连贯Redisharbor1和harbor2作为redis客户端 $ which redis-cli      #查看redis-cli工具地位/usr/local/bin/redis-cli[root@harbor-data redis-6.2.7]# scp /usr/local/bin/redis-cli  192.168.2.107:/usr/local/bin/[root@harbor-data redis-6.2.7]# scp /usr/local/bin/redis-cli  192.168.2.108:/usr/local/bin/客户端应用redis-cli工具连贯Redis服务器 [root@harbor1 ~]# redis-cli  -h 192.168.2.110 -p 6379 -a lidabai666-a 参数指定redis连贯明码五、部署PostgreSQL内部存储服务(源码)在192.168.2.110主机以源码的形式装置PostgreSQL数据库服务,为harbor1和harbor2实例提供共享存储。 5.1 新建postgres用户默认超级用户(root)不能启动postgresql,须要手动建用户postgres。 $ useradd postgres$ id postgresuid=1000(postgres) gid=1000(postgres) 组=1000(postgres)5.2 装置依赖包$ yum -y install readline-devel  zlib-devel  gcc zlib5.3 下载解压源码包$ wget https://ftp.postgresql.org/pub/source/v13.5/postgresql-13.5.tar.gz --no-check-certificate$ tar zxvf postgresql-13.5.tar.gz   -C  /app/5.4 编译装置$ cd /app/postgresql-13.5/$ ./configure  --prefix=/usr/local/postgresql$ make && make install5.5 创立数据目录$ mkdir -p /data/postgresql/data$ chown -R postgres:postgres /usr/local/postgresql/$ chown -R postgres:postgres /data/postgresql/data/5.6 设置postgres环境变量[root@harbor-data postgresql-13.5]# su  - postgres[postgres@harbor-data ~]$ vim + .bash_profilePGHOME=/usr/local/postgresql   #psql装置目录export PGHOMEPGDATA=/data/postgresql/data    #数据库目录export PGDATAPATH=$PATH:$HOME/bin:$HOME/.local/bin:$PGHOME/binexport PATH[postgres@harbor-data ~]$ source ./.bash_profile[postgres@harbor-data ~]$ which psql/usr/local/postgresql/bin/psql查看版本 [postgres@harbor-data ~]$ psql -V psql (PostgreSQL) 13.5 ...

July 15, 2022 · 1 min · jiezi

关于harbor:Docker-入门私人笔记十七回顾和总结4-harbor-的关闭和启动

Harbor 是一个企业级的 Docker 公有仓库我的项目,它自身由多个 Docker Containers 组成,通过 docker-compose 治理 containers 之间的依赖关系。 1. 装置装置参见官网文档:Harbor - Installation and Configuration Guide 批改 harbor.yml 时,须要留神的有:(1)应用 https 时,要本人生成证书,而后在 harbor.yml 里配置好证书的门路。 客户端也须要装置你生成的这个证书,否则会报错。(所以证书要做好备份)详见 Docker - Use self-signed certificates(2)data_volume 能够指定为 /data/harbor,而后要定期备份这个文件夹。(或者间接在新机器上装个 harbor,用 harbor 自带的仓库复制性能做定期备份。) (3)企业的话,可能还须要配置 ldap 集成验证。 而后 sudo ./install.sh 装置 harbor(貌似必须用 sudo,因为生成进去的配置文件的 owner 都是 root,而且权限设得很严格。) 装置实现后会主动启动 harbor. 2. 设置主动启动查看 harbor 目录下的 docker-compose.yml 会发现,所有的 containers 都配置了restart: always version: '2.3'services: log: image: goharbor/harbor-log:v1.8.1 container_name: harbor-log restart: always dns_search: . # ...... registry: image: goharbor/registry-photon:v2.7.1-patch-2819-v1.8.1 container_name: registry restart: always # ......这示意所有的容器在意外敞开后都会主动重启,比方 docker 重启或服务器重启。当然,手动 stop 不会主动重启。然而我在手动运行 docker-compose up -d,而后重启服务器后,发现有几个 container 并没有主动重启: ...

March 10, 2022 · 3 min · jiezi