离线环境harbor 搭建及使用

news2024/11/19 16:41:12

一 摘要

本文主要介绍harbor 的安装及使用。

二 环境信息及部署图

2.1 环境信息

名称版本备注
操作系统centos7.9
容器docker 23.0.1
harbor2.7
代理nginx待补充

2.2 架构图

在这里插入图片描述说明:
1.harbor 核心服务里有个nginx ,也可以用该nginx 做代理
2.proxy-nginx 不是必须安装的,我这里是因为内部已经有个一个专用反向代理服务器,为了方便管理,就在原harbor nginx 上再代理了一层。

2.3 安装目录结构(不包含proxy-nginx)

/data/yunweistg1/harbor/harborsoft: 存放软件解压文件以及配置文件;
/data/yunweistg1/harbor/harbordata: 存放harbor 运行时数据文件

[root@localhost harbor]# pwd
/data/yunweistg1/harbor
[root@localhost harbor]# tree -L 3
.
├── harbordata
│   ├── ca_download
│   ├── database
│   │   └── pg13
│   ├── job_logs
│   │   ├── 14588b0a2d344e858b1a88ee.log
│   │   ├── 60332bdfa0bb84f6d88db945@1695686400.log
│   │   ├── 60332bdfa0bb84f6d88db945@1695772800.log
│   │   ├── 9dffa133c54e1dc2df7c84ba.log
│   │   ├── be5bf53eb57feb447dcf7b2d.log
│   │   └── fa303561c3ca9909d0d3180d.log
│   ├── redis
│   │   └── dump.rdb
│   ├── registry
│   │   └── docker
│   ├── secret
│   │   ├── core
│   │   ├── keys
│   │   └── registry
│   └── trivy-adapter
│       ├── reports
│       └── trivy
└── harborsoft
    └── harbor
        ├── common
        ├── common.sh
        ├── docker-compose.yml
        ├── harbor.v2.7.1.tar.gz
        ├── harbor.yml
        ├── harbor.yml.tmpl
        ├── install.sh
        ├── LICENSE
        └── prepare

18 directories, 15 files
[root@localhost harbor]# 

三 安装

3.1 安装准备

下载安装包,以及安装操作系统和docker\docker-compose

3.1.1 下载安装包

harbor 官网地址:https://goharbor.io/

3.1.2 安装docker 以及docker-compose

具体安装略

3.2 安装harbor核心服务

harbor 的安装思路如下:
harbor.yml 是原始配置文件,根据需要修改,然后执行.prepare 命令,会根据harbor.yml 内容生成各子系统的配置文件,然后运行install.sh 执行安装。

3.2.1 修改配置文件

主要配置harbor.yml

3.2.1.1 http&https

这块大家根据需要调整,比如端口冲突,就调整端口。
重点说明下 hostname 和external_url
1.官网解释:若配置了external_url,可以不配置hostname ;external_url 一般与proxy_nginx 里配置的域名保持一致;
2.harbor 搭建好后,检查pull 或者push 地址 是否是你想要的地址,这个地址 是由这两个参数控制

# Configuration file of Harbor

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 10.3.170.75

# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 8033

# 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

# # Uncomment following will enable tls communication between all harbor components
# internal_tls:
#   # set enabled to true means internal tls is enabled
#   enabled: true
#   # put your cert and key files on dir
#   dir: /etc/harbor/tls/internal

# Uncomment external_url if you want to enable external proxy
# And when it enabled the hostname will no longer used
external_url: https://stg1junharbor.XXXXX.com
3.2.1.2 配置 harbor容器 映射目录

这里配置 harbor 容器的映射目录

# The default data volume
data_volume: /data/yunweistg1/harbor/harbordata 

3.2.2 安装

然后执行

 ./prepare 
 ./install.sh 

到此harbor 核心服务就完成安装

3.3 非核心服务安装

harbor 里有些组件是非核心服务,作为可选组件安装。比如容器漏洞扫描软件trivy

3.3.1 安装trivy

先关闭harbor 容器然后再安装

docker-compose -f docker-compose.yml down -v
./install.sh --with-trivy

四 日常使用及维护

4.1 trivy 漏洞库离线同步

主要通过在外网下载trivy 漏洞库,然后人工同步到内网trivy

4.1.1 关闭harbor 里trivy 自动更新配置

trivy:

# 关闭在线更新
  skip_update: true 
# 开启离线扫描
  offline_scan: true 
#其余配置请使用默认或者按需调整

重新执行

 ./prepare 
 ./install.sh --with-trivy

4.1.2 外网下载trivy 漏洞库

通过oras 下载漏洞库,然后人工同步到内网对应目录

下载oras 地址:https://github.com/oras-project/oras/releases

漏洞库下载:

trivy v2

oras pull ghcr.io/aquasecurity/trivy-db:2
oras pull ghcr.io/aquasecurity/trivy-java-db:1

trivy v1

https://github.com/aquasecurity/trivy-db/releases
oras pull ghcr.io/aquasecurity/trivy-java-db:1

我用的是V2

人工同步到内网

漏洞库存放到对应目录

# 漏洞库离线文件移动至对应目录
tar -xzvf db.tar.gz -C /data/yunweistg1/harbor/harbordata/trivy-adapter/trivy/db
tar -xzvf javadb.tar.gz  -C /data/yunweistg1/harbor/harbordata/trivy-adapter/trivy/java-db
# 授权
chown 10000:10000 -R /data/harbordata/trivy-adapter/trivy

最好重启下harbor 容器即可。

4.2 proxy-nginx 反向代理配置

这个配置仅供参考

upstream harbor {
	# session sticky
        server 10.3.170.75:8033 max_fails=3 fail_timeout=10s;
        keepalive 128;
}

server {
	listen 80;
        listen 443 ssl;
        server_name stg1junharbor.xxxxx.com;

       ssl_certificate /etc/nginx/conf.d/cert/_.xxxxx.com.pem;
       ssl_certificate_key /etc/nginx/conf.d/cert/_.xxxxx.com.key;
       ssl_session_cache builtin:1000 shared:SSL:10m;
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
       ssl_prefer_server_ciphers on;

      charset utf-8;
      client_body_buffer_size 10M;
      client_max_body_size 10240M;



	location / {
		proxy_pass http://harbor;
		proxy_connect_timeout 300;
		proxy_send_timeout 600;
		proxy_read_timeout 600;
		proxy_max_temp_file_size 5000m;
	}

	error_page 500 502 503 504 /50x.html;
	location = /50x.html {
		root html;
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1046570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

推荐几款优秀的项目报表软件

项目报表在项目工作中扮演着重要的角色,它是领导和客户了解项目进况的直接途径。有需求就会有市场,为解决传统报表制作复杂困难的问题,专业报表工具应运而生。 一款好用的项目报表软件可以帮助项目团队快速产出项目报表,实现数据…

深度学习实战54-基于ChatGLM2大模型构建智能自助用药问答系统与药物智能管理实战的应用

大家好,我是微学AI,今天给大家介绍一下深度学习实战54-基于ChatGLM2大模型构建智能自助用药问答系统与药物智能管理实战的应用。 随着人工智能技术的发展,我们的生活在许多方面都得到了改善。医疗领域也不例外。本文将介绍如何利用大模型&…

【Python自动化测试】mock模块基本使用介绍

mock简介 py3已将mock集成到unittest库中为的就是更好的进行单元测试简单理解,模拟接口返回参数通俗易懂,直接修改接口返回参数的值官方文档:unittest.mock --- 模拟对象库 — Python 3.11.4 文档 mock作用 解决依赖问题,达到解…

软件测试/测试开发 | AI大模型应用开发实训营来啦~ 大模型学习资料免费领

因为 AIGC 持续火热,越来越多的企业都需要借助大模型来为自己的业务赋能,也就是产出适合自己公司业务情况的智能化产品,这是目前程序员必须要面对的难题和挑战。如果要在企业内部落地相关引用,就需要员工具备响应的大模型应用开发…

LCR 101. 分割等和子集——力扣——背包问题、动态规矩

问题描述 代码展示 class Solution:def canPartition(self, nums: List[int]) -> bool:if len(nums) < 1:return Falsetotal_sum sum(nums)if total_sum % 2 ! 0: # 总和为奇数&#xff0c;无法分成两个相等的子集return Falsetarget_sum total_sum // 2dp [[False]…

el-tooltip内容换行显示

效果图&#xff1a; html: <div class"rules-tooltip flex-center"><el-tooltip class"item" effect"dark" placement"bottom-start"><div slot"content" v-html"tipsContent"></div>&l…

工具篇 | WSL使用入门教程以及基于WSL和natApp内网穿透实践 - 对比VMWare

介绍 在开发工具中&#xff0c;Windows Subsystem for Linux (WSL) 和 VMWare 它们都可以实现了在 Windows 上运行 Linux系统。 文章概览 WSL Vs VMWare 我们将简单比对 WSL 和 VMWare&#xff0c;在性能、资源消耗等方面的差异&#xff0c;以协助您做出更加明确的选择。 …

专业级操作,如何快速批量虚化多个视频的背景边框

如果你是一名视频编辑爱好者&#xff0c;或者是一名需要处理大量视频素材的专业人士&#xff0c;那么你可能会对如何快速处理和虚化视频的背景边框感到困惑。这里&#xff0c;我们就为你提供一种方法&#xff0c;使用固乔剪辑助手工具&#xff0c;你可以轻松实现批量虚化多个视…

ATA-8000系列射频功率放大器——应用场景介绍

ATA-8000系列是一款射频功率放大器。其P1dB输出功率500W&#xff0c;饱和输出功率最大1000W。增益数控可调&#xff0c;一键保存设置&#xff0c;提供了方便简洁的操作选择&#xff0c;可与主流的信号发生器配套使用&#xff0c;实现射频信号的放大。 图&#xff1a;ATA-8000系…

Kubernetes基本概念简介

零 引入 在传统的应用程序部署中&#xff0c;需要手动配置和管理服务器、网络和存储等基础设施&#xff0c;并且随着应用程序规模的增长&#xff0c;管理复杂性也会大大增加。Kubernetes通过自动化和抽象化的方式&#xff0c;解决了这些挑战&#xff0c;使得应用程序可以以一种…

sdk下载慢的解决办法

Android studio版本&#xff1a;为Android Studio 4.1.1&#xff0c; 先完成Android Studio软件安装&#xff0c;打开Android Studio&#xff0c;点击File -> settings->Android SDK&#xff0c;按照开发需要安装sdk platform、SDK Tools工具。 sdk下载慢解决办法 1、…

Nuxt 菜鸟入门学习笔记六:路由

文章目录 路由 Routing页面 Pages导航 Navigation路由参数 Route Parameters路由中间件 Route Middleware路由验证 Route Validation Nuxt 官网地址&#xff1a; https://nuxt.com/ 路由 Routing Nuxt 的一个核心功能是文件系统路由器。pages/目录下的每个 Vue 文件都会创建一…

【ACL2023】Event Extraction as Question Generation and Answering

论文题目&#xff1a;Event Extraction as Question Generation and Answering 论文来源&#xff1a;ACL2023 论文链接&#xff1a;Event Extraction as Question Generation and Answering - ACL Anthology 代码链接&#xff1a;GitHub - dataminr-ai/Event-Extraction-as-…

PowerDsigner 数据库逆向pdm数模 常见数据库连接问题

本文章记录本人在使用powerdsigner工具&#xff0c;反向工程生成项目数据库表结构以及表关系的过程中遇到的两个常见问题。 问题1&#xff1a;Could not Initialize JavaVM 问题2&#xff1a;Non SQL Error : Could not load class oracle.jdbc.OracleDriver 环境&#xff1…

枚举enum

使用enum关键字定义提供枚举类的对象&#xff0c;多个对象用逗号分开&#xff0c;结尾用分号结束提供构造方法&#xff0c;给属性赋值使用public statiac final来修饰是属性提供get方法提供toString方法 public enum Season {SPRING("春天", "春暖花开"),…

都用HTTPS了,还能被查出浏览记录?

最近&#xff0c;群里一个刚入职的小伙因为用公司电脑访问奇怪的网站&#xff0c;被约谈了。他很困惑 —— 访问的都是HTTPS的网站&#xff0c;公司咋知道他访问了啥&#xff1f; 实际上&#xff0c;由于网络通信有很多层&#xff0c;即使加密通信&#xff0c;仍有很多途径暴露…

达梦数据库使用杂记

1、DM管理工具打开后一片白 这是因为上一次把对象导航窗口手动关闭了&#xff0c;后面再重新打开时默认就不显示了&#xff1b; 只需要到窗口-视图-对象导航 打开即可 2、 查询语句需要带表空间名&#xff0c;如&#xff1a;select * from "表空间名"."表名&…

混合IT基础设施的安全挑战与缓解策略

自从“身份是新的边界”这句格言问世以来&#xff0c;公司已经开始扩展他们的能力和运营&#xff0c;超越了基于本地、办公室基础设施的范围。采用云原生技术意味着组织正在寻求扩大传统工作流程&#xff0c;而无需投入时间和资源来建立物理数据中心和其他硬件基础设施。 身份…

2023版 STM32实战4 滴答定时器精准延时

SysTick简介与特性 -1- SysTick属于系统时钟。 -2- SysTick定时器被捆绑在NVIC中。 -3- SysTick可以产生中断,且中断不可屏蔽。 SysTick的时钟源查看 通过时钟树可以看出滴答的时钟最大为72MHZ/89MHZ 通过中文参考手册也可以得到这个结论 代码编写&#xff08;已经验证&a…

苹果曾考虑基于定位控制AirPods Pro自适应音频

在一次最近的采访中&#xff0c;苹果公司的高管Ron Huang和Eric Treski透露&#xff0c;他们在开发AirPods Pro自适应音频功能时&#xff0c;曾考虑使用GPS信号来控制音频级别。这个有趣的细节打破了我们对AirPods Pro的固有认知&#xff0c;让我们对苹果的创新思维有了更深的…