Harbor镜像仓库的安装和使用

1 Harbor安装

参考文章:
银河麒麟v10离线安装harbor

由于配置了本地私有yum源,因此,直接使用yum命令安装docker和docker-compose

1.1 安装docker

yum install docker-ce

1.2 安装docker-compose

yum install docker-compose

1.3 安装harbor

下载安装文件harbor-1.10.2-1.p02.ky10.aarch64.rpm
将文件上传到服务器的/root路径下

使用yum本地安装

yum localinstall -y harbor-1.10.2-1.p02.ky10.aarch64.rpm

修改配置文件/root/harbor/harbor.yml

vim /root/harbor/harbor.yml

在这里插入图片描述

配置Harbor

./prepare

安装Harbor

./install.sh

2 Harbor的使用

2.1 Harbor镜像仓库信息

http://192.168.16.106:5000/
用户名:xxxx
密码:xxxxxxxx

2.2 创建项目

在浏览器访问Harbor的管理界面:192.168.16.106:5000
登录
在项目菜单中点击新建项目按钮,新建项目。访问级别设置为公开,不用登录用户名密码即可拉取和推送镜像

在这里插入图片描述

2.3 docker配置使用harbor私用镜像仓库

在某个局域网服务器使用harbor私有镜像仓库上传或者拉取镜像,需要先登录harbor,会自动存储配置文件到系统文件。

docker login -u test -p Test123456 http://192.168.16.106:5000

会报错Error response from daemon: Get "https://192.168.16.106:5000/v2/": http: server gave HTTP response to HTTPS client

在这里插入图片描述

因为我们的私有镜像仓库是使用http请求,而docker引擎默认使用https与镜像仓库交互,需要修改docker的配置文件,增加insecure-registries配置

编辑/etc/docker/daemon.json文件

vim /etc/docker/daemon.json

增加如下配置

{"insecure-registries":["http://192.168.16.106:5000"]
}

重新加载配置,重启到docker服务

systemctl daemon-reload && systemctl restart docker.service

此时即可正常登录使用

在这里插入图片描述

2.3 上传镜像到私有仓库

给镜像打标签

在公网服务器pull镜像,给镜像打私有镜像仓库的标签,上文我们给harbor中创建的项目名为test,因此下面例子均以test为例

docker tag SOURCE_IMAGE[:TAG] 192.168.16.106:5000/PROJECT_NAME/IMAGE[:TAG]

例如:

docker tag openjdk:8 192.168.16.106:5000/test/openjdk:8-arm64

上传镜像

docker push 192.168.16.106:5000/PROJECT_NAME/IMAGE[:TAG]

例如:

docker push 192.168.16.106:5000/test/openjdk:8-arm64

2.4 拉取镜像

在内网的所有服务器上可以拉取镜像

docker pull 192.168.16.106:5000/test/kuboard-spray:1.2.4-arm64

在这里插入图片描述

3 在k8s集群中使用

3.1 containerd配置http的私有仓库

由于k8s在1.24以后得版本中不在支持docker作为容器引擎,而是使用containerd,因此在集群的各个节点服务器上使用harbor私有仓库,配置与docker不同。

containerd 不能像docker一样 docker login harbor.example.com 登录到镜像仓库
containerd不像docker,在/etc/docker/deamon.json文件配置一下insecure-registries就可以使用了

修改containerd 的配置文件/etc/containerd/config.toml

vim /etc/containerd/config.toml
  • 增加`registry.configs``,设置跳过安全认证设为true,设置登录用户名和密码
  • registry.mirrors配置中增加私有镜像仓库的http地址http://192.168.16.106:5000
    [plugins."io.containerd.grpc.v1.cri".registry][plugins."io.containerd.grpc.v1.cri".registry.configs][plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.16.106:5000".tls]insecure_skip_verify = true #跳过安全认证设为true[plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.16.106:5000".auth]# 设置登录用户名和密码username = "xxxx"password = "xxxxxxxx"[plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint = ["https://registry-1.docker.io"]# 增加harbor私有镜像仓库的http地址[plugins."io.containerd.grpc.v1.cri".registry.mirrors."192.168.16.106:5000"]endpoint = ["http://192.168.16.106:5000"]

重新加载配置,使配置生效并重启Containerd

systemctl daemon-reload && systemctl restart containerd.service

此时,K8S集群各个节点即可正常从私有镜像仓库拉取镜像。

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

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

相关文章

JAVA学习-NIO.Channel(通道)

在Java NIO中,Channel(通道)是用于在文件、套接字、管道等之间进行数据传输的对象,它类似于传统IO中的流。通道可以用于读取和写入数据,并且可以同时进行读写。 一、Java NIO中提供了几种类型的通道,主要有…

一起学数据分析_3(模型建立与评估_1)

使用前面清洗好的数据来建立模型。使用自变量数据来预测是否存活(因变量)? (根据问题特征,选择合适的算法)算法选择路径: 1.切割训练集与测试集 import pandas as pd import numpy as np impo…

机器学习——编程实现从零构造训练集的决策树

自己搭建一棵决策树【长文预警】 忙了一个周末就写到了“构建决策树”这一步,还没有考虑划分测试集、验证集、“缺失值、连续值”,预剪枝、后剪枝的部分,后面再补吧(挖坑) 第二节内容:验证集划分\k折交叉…

字符串篇(四)

文章目录 1.26 ljust()函数1.27 lower()函数1.28 lstrip()函数1.29 maketrans()函数1.30 partition()函数1.31 replace()函数1.32 rfind()函数1.33 rindex()函数 1.26 ljust()函数 ljust() 是 Python 中字符串(str)对象的一个方法,用于将字符…

android、Jetpack Compose使用 Room数据库kapt注解时出现的相关问题整理。

谢谢阅览、关注!! 一、问题描述: 问题 1:> a failure occurred while executing org.jetbrains.kotlin.compilerrunner.gradlecompilerrunnerwithworkers$gradlekotlincompilerworkaction > internal compiler error. see log for more details 问题 2:a failure …

在Spring Boo动态修改日志级别

在Spring Boot中,可以通过编程的方式动态修改日志级别。以下是一个简单的例子,展示了如何使用Logback(Spring Boot默认的日志框架)来实现这一功能。 首先,确保你的项目已经包含了spring-boot-starter-logging依赖。 …

python爬虫之xpath入门

文章目录 一、前言参考文档: 二、xpath语法-基础语法常用路径表达式举例说明 三、xpath语法-谓语表达式举例注意 四、xpath语法-通配符语法实例 五、选取多个路径实例 六、Xpath Helper安装使用说明例子: 七、python中 xpath 的使用安装xpath 的依赖包xm…

基于yolov2深度学习网络的人脸检测matlab仿真,图像来自UMass数据集

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 网络架构与特征提取 4.2 输出表示 4.3损失函数设计 4.4预测阶段 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 load yolov2.mat% 加载…

爱注讲台三尺案不辞长作“育花”人

—记邵阳市优秀班主任、新宁县优秀教师周芳平 教育是人与人心灵上最美妙的接触,只要用心体察,用情关注,每一位学生都会走向金光大道。 ---题记 “亲爱的妈妈,祝您节日快乐!”2024年3月8日,一条从深圳华为…

28-3 文件上传漏洞 -白盒审计绕过

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、upload-labs 靶场的第7关 先进行代码审计 $is_upload = false; $msg = null; if (isset($_POST[submit])) {if (file_exists($UPLOAD_ADDR)) {$deny_ext = array(".php&…

机器学习 - PyTorch里的aggregation

在PyTorch里,可以在tensor里找到min, max, mean, sum 等aggregation值。 直接上代码 import torch x torch.arange(0, 100, 10) print(x) print(f"Minimum: {x.min()}") print(f"Minimum: {torch.min(x)}") print(f"Maximum: {x.max()}…

Spring Boot:筑基

Spring Boot 前言概述使用 Intellij idea 快速创建 Spring Boot 项目注意事项 前言 在学习 Spring 、SpringMVC 、MyBatis 和 JPA 框架的过程中,了解到 SSM 框架为 Java Web 开发提供了强大的后端支持,JPA 框架则简化了数据库的操作。然而,S…

安卓面试题多线程36-40

36. 请问什么是锁消除和锁粗化?(1)锁消除 所消除就是虚拟机根据一个对象是否真正存在同步情况,若不存在同步情况,则对该对象的访问无需经过加锁解锁的操作。 比如StringBuffer的append方法,因为append方法需要判断对象是否被占用,而如果代码不存在锁竞争,那么这部分的性…

Cesium:按行列绘制3DTiles的等分线

作者:CSDN @ _乐多_ 本文将介绍如何使用 Cesium 引擎根据模型的中心坐标,半轴信息,绘制 3DTiles 对象的外包盒等分线。 外包盒是一个定向包围盒(Oriented Bounding Box),它由一个中心点(center)和一个包含半轴(halfAxes)组成。半轴由一个3x3的矩阵表示,这个矩阵是…

算法第三十一天-区域和检索【数组不可变】

区域和检索-数组不可变 题目要求 解题思路 为方便描述,把 n u m s nums nums 记作 a a a。 对于数组 a a a,定义它的前缀和 s [ 0 ] 0 s [ 1 ] a [ 0 ] s [ 2 ] a [ 0 ] a [ 1 ] ⋮ s [ i ] a [ 0 ] a [ 1 ] ⋯ a [ i − 1 ] ∑ j 0 i −…

matplotlib使用总结1

matplotlib 是一个用于创建静态、动态和交云图的 Python 绘图库。它可以用于 Python 脚本、Python 和 IPython shell、Jupyter 笔记本、web 应用服务器以及四个图形用户界面工具包中。matplotlib 尝试让简单的事情更简单,让困难的事情成为可能。你可以生成线图、柱状…

借记卡年费和小额账户管理费,以及换卡面不换号

文章目录 年费和小额账户管理费减免政策:每家银行均可有一张借记卡享受双免政策减免政策:代发工资、低保、社保、医保、失业保险、养老金、退休金、住房公积金等账户减免政策:二、三类电子账户一类卡、二类卡和三类卡二、三类电子账户不收取年…

Rust字符串深入理解

一、概述 Rust是一种系统级语言,进行操作系统等底层应用开发,同时又具合理的抽象处理能力。在进行Rust编程时,字符串处理是程序员经常碰到的工作。本文深入解析Rust语言中字符串的使用,包括 static string,String与&a…

LeetCode 2578.最小和分割

给你一个正整数 num ,请你将它分割成两个非负整数 num1 和 num2 ,满足: num1 和 num2 直接连起来,得到 num 各数位的一个排列。 换句话说,num1 和 num2 中所有数字出现的次数之和等于 num 中所有数字出现的次数。 num…

x86 32 64 Arm这些听过但不懂,都是什么?是架构还是系统?一文梳理

x86 听过吗?64位操作系统知道吧 和x86什么关系32和64都是什么东西?曾经的我也一头雾水,今天我才来整理一下,惭愧惭愧!今天带着沉重的心情来梳理一下学习内容吧 如果你很熟悉很了解计算机的话,应该知道&…