Harbor 企业级实战:单机快速上手 × 高可用架构搭建 × HTTPS安全加固

文章目录

  • 一、建立项目
  • 二、命令行登录harbor(配置在客户端即可)
  • 三、给本地镜像打标签并上传到harbor
  • 四、下载harbor的镜像
  • 五、创建自动打标签上传镜像脚本
  • 六、修改harbor配置
  • 七、实现harbor高可用
    • 7.1 安装第二台harbor主机
    • 7.2 新建目标,输入第一台harbor服务器上的主机和用户信息,并测试连接
    • 7.3 第二台harbor上新建复制规则,实现到第一台的单向复制
    • 7.4 在第一台harbor上重复上述2、3的操作,实现双向同步
    • 7.5 确认同步成功。harbor2可以看到从harbor1同步过来的镜像
    • 7.6 上传镜像,观察是否可以双高同步
  • 八、实现https配置
    • 8.1 实现harbor的https认证
    • 8.2 用https方式访问harbor网站
    • 8.3 新建项目

一、建立项目

harbor上必须先建项目,才能上传镜像

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、命令行登录harbor(配置在客户端即可)

[root@centos7 ~]# vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 10.0.0.101[root@centos7 ~]# systemctl daemon-reload
[root@centos7 ~]# systemctl restart docker# 没有配置dns的时候需要配置hosts
[root@centos7 ~]# docker login 10.0.0.101    
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded# 查看进程是否添加上面配置
[root@centos7 ~]# ps aux|grep dockerd
root      5996  1.0  0.9 1964892 80516 ?       Ssl  18:11   0:01 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 10.0.0.101
root      8040  0.0  0.0 112832   984 pts/0    R+   18:14   0:00 grep --color=auto dockerd[root@centos7 ~]# cat .docker/config.json
{"auths": {"10.0.0.101": {"auth": "YWRtaW46MTIzNDU2"}}
}

三、给本地镜像打标签并上传到harbor

修改images的名称,不修改成指定格式无法将镜像上传到harbor仓库

格式

Harbor主机IP/项目名/image名字:版本

例:上传镜像前,必须先登录harbor

[root@centos7 ~]# docker login 10.0.0.101  
[root@centos7 ~]# docker tag alpine:latest 10.0.0.101/dockerimages/alpine-base:3.11
[root@centos7 ~]# docker push 10.0.0.101/dockerimages/alpine-base:3.11
The push refers to repository [10.0.0.101/dockerimages/alpine-base]
ff768a1413ba: Pushed
3.11: digest: sha256:73c155696fe65b68696e6ea24088693546ac468b3e14542f23f0efbde289cc97 size: 528[root@centos7 ~]# docker images
[root@centos7 ~]# docker images
REPOSITORY                                       TAG               IMAGE ID       CREATED        SIZE
alpine                                           latest            9c842ac49a39   2 days ago     5.57MB
10.0.0.101/dockerimages/alpine-base   3.11              9c842ac49a39   2 days ago     5.57MB

访问harbor网站验证上传镜像成功

在这里插入图片描述

za

四、下载harbor的镜像

其他主机无需登录,即可下载镜像,下载前必须修改docker的service文件,加入harbor服务器的地址

[root@centos7-2 ~]# vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 10.0.0.101[root@centos7-2 ~]# systemctl daemon-reload
[root@centos7-2 ~]# systemctl restart docker

五、创建自动打标签上传镜像脚本

[root@centos7 ~]#cd /data/dockerfile/web/nginx/1.16.1-alpine/
[rootQcentos7 1.16.1-alpine]#vim build.sh
[root@centos7 1.16.1-alpine]#cat build.sh
#/bin/bash
TAG=$1
docker build -t 10.0.0.101/example/nginx-alpine:1.16.1-${TAG}
docker push 10.0.0.101/example/nginx-alpine:1.16.1-${TAG}
docker rmi -f 10.0.0.101/example/nginx-alpine:1.16.1-${TAG}[root@centos7 1.16.1-alpine]#bash build.sh v1

六、修改harbor配置

后期如果修改harbor配置,比如修改IP地址等,可执行以下步骤生效

方法1:

[root@centos7 ~]# cd /apps/harbor/
[root@centos7 harbor]# docker-compose stop# 相关容器关闭
[root@centos7 harbor]# docker ps# 修改配置
[root@centos7 harbor]# vim harbor.cfg# 更新配置
[root@centos7 harbor]# /apps/harbor/prepare# 重新启动docker-compose
[root@centos7 harbor]# docker-compose start# 相关容器自动启动
[root@centos7 harbor]# docker ps

方法2:

[root@centos7 ~]# /apps/harbor/install.sh

七、实现harbor高可用

Harbor支持基于策略的Docker镜像复制功能,这类似于MySQL的主从同步,其可以实现不同的数据中心、不同的运行环境之间同步镜像,并提供友好的管理界面,大大简化了实际运维中的镜像管理工作,已经有用很多互联网公司使用harbor搭建内网docker仓库的案例,并且还有实现了双向复制功能

在这里插入图片描述

7.1 安装第二台harbor主机

参考《Docker仓库-Harbor -3- 使用单机harbor》部署好第二台harbor,并登录系统(需要新建项目)

在这里插入图片描述
在这里插入图片描述

7.2 新建目标,输入第一台harbor服务器上的主机和用户信息,并测试连接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.3 第二台harbor上新建复制规则,实现到第一台的单向复制

在这里插入图片描述

7.4 在第一台harbor上重复上述2、3的操作,实现双向同步

在这里插入图片描述
在这里插入图片描述

7.5 确认同步成功。harbor2可以看到从harbor1同步过来的镜像

在这里插入图片描述

查看同步日志

在这里插入图片描述

7.6 上传镜像,观察是否可以双高同步

[root@ubuntu1804 ~]# docker pull tomcat
[root@ubuntu1804 ~]# docker tag tomcat:latest 192.168.168.176/dockerimages/tomcat-web:app1
[root@ubuntu1804 ~]# docker push 192.168.168.176/dockerimages/tomcat-web:app1
[root@ubuntu1804 ~]# docker tag tomcat:latest 192.168.168.176/dockerimages/tomcat-web:app2
[root@ubuntu1804 ~]# docker push 192.168.168.176/dockerimages/tomcat-web:app2

在这里插入图片描述
在这里插入图片描述

八、实现https配置

Harbor默认使用http,为了安全,可以使用https

8.1 实现harbor的https认证

# 安装docker
[root@ubuntu1804 ~]# bash install_docker_for_ubuntu1804.sh# 安装docker compose
[root@ubuntu1804 ~]# curl -L https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
[root@node2~]# chmod +x /usr/bin/docker-compose
[root@ubuntu1804 ~]# docker-compose --version# 下载harbor离线安装包且解压缩
[root@ubuntu1804 ~]# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.6.tgz
[root@ubuntu1804 ~]# mkdir /apps
[root@ubuntu1804 ~]# tar xf harbor-offline-installer-v$[HARBOR_VERSION].tgz -C /apps# 生成私钥和证书
[root@ubuntu1804 certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -subj "/CN=ca.test.org" -days 365 -out ca.crt# 生成harbor主机的证书申请
[root@ubuntu1804 certs]# openssl req -newkey rsa:4096 -nodes -sha256 -subj "/CN=harbor.test.org" -keyout harbor.test.org.key -out harbor.test.org.csr# 给harbor主机颁发证书
[root@ubuntu1804 certs]# openssl x509 -req -in harbor.test.org.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor.test.org.crt[root@ubuntu1804 certs]# tree /apps/harbor/certs/
/apps/harbor/certs/
├── ca.crt
├── ca.key
├── ca.srl
├── harbor.test.org.crt
├── harbor.test.org.csr
└── harbor.test.org.key0 directories, 6 files[root@ubuntu1804 certs]# vim /apps/harbor/harbor.cfg
hostname = 192.168.168.178
ui_url_protocol = https
ssl_cert = /apps/harbor/certs/harbor.test.org.crt
ssl_cert_key = /apps/harbor/certs/harbor.test.org.key
harbor_admin_password = 123456[root@ubuntu1804 ~]# yum install python
[root@ubuntu1804 ~]# /apps/harbor/install.sh

8.2 用https方式访问harbor网站

修改/etc/hosts文件

192.168.168.178 harbor.test.org

在这里插入图片描述

8.3 新建项目

在这里插入图片描述

客户端下载ca证书(直接登录和上传下载会报错)

[root@node4 ~]# mkdir -pv /etc/docker/cert.d/harbor.test.org/
[root@node4 ~]# scp -r harbor.test.org:/apps/harbor/certs/ca.crt /etc/docker/certs.d/harbor.test.org/
[root@node4 ~]# systemctl restart docker

客户端上传镜像

[root@node4 ~]# mkdir -pv /etc/docker/cert.d/harbor.test.org/
[root@node4 ~]# scp -r harbor.test.org:/apps/harbor/certs/ca.crt /etc/docker/certs.d/harbor.test.org/

请不要以此视为定论,这只是我的个人经验

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

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

相关文章

进程管理、系统高负载、cpu超过800%等实战问题处理

进程管理与高负载实战:CPU 飙到 800% 时的分析与处理 在生产环境中,系统高负载和 CPU 异常占用是运维工程师最常面对的场景之一。 这篇文章将从进程管理基础讲起,到高负载问题定位,再到CPU 占用 800% 的实战处理,帮助你…

控制建模matlab练习12:线性状态反馈控制器-①系统建模

此练习,主要是使用状态空间方程来设计控制器的方法和思路: ①系统建模; ②系统的能控性; ③极点配置; ④最优化控制LQR; ⑤轨迹追踪; 以下是,第①部分:系统建模&#xff…

bytearray和bytes

bytearray和bytes不一样的地方在于,bytearray是可变的。 str 人生苦短,我用Python! bytes bytearray(str.encode()) bytes bytearray(b\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!) str bytes.d…

护网行动之后:容器安全如何升级?微隔离打造内网“微堡垒”

护网行动刚刚落下帷幕,但这场没有硝烟的攻防演练,留给安全行业的思考却从未停止。当“横向移动”成为攻击方屡试不爽的杀手锏时,一个过去可能被忽视的角落——容器网络安全,在本届护网中被推到了前所未有的高度。面对云原生时代容…

一动鼠标就锁屏,设备活动监控方案的技术实现与应用

摘要:本文探讨基于本地化监控机制实现设备操作追踪的技术方案,重点解析其触发逻辑与隐私保护机制。方案适用于需要监控设备使用场景的技术人员。一、核心功能实现原理触发监控机制键盘钩子:通过系统级键盘事件监听(AltL组合键激活…

从零开始学习:深度学习(基础入门版)(1天)

(一) opencv和opencv-contrib的安装(1.1)在桌面地底部的搜索栏,搜索命令提示符,点击并打开命令提示符(1.2)依次输入命令并按回车:pip install opencv-python3.4.18.65 -i…

SimpleMindMap:一个强大的Web思维导图

在信息爆炸的时代,如何高效地组织、记忆和表达复杂信息成为一项关键技能。思维导图作为一种强大的可视化工具,能够帮助我们理清思路、激发创意并提高学习效率。最近在逛github的时候发现了一个开源的思维导图工具SimpleMindMap,和家人们分享下…

正确使用 JetBrains

来自穷鬼的 marker !关键也不是全靠它吃饭,所以……请鄙视我就对了!2023.2.6 和 MybatisX 1.7.3 兼容性好像有些问题,会报错。想一想降级 MybatisX 不如升级一下 Idea。So, do this.官方下载安装包并装之。然后解锁无需下载文件、…

0_外设学习_ESP8266+云流转(no 0基础)

1、环境要求 2个ESP8266模块、2个USB转ESP8266,通过ESP8266_A-->(阿里云)云流转-->ESP8266_B,实现ESP8266_A发布话题,ESP8266_B订阅该话题。 2、阿里云云流转配置 1、基础要求: 添加1个产品&#xf…

AI漫画翻译器-上传图片自动翻译,支持多语言

本文转载自:AI漫画翻译器-上传图片自动翻译,支持多语言 - Hello123 ** 一、AI 漫画翻译器的核心定位 AI 漫画翻译器是专为漫画爱好者设计的智能翻译平台,通过深度学习技术实现漫画文本的精准识别与本地化转换。它能在保留原图排版和艺术风格…

有效介电常数

有效介电常数:如果导体的横截面被介质完全包裹,位于导体之间的电力线(如带状线)就会感受到相同的介电常数。然而,对于微带线、双绞线或共面线,导体周围的介质不是均匀的,所以一些电力线穿过空气,而另一些则穿过介质。图…

51c视觉~合集16

自己的原文哦~ https://blog.51cto.com/whaosoft/14117000 #港大成立计算与数据科学学院,计算机统计双剑合璧 刚刚,港大成立新的计算与数据科学学院,由计算机科学系和统计学系合并。马毅教授被任命为学院首任院长。 马毅教授官宣…

惯量时间常数 H 与转动惯量 J 的关系解析

惯量时间常数 H 与转动惯量 J 的关系解析 在电力系统稳定分析、旋转机械动力学等领域,惯量时间常数(H) 和 转动惯量(J) 是描述旋转体惯性特性的两个核心参数。二者虽然出发点不同,但在数学和物理层面具有紧…

DeepSeek-V3/R1 架构深度剖析:国产大模型的创新突围之路

本文深入解析 DeepSeek-V3/R1 的核心架构设计,揭示其如何在模型效率、推理性能与知识处理等维度实现突破,成为中文大模型领域的标杆之作。 引言:大模型竞技场中的"中国速度" #mermaid-svg-9Kk7tHp57CilWIFU {font-family:"trebuchet ms",verdana,arial,…

【从0到1制作一块STM32开发板】5. 整体布局

在之前的学习中,我偏向的多是嵌入式软件开发的工作,如果想要自己diy一款具备特定功能的嵌入式工具的话,还需要具备画板子的能力。但由于我目前还没学模电,故我打算直接找个b站的学习视频先跟着画个板子出来,简单理解各…

nflsoi 8.8 题解

感觉这把难,不过今天状态比较差,头昏昏的。怎么后面几道蓝题别人光速切掉了?不过赛后再来看感觉也不算特别麻烦的题目。 C.#11698 双循环锦标赛 / TopCoder 10687 The Basketball Div One 题意 约翰与布鲁斯对团体体育赛事颇有研究&#xff0…

面向真实场景的定制化图像降质模型设计方案

面向真实场景的定制化图像降质模型设计方案 1. 核心思路:从真实图像中学习退化模型 1.1 问题定义:合成数据与真实数据的域差距 在超分辨率(Super-Resolution, SR)算法的实际应用中,一个核心挑战源于训练数据与真实测…

计算机网络:一个 IP 地址可以同时属于 A 类、B 类或 C 类吗?

一个IP地址不可以同时属于A类、B类或C类。A类、B类、C类IP地址的划分有明确的规则,通过网络位的最高几位即可唯一确定其类别,不存在重叠的可能。 IP地址分类的核心规则(针对IPv4) IPv4地址由32位二进制数组成,通常分为…

利用哥斯拉(Godzilla)进行文件上传漏洞渗透实战分析

利用哥斯拉(Godzilla)进行文件上传漏洞渗透实战分析本实验通过DVWA靶机环境演示如何利用哥斯拉工具进行文件上传漏洞的渗透测试,最终获取目标服务器控制权限。实验环境 攻击工具:哥斯拉(Godzilla) v4.0.1靶机地址:http://192.168.3.101/dvwa目…

MMBFJ310LT1G一款N沟道JFE 晶体管适用于高频放大器和振荡器等射频应用MMBFJ310LT1

MMBFJ310LT1G 是一款 N沟道JFET晶体管 ,适用于高频放大器和振荡器等射频应用。以下是其核心性能参数:基本参数 •‌漏源击穿电压‌:25V ‌•栅源击穿电压‌:25V ‌•漏源电流(Vgs0V)‌:24mA至60…