K8S部署Harbor(三部曲之三:使用)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • 使用Harbor
    • 1. 访问
    • 2. 登录
    • 3. 项目创建
      • 3.1 私有项目test01创建
      • 3.2 公开项目test02创建
    • 4. Docker配置Harbor(所有节点)
      • 4.1 insecure-registries
      • 4.2 Docker登录Harbor
    • 5. hello-world镜像拉取
    • 6. 公开项目的镜像推送和拉取
      • 6.1 镜像上传
        • 6.1.1 打标签
        • 6.1.2 镜像推送
      • 6.2 镜像拉取
        • 6.2.1 查看镜像
        • 6.2.2 删除tag的镜像
        • 6.2.3 拉取harbor仓库的镜像
    • 7. 私有项目的镜像推送和拉取(为了验证有无区别还是操作一遍私有的)
      • 7.1 镜像上传
        • 7.1.1 打标签
        • 7.1.2 镜像推送
      • 7.2 镜像拉取
        • 7.2.1 查看镜像
        • 7.2.2 删除tag的镜像
        • 7.2.3 拉取harbor仓库的镜像
    • 8. 可能遇到的问题
    • 9. 镜像仓库相关Docker命令汇总
      • 9.1 登录Harbor
      • 9.2 重启Harbor
        • 9.2.1 直接重启命令
        • 9.2.2 指定文件路径重启命令
      • 9.3 拉取镜像
      • 9.4 查看镜像
      • 9.5 为镜像打标签
      • 9.6 推送镜像到Harbor
      • 9.7 删除镜像
      • 9.7 从Harbor中拉取镜像到本地
    • 10. 卸载Harbor
      • 10.1 停止Harbor服务相关容器
      • 10.2 删除Harbor服务相关容器
      • 10.3 删除harbor服务相关镜像
      • 10.4 删除harbor相关数据


K8S部署Harbor三部曲:
K8S部署Harbor(三部曲之一:配置)
K8S部署Harbor(三部曲之二:部署)
K8S部署Harbor(三部曲之三:使用)本篇

使用Harbor

1. 访问

前面配置安装完成后,可通过https://172.30.0.224:8443访问我们的Harbor镜像仓库
会出现以下界面,选高级
在这里插入图片描述
继续前往
在这里插入图片描述

2. 登录

看到Harbor登录界面
在这里插入图片描述
输入账号密码即可登录
默认账号为admin
默认密码为Harbor12345

登录成功后可看到有一个默认的项目library,接下来就可以正常使用Harbor了
在这里插入图片描述

3. 项目创建

在项目一栏中选择新建新建项目,用于存储镜像,我们创建两个项目,一个私有一个公开
在这里插入图片描述
注:
由于我配置的是https访问harbor仓库,就是安全配置访问,不管是公开的还是私有的都需要在docker中配置信任harbor后登陆harbor才可以操作镜像仓库中的镜像
如果你想别人也能随便用你的镜像仓库(这种情况应该不多,大多数人还是自己管控自己的镜像),可以配置http方式,不用https的安全配置,这样公开的项目应该能被别人拉取使用,总之这部分的区别有待大家去探索,我也是小小尝试了一下。

3.1 私有项目test01创建

填写项目名称其余默认,公开不点就是私有,确定
在这里插入图片描述
创建成功
在这里插入图片描述

3.2 公开项目test02创建

在这里插入图片描述
创建成功
在这里插入图片描述
点进去打开test01和test02,里面都是空的,接下来我们推送镜像到这两个项目中
在这里插入图片描述
在这里插入图片描述

现在我们可以到服务器中使用docker将镜像推送到我们新建的test01和test02项目中

4. Docker配置Harbor(所有节点)

为了能在集群中任何一个节点服务器上使用docker推送或拉取Harbor上的镜像,我们需要给所有节点的docker配置信任Harbor并登录

4.1 insecure-registries

让docker信任harbor镜像仓库
在daemon.json文件中添加insecure-registries参数,注意拼写,不要错了,不然在不自知的情况下可能会查很久

vim /etc/docker/daemon.json

i进入编辑

{"exec-opts": ["native.cgroupdriver=systemd"],"insecure-registries": ["https://172.30.0.224:8443"]
}

编辑完后Esc退出编辑模式
shift+zz快捷保存退出

最后不要忘了重启docker让配置生效

systemctl daemon-reload
systemctl restart docker 

4.2 Docker登录Harbor

在docker中登录Harbor以便可正常推送拉取镜像

docker login 172.30.0.224:8443 -u admin -p Harbor12345

在这里插入图片描述
或者交互式登录

docker login 172.30.0.224:8443

然后输入账号和密码,不过密码看不到,建议还是用第一种命令登录

在这里插入图片描述

5. hello-world镜像拉取

我们要推送镜像就要先有一个镜像,我们去docker中拉取hello-world镜像来演示接下来的推送拉取操作
首先在harbor所在的服务器中使用docker命令拉取hello-world镜像

docker pull hello-world

不加版本号默认拉取最新版本latest
在这里插入图片描述
查看镜像

docker images

6. 公开项目的镜像推送和拉取

公开项目的镜像推送和拉取
根据上一小节拉取hello-world镜像到从节点k8s-worker1服务器

6.1 镜像上传

6.1.1 打标签

将hello-world镜像打标签,即以什么名称什么版本放到什么位置
如下就是将hello-world:latest镜像存放到test02项目中,名称为hello-world-hs-pu版本为20240130

docker tag hello-world:latest 172.30.0.224:8443/test02/hello-world-hs-pu:20240130

在这里插入图片描述
打完标签后可docker images查看打标签的镜像

6.1.2 镜像推送

将打过标签的镜像上传到我们Harbor镜像仓库创建的test02项目中

docker push 172.30.0.224:8443/test02/hello-world-hs-pu:20240130

推送成功
在这里插入图片描述
然后去镜像仓库test02项目中查看镜像,可以看到已经在了
在这里插入图片描述

6.2 镜像拉取

和镜像推送相似,从harbor仓库的test02项目中将镜像拉取到当前服务器中

6.2.1 查看镜像

查看含有hello名称的镜像

docker images | grep hello

在这里插入图片描述

6.2.2 删除tag的镜像

首先我们先把刚才tag过的镜像删除

docker rmi -f 172.30.0.224:8443/test02/hello-world-hs-pu:20240130

在这里插入图片描述

6.2.3 拉取harbor仓库的镜像

现在拉取harbor仓库test02中的hello-world-hs-pu:20240130镜像

docker pull 172.30.0.224:8443/test02/hello-world-hs-pu:20240130

一秒不到完成,相当丝滑,终于体验到使用自己镜像仓库的酸爽了
在这里插入图片描述
然后使用命令查看镜像就可以看到镜像已经存在

7. 私有项目的镜像推送和拉取(为了验证有无区别还是操作一遍私有的)

私有项目的镜像推送和拉取

7.1 镜像上传

7.1.1 打标签

将hello-world镜像打标签,即以什么名称什么版本放到什么位置
如下就是将hello-world:latest镜像存放到test01项目中,名称为hello-world-hs-pr版本为20240131

docker tag hello-world:latest 172.30.0.224:8443/test01/hello-world-hs-pr:20240131

在这里插入图片描述
打完标签后可docker images查看打标签的镜像

7.1.2 镜像推送

将打过标签的镜像上传到我们Harbor镜像仓库创建的test01项目中

docker push 172.30.0.224:8443/test01/hello-world-hs-pr:20240131

推送成功
在这里插入图片描述
然后去镜像仓库test01项目中查看镜像,可以看到已经在了
在这里插入图片描述

7.2 镜像拉取

和镜像推送相似,从harbor仓库的test01项目中将镜像拉取到当前服务器中

7.2.1 查看镜像

查看含有hello名称的镜像

docker images | grep hello

在这里插入图片描述

7.2.2 删除tag的镜像

首先我们先把刚才tag过的镜像删除

docker rmi -f 172.30.0.224:8443/test01/hello-world-hs-pr:20240131

在这里插入图片描述

7.2.3 拉取harbor仓库的镜像

现在拉取harbor仓库test01中的hello-world-hs-pr:20240131镜像

docker pull 172.30.0.224:8443/test01/hello-world-hs-pr:20240131

很快,已经pull下来了
在这里插入图片描述
然后使用命令查看镜像就可以看到镜像已经存在

小节:
可以看到,在使用https配置的harbor镜像仓库时,对私有和公开项目中镜像的推送和拉取是没什么区别的,不过对于大多数项目内部使用的镜像仓库来说,https配置的harbor可能会更好吧。

8. 可能遇到的问题

可能报错的内容如下,可直接点击链接查看解决:
报错1:Get “https://198.30.0.111:8443/v2/”: tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead
报错2:invalid reference format
报错3:unauthorized: unauthorized to access repository: test02/hello-world-hs-pu, action: push: unauthorized to access repository: test02/hello-world-hs-pu, action: push

9. 镜像仓库相关Docker命令汇总

9.1 登录Harbor

换成你自己的ip端口及账号密码

docker login 172.30.0.224:8443 -u admin -p Harbor12345

9.2 重启Harbor

当harbor服务有问题或者修改了配置需要重启harbor时

9.2.1 直接重启命令

该命令需要再docker-compose.yml文件所在目录下执行

docker-compose restart
9.2.2 指定文件路径重启命令

在任意路径下可用-f指定docker-compose.yml文件路径来执行重启

docker-compose -f /opt/harbor/docker-compose.yml restart

注:一定要根据自己的docker-compose.yml文件路径来执行

9.3 拉取镜像

拉取hello-world镜像,不加版本号默认拉取最新

docker pull hello-world

9.4 查看镜像

可查看全部

docker images

查看镜像名称中含有指定字段的镜像

docker images | grep 字段

如查看含有h字母的镜像

docker images | grep h

9.5 为镜像打标签

将hello-world:latest镜像打标签为172.30.0.224:8443/test01/hello-world:v240131

docker tag hello-world:latest 172.30.0.224:8443/test01/hello-world-test:v240131

执行后会在docker中多出一个REPOSITORY名称为172.30.0.224:8443/test01/hello-world-test,TAG为v240131的镜像

9.6 推送镜像到Harbor

将打过标签的镜像推送到harbor镜像仓库,下方命令表示将镜像hello-world-test:v240131推送到仓库的test01项目中

docker push 172.30.0.224:8443/test01/hello-world-test:v240131

9.7 删除镜像

docker rmi 172.30.0.224:8443/test01/hello-world-test:v240131

也可加-f参数强制删除

9.7 从Harbor中拉取镜像到本地

将我们harbor中的镜像拉取到本地

docker pull 172.30.0.224:8443/test01/hello-world-test:v240131

10. 卸载Harbor

10.1 停止Harbor服务相关容器

可用docker ps | grep goharbor查看正在运行的harbor服务相关的容器

docker stop 容器名

10.2 删除Harbor服务相关容器

docker ps -a | grep "goharbor" | awk '{print "docker rm "$1}'

10.3 删除harbor服务相关镜像

docker images | grep "goharbor" | awk '{print "docker rmi "$1":"$2}'

10.4 删除harbor相关数据

如果不删除相关数据,再次安装harbor可能会报错,默认数据位置/data,如果根据本篇修改过则为/data/harbor

rm -f /data/harbor

到这应该卸载完成可重新安装harbor了


感谢阅读,祝君暴富!

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

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

相关文章

mysql升级到8.x

1.下载和安装 1.1.下载 mysql下载地址: https://dev.mysql.com/downloads/mysql/5.5.html?os31&version5.1 应该下载这个类似版本 mysql-8.0.36-linux-glibc2.17-x86_64-minimal.tar.xz 1.2 安装 解压: tar xvf mysql-8.0.36-linux-glibc2.17…

Android之命令行烧写OTA镜像(一百八十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

IDEA:git 回滚本地提交-git 选择 Reset Current Branch to

前言 回滚提交到本地但是还没有 Push 上去的提交 选择我们要回滚的节点,然后点击 git 选择 Reset Current Branch to… 再选择 Hard 。当我们点击 Reset 的时候,代码就会回滚到单前选中的这个版本

django+flask警务案件信息管理系统python-5dg53-vue

1)用户在后台页面各种操作可及时得到反馈。 (2)该平台是提供给多个用户使用的平台,警员使用之前需要注册登录。登录验证后,警员才可进行各种操作[10]。 (3)管理员用户拥有信息新增,修…

D2025——双通道音频功率放大电路,外接元件少, 通道分离性好,3V 的低压下可正常使用

D2025 为立体声音频功率放大集成电路,适用于各类袖珍或便携式立体声 收录机中作功率放放大器。 D2025 采用 DIP16 封装形式。 主要特点:  适用于立体声或 BTL 工作模式  外接元件少  通道分离性好  电源电压范围宽(3V~12V…

【gcc】webrtc发送侧计算 丢包率

大神的分析 : 提到: 每当收到cc-feedback或者收到RR-report的时候就能统计出丢包率,在cc-controller中就会调用SendSideBandwidthEstimation::UpdatePacketsLost()去更新丢包率,同时进行码率预估 G:\CDN\rtcCli\m98\src\modules\congestion_controller\goog_cc\send_side_b…

QT线程 (8)

QT的线程 文章目录 QT的线程1、为什么要用线程?2、QT线程1. QT4线程1. QT5线程![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2a9e78f4a64b47f9b516bb02331e9022.png)3. QT5线程的退出4. connect的第五个参数1. 直接方式2. 队列方式 3、QT线程绘制QIma…

自然语言处理--概率最大中文分词

自然语言处理附加作业--概率最大中文分词 一、理论描述 中文分词是指将中文句子或文本按照语义和语法规则进行切分成词语的过程。在中文语言中,词语之间没有明显的空格或标点符号来分隔,因此需要通过分词工具或算法来实现对中文文本的分词处理。分词的…

调试以及发布npm组件

开发原因: 由于公司自己的封装到npm的组件有点问题,负责人由在忙其他,就由我去负责改改,中途出了不少问题,记录一下。 一、下载源码 第一步肯定是去git上把组件的源码下载下来,这一步没什么好说&#xf…

分布式事务 seata+nacos 部署

分布式事务 seatanacos 部署 一、下载seata二、解压配置三、导入数据库四、nacos配置五、配置要引入事务的模块的配置文件六、启动七、测试 这里使用的版本: nacos:2.0.4 seata:1.5.2 seata官方地址:https://seata.apache.org/zh-…

LabVIEW汽车自燃监测预警系统

LabVIEW汽车自燃监测预警系统 随着汽车行业的飞速发展,汽车安全问题日益受到公众的关注。其中,汽车自燃现象因其突发性和破坏性,成为一个不可忽视的安全隐患。为了有效预防和减少自燃事故的发生,提出了LabVIEW的汽车自燃监测预警…

C++文件操作(1)

C文件操作 1.文本的写入及读取文本文件写入文本文件读取 2.二进制文件的写入及读取二进制文件写入二进制文件读取 3.小结 C也有处理文件的能力,其功能实现依赖文件流。文件流是C中用来处理文件输入输出的一种流类。文件流可以用于从文件中读取数据或将数据写入到文件…

ctfshow web-77

开启环境: 先直接用伪协议获取 flag 位置。 c?><?php $anew DirectoryIterator("glob:///*"); foreach($a as $f) {echo($f->__toString(). );} exit(0); ?> 发现 flag36x.txt 文件。同时根目录下还有 readflag&#xff0c;估计需要调用 readflag 获…

RabbitMQ之三种队列之间的区别及如何选型

目录 不同队列之间的区别 Classic经典队列 Quorum仲裁队列 Stream流式队列 如何使用不同类型的队列​ Quorum队列 Stream队列 不同队列之间的区别 Classic经典队列 这是RabbitMQ最为经典的队列类型。在单机环境中&#xff0c;拥有比较高的消息可靠性。 经典队列可以选…

FFMPEG 之 DXVA2 硬解

一&#xff1a;FFMPEG 支持的硬解方式有很多&#xff1a; DXVA2、D3D11VA、CUDA、QSV、OPENCL、DRM、VAAPI、VDPAU、VIDEOTOOLBOX、MEDIACODEC。 有的支持 Windows 平台&#xff0c;有的支持 linux 平台&#xff0c;有的支持 apple ios 平台&#xff0c;…

和鲸科技与智谱AI达成合作,共建大模型生态基座

近日&#xff0c;上海和今信息科技有限公司&#xff08;简称“和鲸科技”&#xff09;与北京智谱华章科技有限公司&#xff08;简称“智谱AI”&#xff09;签订合作协议&#xff0c;双方将携手推动国产通用大模型的广泛应用与行业渗透&#xff0c;并积极赋能行业伙伴探索领域大…

Redis核心技术与实战【学习笔记】 - 16.Redis 缓存异常:缓存和数据库不一致

概述 只要使用 Redis 缓存&#xff0c;就必须面对缓存和数据库的一致性问题。 重要的是&#xff0c;如果数据不一致&#xff0c;那么业务应用从缓存中读取的数据就不是最新数据&#xff0c;这会导致严重的问题。比如说&#xff0c;我们把电商商品的库存信息缓存在 Redis 中&am…

【Tomcat与网络3】Tomcat的整体架构

目录 1.演进1&#xff1a;将连接和处理服务分开 2演进2&#xff1a;Container的演进 3 再论Tomcat的容器结构 4 Tomcat处理请求的过程 5 请求的处理过程与Pipeline-Valve管道 在前面我们介绍了Servlet的基本原理&#xff0c;本文我们结合Tomcat来分析一下如何设计一个大型…

C语言第十七弹---指针(一)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 指针 1、内存和地址 1.1、内存 2、指针变量和地址 2.1、取地址操作符&#xff08;&&#xff09; 2.2、指针变量和解引用操作符&#xff08;*&#xff09;…

GrayLog踩坑历险记

背景 GrayLog作为ELK的替代产品&#xff0c;是新生代的日志采集框架。在一个采集节点日志的需求中&#xff0c;因为节点很多&#xff0c;产生的日志也很多&#xff0c;因此尝试了使用GrayLog进行日志的采集。下面记录一下使用GrayLog中遇到的坑和解决方案。 一、部署与启动 …