草庐IT

【2023】高可用Harbor部署

丶重明 2023-07-12 原文

目录

架构图

注意:此架构有缺陷不适合用于生产,只作为学习

1.安装docker

因为安装harbor需要用到docker,所以请先安装docker

这一步内容请看docker安装

2.安装harbor

  • 下载harbor包
wget https://github.com/goharbor/harbor/releases/download/v2.5.6/harbor-offline-installer-v2.5.6.tgz

如果网速慢,本文提供一个免费下载的包harbor-v2.5.6

  • 解压缩进行配置
tar xf harbor-offline-installer-v2.5.6.tgz 
cd harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml

# 配置文件内容,IP192.168.10.3改成对应IP
hostname: 192.168.10.2
harbor_admin_password: Harbor12345
# https相关内容注释
#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

  • 进行安装
./install.sh
  • 登录验证

192.168.10.2

192.168.10.3

3.配置harbor复制规则

harbor-01配置

  • 创建仓库

点击系统管理——》仓库管理——》新建目标——》填写信息——》测试连接——》成功点确定

  • 创建复制规则

点击系统管理——》复制管理——》新建规则——》填写信息——》保存


harbor-02配置

在02上进行类似的配置

  • 创建仓库
  • 创建复制规则


4.部署Haproxy做代理

  • 安装haproxy服务
yum -y install haproxy
  • 准备真实有效的证书(本人使用阿里云免费证书)
[root@localhost ~]# unzip 9486797_harbor.yyang.top_nginx.zip 
Archive:  9486797_harbor.yyang.top_nginx.zip
Aliyun Certificate Download
  inflating: 9486797_harbor.yyang.top.pem  
  inflating: 9486797_harbor.yyang.top.key  
[root@localhost ~]# mkdir /ssl
[root@localhost ~]# cat 9486797_harbor.yyang.top.pem >/ssl/harbor.pem
[root@localhost ~]# cat 9486797_harbor.yyang.top.key >>/ssl/harbor.pem 
  • 配置haproxy,添加以下内容

      vim /etc/haproxy/haproxy.cfg
    
frontend  harbor
  bind *:80
  bind *:443 ssl crt /ssl/harbor.pem
  mode http
  use_backend harbor_cluster
  redirect scheme https if !{ ssl_fc }
  http-request set-header X-Forwarded-Proto http if !{ ssl_fc }
  http-request set-header X-Forwarded-Proto https if { ssl_fc }

backend harbor_cluster
  balance source
  server harbor-01 192.168.10.2:80 check port 80
  server harbor-02 192.168.10.3:80 check port 80
  • 启动服务
systemctl start haproxy.service 
systemctl enable haproxy.service 
  • harbor节点做本地解析(两个)因为并没有真的域名
echo "192.168.10.4 harbor.yyang.top" >>/etc/hosts
  • 准备一个nginx上传至harbor测试
docker pull busybox
docker images
busybox                         latest    beae173ccac6   14 months ago   1.24MB
docker tag beae173ccac6 harbor.yyang.top/test/busybox
docker push harbor.yyang.top/test/busybox:latest
The push refers to repository [harbor.yyang.top/test/busybox]
01fd6df81c8e: Pushed 
latest: digest: sha256:62ffc2ed7554e4c6d360bce40bbcf196573dd27c4ce080641a2c59867e732dee size: 527
  • 登录网页查看是否同步


    此时两个harbor上都可以看到busybox镜像

注意:次架构不能同步用户级别镜像。只能使用admin。

有关【2023】高可用Harbor部署的更多相关文章

  1. ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用? - 2

    我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel

  2. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  3. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  4. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  5. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  6. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  7. Ruby,使用包含 TK GUI 的 ocra 部署一个 exe - 2

    Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答

  8. ruby-on-rails - self 在 Rails 模型中的值(value)是什么?为什么没有明显的实例方法可用? - 2

    我的rails3.1.6应用程序中有一个自定义访问器方法,它为一个属性分配一个值,即使该值不存在。my_attr属性是一个序列化的哈希,除非为空白,否则应与给定值合并指定了值,在这种情况下,它将当前值设置为空值。(添加了检查以确保值是它们应该的值,但为简洁起见被删除,因为它们不是我的问题的一部分。)我的setter定义为:defmy_attr=(new_val)cur_val=read_attribute(:my_attr)#storecurrentvalue#makesureweareworkingwithahash,andresetvalueifablankvalueisgiven

  9. ruby-on-rails - NameError(未初始化常量 Unzipper::Zip)但仅在 Heroku 部署(Rails)上 - 2

    我有一个类unzipper.rb,它使用Rubyzip解压文件。在我的本地环境中,我可以成功解压缩文件,而无需使用require'zip'明确包含依赖项但是在Heroku上,我得到一个NameError(uninitializedconstantUnzipper::Zip)我只能通过使用明确的require来解决问题:为什么这在H​​eroku环境中是必需的,但在本地主机上却不是?我的印象是Rails自动需要所有gem。app/services/unzipper.rbrequire'zip'#OnlyrequiredforHeroku.Workslocallywithout!class

  10. ruby - Sinatra + Heroku + Datamapper 使用 dm-sqlite-adapter 部署问题 - 2

    出于某种原因,heroku尝试要求dm-sqlite-adapter,即使它应该在这里使用Postgres。请注意,这发生在我打开任何URL时-而不是在gitpush本身期间。我构建了一个默认的Facebook应用程序。gem文件:source:gemcuttergem"foreman"gem"sinatra"gem"mogli"gem"json"gem"httparty"gem"thin"gem"data_mapper"gem"heroku"group:productiondogem"pg"gem"dm-postgres-adapter"endgroup:development,:t

随机推荐