微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、测试、发布的自动部署,形成一套完整的自动化运维、发布的快速DevOps平台。
本文主要针对 ks-harbor [192.168.2.146] 服务器进行部署Harbor服务
文章的操作过程大部分参照【Harbor高可用集群设计及部署(基于离线安装方式)】
微服架构基础设施环境平台搭建 系列文章
微服架构基础设施环境平台搭建 -(一)基础环境准备
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
微服架构基础设施环境平台搭建 -(三)Docker+Kubernetes集群搭建
微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台
微服架构基础设施环境平台搭建 -(五)Docker常用命令
目录
- 微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
- 一、采用的技术架构
- 二、微服架构基础设施平台网络规划
- 三、部署架构
- 四、安装Docker并配置Docker
- 1、安装Docker
- 2、安装docker-compose
- 3、配置内核参数
- 五、安装Harbor
- 1、下载安装包并解压
- 2、修改配置文件
- 3、执行安装
- 4、登录Harbor后台
- 六、Docker接入Harbor
- 1、修改Docker配置文件,接入Harbor
- 2、将Docker镜像上传Harbor
- 3、将从Harbor私有仓库中下载Docker镜像
一、采用的技术架构
| 序号 | 技术框架 | 说明 |
|---|---|---|
| 1 | Kubernetes | |
| 2 | Kubesphere | Kubernetes编排器,管理平台 |
| 3 | Dockers | |
| 4 | Harbor | Docker私有仓库 |
| 5 | GitLab | 源码库 |
| 6 | Jekins | 自动编译、测试、发布平台 |
| 7 | Spring Cloud Alibaba | Spring Cloud Alibaba微服体系架构 |
| 8 | Nacos | Api网关、服务注册发现配置管理中心 |
| 9 | Sentinel | 限流溶断安全中心 |
| 10 | Seata | 分布式事务管理框架 |
| 11 | Redis | 分布式缓存服务 |
| 12 | ElasticSearch/Solr | 数据检索服务 |
| 13 | Mysql | 结构化数据存储 |
| 14 | Grafana | 监控平台 |
| 15 | Nginx | 服务代理、Web服务 |
二、微服架构基础设施平台网络规划
| 序号 | IP | HostName | 操作系统 | K8s角色 | 说明 |
|---|---|---|---|---|---|
| 1 | 192.168.1.141 | ks-m1 | CentOS7_x64 | 控制节点 | Kubernetes Master |
| 2 | 192.168.1.142 | ks-m2 | CentOS7_x64 | 控制节点 | Kubernetes Master高可用节点,如果不需要高可用,可不部署此服务器 |
| 3 | 192.168.1.143 | ks-m3 | CentOS7_x64 | 控制节点 | Kubernetes Master高可用节点,如果不需要高可用,可不部署此服务器 |
| 4 | 192.168.1.144 | ks-n1 | CentOS7_x64 | 工作节点 | Kubernetes Worker |
| 5 | 192.168.1.145 | ks-n2 | CentOS7_x64 | 工作节点 | Kubernetes Worker |
| 6 | 192.168.2.146 | ks-harbor | CentOS7_x64 | 工作节点 | Harbor服务+NFS文件服务 |
三、部署架构

四、安装Docker并配置Docker
1、安装Docker
在ks-harbor服务器上执行下面命令:
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum install -y docker-ce
systemctl enable --now docker
systemctl status dockercat <<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 docker
说明:
exec-opts": [“native.cgroupdriver=systemd”], #驱动器
registry-mirrors: 镜像加速地址,可多个
max-file: log最多保留数量
live-restore: 重启docker不重启容器,多用于k8s上
2、安装docker-compose
在ks-harbor服务器上执行下面命令:
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 version
3、配置内核参数
在ks-harbor服务器上执行下面命令:
$ modprobe br_netfilter
$ cat >> /etc/sysctl.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1 #路由转发
EOF
$ sysctl -p
五、安装Harbor
说明:安装Harbor需要先安装docker-compose
1、下载安装包并解压
#创建安装目录
mkdir /app
wget https://github.com/goharbor/harbor/releases/download/v2.3.5/harbor-offline-installer-v2.3.5.tgztar -xzvf harbor-offline-installer-v2.3.5.tgz /app/
2、修改配置文件
修改harbor.yml中的hostname配置为当前服务器的ip,以及注释掉https的相关配置,如下图所示
cd /app/harbor
vim harbor.yml

3、执行安装
#执行安装
sh install.sh

4、登录Harbor后台
默认用户名:admin,默认密码: Harbor12345


六、Docker接入Harbor
1、修改Docker配置文件,接入Harbor
1)、编辑Docker配置文件
vim /etc/docker/daemon.json
2)、添加配置"insecure-registries" : [“192.168.2.146”]
"insecure-registries" : ["192.168.2.146"]
3)、重启Docker
systemctl restart docker
3)、重启Harbor
cd /app/harbor
docker-compose up -d
2、将Docker镜像上传Harbor
# 登录
docker login 192.168.2.146# 上传至Harbor公开仓库
docker tag mysql:5.7 192.168.2.146/pub/mysql:5.7
docker push 192.168.2.146/pub/mysql:5.7# 退出Harbor
docker loginout 192.168.1.146


3、将从Harbor私有仓库中下载Docker镜像
# 显示本地所有的镜像
docker images# 从本地删除镜像名称为192.168.2.146/pub/mysql:5.7的镜像
docker rmi 192.168.2.146/pub/mysql:5.7
# 从Harbor公开仓库下载mysql:5.7
docker pull 192.168.2.146/pub/mysql:5.7

相关文章:
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、…...
springboot+freemarker+restful
什么是freemarker? FreeMarker是一种模板引擎,它可以用于生成各种类型的文档,比如HTML、XML、PDF、Word等。它可以通过简单的模板语法和数据模型来生成文档内容。与传统的JSP相比,FreeMarker的语法更加简洁和易读,并且可以很好地…...
基于Kubernetes集群构建大中型企业CICD应用平台(1)-- devOps
一、DevOps介绍 软件开发最开始是由两个团队组成: 开发计划由开发团队从头开始设计和整体系统的构建。需要系统不停的迭代更新。 运维团队将开发团队的Code进行测试后部署上线。希望系统稳定安全运行。 这看似两个目标不同的团队需要协同完成一个软件的开发。 …...
什么是模型鲁棒性和泛化能力
目录 1、鲁棒性 2、泛化能力 1、鲁棒性 定义:在统计学领域和机器学习领域,对异常值也能保持稳定、可靠的性质,称为鲁棒性。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃&a…...
AI翻译工具分享
LanguageX简介 冠军翻译引擎交互式翻译,为专业译者而生的新一代译者工具 自2017年神经网络机器翻译流行以来,“机器翻译替代人工翻译”的观点屡见不鲜。作为一个技术和语言背景结合的团队,LanguageX认为语言服务是高度复杂、需要创意的智力活动,并肩负着人类沟通的重要使命。La…...
选男友最好的方式就是爬山
爬山,作为一种户外运动,一直备受青睐,拥有着许多的好处。而对于现代人来说,选择一位合适的伴侣,也是一件非常重要的事情。 那么,为什么不将两者结合起来,用爬山来寻找最合适的男友呢?…...
C++面经:初始化全局变量和未初始化全局变量有什么区别
全局变量初始化而且初始值不为0,那么这样的全局变量是放在内存的.data段的,如果全局变量初始值为0或者未初始化,那么这样的全局变量是放在.bss段的。 考点: 考察C/C语言内存模型,.data,.bss段存放的内容。 …...
vue-2 指令:
指令 什么是html属性:就是用来扩展html标签的功能,属性是写在html的开发标签中:属性“属性值”, 指令就是用来扩展在vue中标签的功能 {{}} :模板语法,文本插值 不可解析html标签 {{ 可以写变量&#x…...
非常提效的7款原型工具推荐
原型图工具允许在开发前进行测试和迭代过程,可以帮助节省大量的开发时间和成本。在本文中,我们盘点了7个易于使用的原型图工具,以提高您的生产力! 1.即时设计 即时设计是一款免费的在线 UI 设计工具,无系统限制&…...
最新Kafka和RabbitMQ消息队列经典面试题汇总(含答案)
最新Kafka和RabbitMQ消息队列经典面试题汇总 1.消息队列的应用场景有哪些?2.RabbitMQ 有哪些优点?3.RabbitMQ 有哪些重要的角色?4.RabbitMQ 有哪些重要的组件?它们有什么作用?5.什么是消息持久化?6.RabbitMQ 要实现消息持久化,需要满足哪些条件?7.消息持久化有哪些缺点…...
软件测试行业对新人友好吗?
软件测试真的算是对新人小白非常友好的学科了,但是你也千万不要抱有幻想,觉得轻轻松松就能掌握真正的技能,然后如愿找到高薪工作。从0到1还是需要一个过程的,也是需要你付出相当大的努力去学习的 随着人工智能时代的到来…...
Python requests 模块
Python中的requests模块是一个HTTP客户端库,它允许您向任何Web服务器发送HTTP请求并获取响应。 下面是一个简单的示例,向某个网站发送一个HTTP GET请求: python import requests response requests.get("http://www.example.com&quo…...
IOC理论推导
1.UserDao接口 package com.kuang.dao;public interface UserDao {void getUser(); }2.UserDaoImpl业务接口 package com.kuang.dao;public class UserDaoImpl implements UserDao{Overridepublic void getUser() {System.out.println("默认获取用户数据");} }3.Us…...
我的一些感悟
记录一些感悟,不定时更新 当面临稍微突发的情况时,感到慌乱;遭遇一点挫折时,情绪低落;面对问题,不是首先思考解决办法,而是抱怨不已。这种心态基本上无法取得成功 做事雷厉风行,需要…...
NC 人力薪酬管理怎么结账?
NC 人力薪酬管理结账流程 1、先在【薪资发放】节点选择相应的薪资方案进行查询操作,然后进行计算操作; 2、计算操作完后,再进行审核操作; 3、如果薪资方案勾选了“发放数据需要审批”属性,则需要在【发放申请】节点…...
JavaWeb编程面试题——Spring Boot
目录 引言一、面试题导航二、面试题目1.什么是SpringBoot?2.谈谈你对SpringBoot的理解?3.为什么需要SpringBoot?4.SpringBoot的配置文件有哪几种格式?5.SpringBoot支持哪些日志框架?推荐和默认的日志框架是哪个&#x…...
Educational Codeforces Round 148 (Rated for Div. 2) A,B,C
A. New Palindrome 要求:对于一个回文串,判断是否可以转换为其他回文串 思路:如果回文串的前一半存在不相同的字符,就可以转换 #include<bits/stdc.h> using namespace std;int n; string s;void solve(){cin>>s;boo…...
C#串口通信从入门到精通(15)——流量控制(XON/XOFF协议实现)
文章目录 前言1、XON/XOFF流控原理介绍2、XON/XOFF发送端C#代码实现3、XON/XOFF接收端C#代码实现前言 通信双方在一个发送能力大于接收处理能力时若不限制发方的数据流量则最终会“淹没”接收方而导致数据丢失,针对这个问题常规的有硬件流控和软件流控方法,本文介绍的就是软…...
基于Kubernetes集群构建大中型企业CICD应用平台(2)--code阶段工具gitlab安装
这里我们为gitlab服务器准备一台虚拟机:192.168.19.6-gitlab服务器 在code阶段,我们需要将不同版本的代码存储到一个仓库中,常见的版本控制工具就是SVN或者Git,这里我们采用Git作为版本控制工具,GitLab作为远程仓库。…...
数字化转型浪潮下,如何选择适合企业的低代码平台
近日,艾瑞咨询发布了《数字新生态:中国低代码厂商发展白皮书》(以下简称“报告”),在该报告中,艾瑞咨询对中国当前的低代码市场进行了非常细致的解构,并针对当前企业数字化转型,对低…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...
AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)
Name:3ddown Serial:FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名:Axure 序列号:8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...
WEB3全栈开发——面试专业技能点P4数据库
一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库,基于 mysql 库改进而来,具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点: 支持 Promise / async-await…...
2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...
