当前位置: 首页 > news >正文

《Kubernetes部署篇:基于麒麟V10+ARM64架构部署harbor v2.4.0镜像仓库》

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级K8s集群运维实战


一、环境信息

K8S版本 操作系统 CPU架构 服务版本
1.26.15 Kylin Linux Advanced Server V10 ARM64 harbor v2.4.0

二、部署操作

2.1、资源包下载

说明:如果你从别处找来的镜像,redis提示报错ignore-warnings ARM64-COW-BUG,可以重新编译redis镜像。当前资源已经是重新编译过了,可以正常使用的镜像。
在这里插入图片描述


2.2、生成https证书

1、配置hosts

192.168.1.188 server.harbor.com

2、生成CA证书私钥和CA证书

openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=server.harbor.com" \-key ca.key \-out ca.crt

说明:通过 ca.key 文件生成一个 crt 文件,CA 证书后面用来签署服务器证书。


3、生成服务器证书私钥

openssl genrsa -out server.harbor.com.key 4096

4、生成签名请求文件

openssl req -sha512 -new \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=server.harbor.com" \-key server.harbor.com.key \-out server.harbor.com.csr

说明:通过 server.harbor.com生成签名请求文件 CSR。


5、生成x509 v3扩展文件

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names[alt_names]
DNS.1=server.harbor.com
DNS.2=192.168.1.188
EOF

6、生成服务器证书

openssl x509 -req -sha512 -days 3650 \-extfile v3.ext \-CA ca.crt -CAkey ca.key -CAcreateserial \-in server.harbor.com.csr \-out server.harbor.com.crt

2.3、配置Docker证书

说明:配置Docker客户端以便它能够安全地与使用了自签名证书的Harbor仓库进行通信。默认情况下,Docker客户端在尝试与仓库通信时,会检查仓库的SSL证书是否由一个受信任的证书颁发机构(CA)签发。如果证书是自签名的(如Harbor的默认设置),Docker客户端将拒绝连接,因为它不信任该证书。

1、将server.harbor.com.crt转换为server.harbor.com.cert,供 Docker 使用

说明:Docker守护程序将 .crt 文件解释为CA证书,并将 .cert 文件解释为客户端证书。

openssl x509 -inform PEM -in server.harbor.com.crt -out server.harbor.com.cert

2、复制证书到指定位置

说明:将服务器证书、服务器私钥和CA文件复制到Harbor主机上的Docker证书文件夹中。必须首先创建适当的文件夹。

# 创建目录
mkdir -p /etc/docker/certs.d/server.harbor.com
# 如果不是使用443端口,则需要在后面指定使用的具体端口,例如8001
mkdir -p /etc/docker/certs.d/server.harbor.com:9443cp server.harbor.com.cert /etc/docker/certs.d/server.harbor.com:9443/
cp server.harbor.com.key /etc/docker/certs.d/server.harbor.com:9443
cp ca.crt /etc/docker/certs.d/server.harbor.com:9443

如下图所示:
在这里插入图片描述


3、重启docker

systemctl restart docker

2.4、部署harbor

1、解压harbor安装包

tar axf harbor-offline-installer-v2.4.0-arm64.tgz
cd harbor

2、导入镜像

docker load -i harbor.v2.4.0.tar.gz

3、编辑harbor.yml文件

cp harbor.yml.tmpl harbor.yml
vim harbor.yml

如下所示:

hostname: server.harbor.com
http:port: 9800
https:port: 9443certificate: /data/pkgs/harbor/server.harbor.com.crtprivate_key: /data/pkgs/harbor/server.harbor.com.key
harbor_admin_password: Harbor12345
database:password: n714aSP3RT
data_volume: /data/basic-data/harbor/harbor-data
log:local:location:/data/basic-data/harbor/harbor-log

4、执行安装脚本

./install.sh

执行完成后,如下所示:
在这里插入图片描述

浏览器登陆https://192.168.1.188:9443,如下所示:
在这里插入图片描述


2.5、containerd接入harbor

说明:以下操作在所有containerd主机上执行。

1、配置hosts

192.168.1.188 server.harbor.com

2、编辑配置文件/etc/containerd/config.toml

    [plugins."io.containerd.grpc.v1.cri".registry]config_path = ""[plugins."io.containerd.grpc.v1.cri".registry.auths][plugins."io.containerd.grpc.v1.cri".registry.configs][plugins."io.containerd.grpc.v1.cri".registry.configs."server.harbor.com:9443".tls]insecure_skip_verify = true[plugins."io.containerd.grpc.v1.cri".registry.configs."server.harbor.com:9443".auth]username = "admin"password = "Harbor12345"[plugins."io.containerd.grpc.v1.cri".registry.headers][plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."server.harbor.com:9443"]endpoint = ["https://server.harbor.com:9443"][plugins."io.containerd.grpc.v1.cri".x509_key_pair_streaming]tls_cert_file = ""tls_key_file = ""

如下图所示:
在这里插入图片描述


3、重启containerd服务

systemctl daemon-reload && systemctl restart containerd.service  

2.6、推送和拉取私有镜像

2.6.1、推送私有镜像

1、使用docker login命令进行登录

echo Harbor12345 | docker login -u admin --password-stdin https://server.harbor.com:9443

docker login会在当前用户家目录下生成~/.docker/config.json,可以根据该文件制作镜像拉取凭证如下所示:

[root@arm-2 ~]# cat ~/.docker/config.json
{"auths": {"server.harbor.com:9443": {"auth": "YWRtaW46SGFyYm9yMTIzNDU="}}

2、使用docker服务的doker push命令上传镜像

docker pull docker.io/library/nginx:1.25.4
docker tag docker.io/library/nginx:1.25.4 server.harbor.com:9443/library/nginx:1.25.4
docker push server.harbor.com:9443/library/nginx:1.25.4

如下图所示,则表示push成功
在这里插入图片描述


2.6.2、拉取私有镜像

ctr image pull --user "admin:Harbor12345" --skip-verify server.harbor.com:9443/library/nginx:1.25.4

如下图所示:
在这里插入图片描述


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级K8s集群运维实战

相关文章:

《Kubernetes部署篇:基于麒麟V10+ARM64架构部署harbor v2.4.0镜像仓库》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;企业级K8s集群运维实战 一、环境信息 K8S版本 操作系统 CPU架构 服务版本 1.26.15 Kylin Linux Advanced Server V10 ARM64 harbor v2.4.0 二、部…...

远程工作/线上兼职网站整理(数字游民友好)

文章目录 国外线上兼职网站fiverrupwork 国内线上兼职网站甜薪工场猪八戒网云队友 国外线上兼职网站 fiverr https://www.fiverr.com/start_selling?sourcetop_nav upwork https://www.upwork.com/ 国内线上兼职网站 甜薪工场 https://www.txgc.com/ 猪八戒网 云队友 …...

elasticsearch7.15实现用户输入自动补全

Elasticsearch Completion Suggester&#xff08;补全建议&#xff09; Elasticsearch7.15安装 官方文档 补全建议器提供了根据输入自动补全/搜索的功能。这是一个导航功能&#xff0c;引导用户在输入时找到相关结果&#xff0c;提高搜索精度。 理想情况下&#xff0c;自动补…...

掌握正则表达式的力量:全方位解析PCRE的基础与进阶技能

Perl 兼容正则表达式&#xff08;PCRE&#xff09;是 Perl scripting language 中所使用的正则表达式语法标准。这些正则表达式在 Linux 命令行工具&#xff08;如 grep -P&#xff09;及其他编程语言和工具中也有广泛应用。以下是一些基础和进阶特性&#xff0c;帮你掌握和使用…...

FastFM库,一款强大神奇的Python系统分析预测的工具

FastFM库概述 在机器学习领域,Factorization Machines&#xff08;FM&#xff09;是处理稀疏数据集中特征间交互的重要工具.Python的fastFM库提供了高效的实现,特别适合用于推荐系统、评分预测等任务.本文将全面介绍fastFM的安装、特性、基本和高级功能,并结合实际应用场景展示…...

R语言绘图 --- 饼状图(Biorplot 开发日志 --- 2)

「写在前面」 在科研数据分析中我们会重复地绘制一些图形&#xff0c;如果代码管理不当经常就会忘记之前绘图的代码。于是我计划开发一个 R 包&#xff08;Biorplot&#xff09;&#xff0c;用来管理自己 R 语言绘图的代码。本系列文章用于记录 Biorplot 包开发日志。 相关链接…...

用于日常任务的实用 Python 脚本

Python 是一种多功能编程语言&#xff0c;以其简单易读而闻名。它广泛应用于从 Web 开发到数据分析等各个领域。Python 脚本&#xff0c;它们可以通过自动执行常见任务来使您的生活更轻松。 用于日常任务的实用 Python 脚本 1. 使用 Pandas 进行数据分析2. 使用 BeautifulSoup …...

7-Zip是什么呢

1. 简介 7-Zip 是一个功能强大、免费开源的文件压缩和解压缩工具&#xff0c;适用于个人用户和企业用户&#xff0c;可以在多种操作系统上进行使用&#xff0c;并且支持广泛的压缩格式和高级功能。 2. 特点与优势 开源免费&#xff1a;7-Zip 是免费的开源软件&#xff0c;可…...

Satellite Stereo Pipeline学习

1.在Anaconda某个环境中安装s2p pip install s2p 2.在Ubuntu系统中安装s2p源代码 git clone https://github.com/centreborelli/s2p.git --recursive cd s2p pip install -e ".[test]" 3.在s2p中进行make all处理 中间会有很多情况&#xff0c;基本上哪个包出问题…...

linux-gpio

在Linux shell中测试GPIO通信&#xff0c;通常需要使用GPIO的设备文件&#xff0c;这些文件通常位于/sys/class/gpio目录下。要使用特定的GPIO引脚&#xff0c;比如GPIO92&#xff0c;你需要执行以下步骤&#xff1a; 导出GPIO引脚&#xff1a;首先&#xff0c;需要确保GPIO92已…...

C# 代码配置的艺术

文章目录 1、代码配置的定义及其在软件工程中的作用2、C# 代码配置的基本概念和工具3、代码配置的实践步骤4、实现代码配置使用属性&#xff08;Properties&#xff09;使用配置文件&#xff08;Config Files&#xff09;使用依赖注入&#xff08;Dependency Injection&#xf…...

268 基于matlab的模拟双滑块连杆机构运动

基于matlab的模拟双滑块连杆机构运动&#xff0c;并绘制运动动画&#xff0c;连杆轨迹可视化输出&#xff0c;并输出杆件质心轨迹、角速度、速度变化曲线。可定义杆长、滑块速度&#xff0c;滑块初始位置等参数。程序已调通&#xff0c;可直接运行。 268 双滑块连杆机构运动 连…...

进口铝合金电动隔膜泵

进口铝合金电动隔膜泵是一种高效、可靠的工业泵&#xff0c;其特点、性能与应用广泛&#xff0c;以下是对其的详细分析&#xff1a; 特点 材质与结构&#xff1a; 采用铝合金材料制造&#xff0c;具有良好的耐腐蚀性和轻量化特点。铝合金材质使得泵体结构紧凑、轻便&#xff…...

G4 - 可控手势生成 CGAN

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 代码总结与心得 代码 关于CGAN的原理上节已经讲过&#xff0c;这次主要是编写代码加载上节训练后的模型来进行指定条件的生成 图像的生成其实只需要使用…...

使用 DuckDuckGo API 实现多种搜索功能

在日常生活中&#xff0c;我经常使用搜索引擎来查找信息&#xff0c;如谷歌和百度。然而&#xff0c;当我想通过 API 来实现这一功能时&#xff0c;会发现这些搜索引擎并没有提供足够的免费 API 服务。如果有这样的免费 API, 就能定时获取“关注实体”的相关内容&#xff0c;并…...

【DrissionPage爬虫库 1】两种模式分别爬取Gitee开源项目

文章目录 DrissionPage爬虫库简介1. 浏览器操控模式&#xff08;类似于游戏中的后台模拟鼠标键盘&#xff09;2. 数据包收发模式&#xff08;类似于游戏中的协议封包&#xff09; 实战中学习需求&#xff1a;爬取Gitee开源项目的标题与描述解决方案1&#xff1a;用数据包方式获…...

leetcode 115.不同的子序列

思路&#xff1a;LCS类dp 这道题的思考思路其实就是把以两个字符串结尾作为状态方程。 dp[i][j]的意义就是在s字符串在以s[i]结尾的字符串的情况下&#xff0c;所能匹配出t字符串以t[j]结尾的字符串个数。 本质上其实是一个LCS类的状态方程&#xff0c;只不过是意义不一样了…...

二叉树的顺序实现-堆

一、什么是堆 在数据结构中&#xff0c;堆&#xff08;Heap&#xff09;是一种特殊的树形数据结构&#xff0c;用数组存储&#xff0c;通常被用来实现优先队列。 堆具有以下特点&#xff1a; 堆是一棵完全二叉树&#xff08;Complete Binary Tree&#xff09;&#xff0c;即…...

【Maven】Maven主要知识点目录整理

1. Maven的基本概念 作者相关文章链接&#xff1a; 1、【Maven】简介_下载安装-CSDN博客 定义&#xff1a;Maven是Apache的一个开源项目&#xff0c;是Java开发环境中用于管理和构建项目&#xff0c;以及维护依赖关系的强大软件项目管理工具。作用&#xff1a;简化了项目依赖…...

Coolmuster Android Assistant: 手机数据管理的全能助手

在数字化时代&#xff0c;智能手机不仅是通讯工具&#xff0c;更是个人数据的中心。随着数据量的不断增加&#xff0c;如何有效管理和保护这些数据成为了一个重要议题。Coolmuster Android Assistant应运而生&#xff0c;它是一款专为安卓用户设计的综合数据管理软件&#xff0…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...

【51单片机】4. 模块化编程与LCD1602Debug

1. 什么是模块化编程 传统编程会将所有函数放在main.c中&#xff0c;如果使用的模块多&#xff0c;一个文件内会有很多代码&#xff0c;不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里&#xff0c;在.h文件里提供外部可调用函数声明&#xff0c;其他.c文…...

Canal环境搭建并实现和ES数据同步

作者&#xff1a;田超凡 日期&#xff1a;2025年6月7日 Canal安装&#xff0c;启动端口11111、8082&#xff1a; 安装canal-deployer服务端&#xff1a; https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...