k8s学习--k8s集群使用容器镜像仓库Harbor

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

    • 环境
  • 步骤
    • 一 容器镜像仓库Harbor部署
    • 二、Kubernetes集群使用harbor仓库


环境

Ip主机名cpu内存硬盘
192.168.10.11master1cpu双核2G40G
192.168.10.12node011cpu双核2G40G
192.168.10.13node021cpu双核2G40G
192.168.10.18Harbor1cpu1核1G40G

虚拟机 centos7.9
master node01 node02 已部署k8s集群
版本 1.18.0

步骤

一 容器镜像仓库Harbor部署

1、docker-ce安装
(1)获取YUM源

[root@harbor ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

在这里插入图片描述
(2)安装并设置启动及开机自启动

[root@harbor ~]# yum -y install docker-ce-20.10.20
[root@harbor ~]# systemctl enable --now docker

2、下载一个docker-compose工具

[root@harbor ~]#  wget https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64

下载完成之后,移动到/usr/local/bin/目录(直接下载到环境变量目录)

[root@harbor ~]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

增加可执行权限

[root@harbor ~]# chmod +x /usr/local/bin/docker-compose

查看版本号,并验证命令可用

[root@harbor ~]# docker-compose -v

在这里插入图片描述

3、harbor离线模式安装

[root@harbor ~]# wget https://github.com/goharbor/harbor/releases/download/v2.8.3/harbor-offline-installer-v2.8.3.tgz

将harbor包解压到/usr/local/下

[root@harbor ~]# tar xf harbor-offline-installer-v2.8.3.tgz -C /usr/local

4、拷贝文件,并修改文件

[root@harbor ~]# cd /usr/local/harbor/
[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml
[root@harbor harbor]# vim harbor.yml

将https的都注释掉,更改hostname为本机ip
在这里插入图片描述
5、安装harbor,安装完成自行启动

[root@harbor harbor]# docker load -i harbor.v2.8.3.tar.gz
或
./prepare

本质都是准备镜像
然后

[root@harbor harbor]# ./install.sh

在这里插入图片描述
全绿即可

6、访问地址与账号密码
http://192.168.10.18
默认账户密码:admin/Harbor12345

7、另外可以自行启动
–启动
docker-compose up -d
–停止
docker-compose stop
–重启
docker-compose restart

(1) 访问harbor UI界面

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

二、Kubernetes集群使用harbor仓库

1.通过secret使用harbor仓库
(1)新建一个harbor私有仓库

在这里插入图片描述
新建
在这里插入图片描述
查看

在这里插入图片描述
(2)kubernetes集群所有节点配置harbor仓库
在配置文件中添加一行内容,可以通过http方式访问harbor服务,
如果有多行内容时,上行尾部加“逗号”

[root@master ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://1dmptu91.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "insecure-registries": ["http://192.168.10.18"]
}
[root@master ~]# systemctl restart docker

(3)上传nginx测试镜像到harbor仓库(harbor主机)
docker-compose down停止harbor,修改后再启动。
修改docker配置文件,添加如下内容,如果有多行内容时,上行尾部加“逗号”

[root@harbor harbor]# vim /etc/docker/daemon.json
{
        "insecure-registries": ["http://192.168.10.18"]
}
[root@harbor harbor]# systemctl restart docker
[root@harbor ~]# docker pull nginx:1.20
[root@harbor harbor]# docker login 192.168.10.18

在这里插入图片描述

[root@harbor harbor]# docker tag nginx:1.20 192.168.10.18/test/nginx:1.20
[root@harbor harbor]# docker push 192.168.10.18/test/nginx:1.20

(4)创建docker-registry类型secret

[root@master ~]# kubectl create secret docker-registry harbor-secret --docker-server=192.168.10.18  --docker-username=admin --docker-password=Harbor12345

说明:
类型为docker-registry
–docker-server指定harbor仓库的IP
–docker-username指定harbor仓库的登录用户名
–docker-password指定harbor仓库的登录密码

验证查看

[root@master ~]# kubectl get secrets | grep harbor-secret

在这里插入图片描述

[root@master ~]# kubectl describe secrets harbor-secret

在这里插入图片描述

(5)创建pod并使用secret

[root@master ~]# vim pod-harbor.yml
apiVersion: v1
kind: Pod
metadata:
  name: pod-harbor
spec:
  containers:
  - name: c1
    image: 192.168.10.18/test/nginx:1.20
  imagePullSecrets:                     # 定义镜像下载使用的secrets
  - name: harbor-secret					# 与上面的secret名称一致

(6)验证pod

[root@master ~]# kubectl describe pod pod-harbor

在这里插入图片描述
可以看到是从192.168.10.18/test/nginx:1.20拉取的镜像

2.通过serviceaccout使用harbor仓库
编写yaml文件时添加imagePullSecrets的这2行配置,可以把secret配置到serviceAccount中进行调用也可以。

(1) 创建serviceAccount(服务账号)

[root@master ~]# vim serviceaccount-harbor-sa.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: harbor-sa
  namespace: default
[root@master ~]# kubectl apply -f serviceaccount-harbor-sa.yaml
[root@master ~]# kubectl get sa | grep harbor-sa

在这里插入图片描述
(2) 修改serviceaccount添加使用harbor-secret

[root@master ~]# kubectl describe serviceaccounts harbor-sa

可以看到新添加的账号不具备镜像下载权限
在这里插入图片描述
添加权限

[root@master ~]# kubectl patch serviceaccount harbor-sa -n default  -p '{"imagePullSecrets": [{"name": "harbor-secret"}]}'

[root@master ~]# kubectl describe serviceaccounts harbor-sa

在这里插入图片描述
确认已更新
在这里插入图片描述
(3)修改yaml使用serviceAccount

[root@master ~]# vim pod-harbor.yml
apiVersion: v1
kind: Pod
metadata:
  name: pod-harbor
spec:
  serviceAccount: harbor-sa		# 原来的2句换成使用harbor-sa这个serviceAccount
  containers:
  - name: c1
image: 192.168.10.18/test/nginx:1.20

(4)删除先前的重新创建pod验证

[root@master ~]# kubectl delete pod pod-harbor

记得删除pod所在node节点上的nginx镜像
我这里是node01

[root@node01 ~]# docker rmi 192.168.10.18/test/nginx:1.20
[root@master ~]# kubectl apply -f pod-harbor.yml
[root@master ~]# kubectl get pods

在这里插入图片描述

[root@master ~]# kubectl describe pods pod-harbor

在这里插入图片描述

实验完成

有问题可评论,全天在

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络链路层

data: 2024/5/25 14:02:20 周六 limou3434 叠甲:以下文章主要是依靠我的实际编码学习中总结出来的经验之谈,求逻辑自洽,不能百分百保证正确,有错误、未定义、不合适的内容请尽情指出! 文章目录 1.协议结构2.封装分离3.…

计算机毕业设计 | SpringBoot 房屋销售租赁平台 房屋购物网站(附源码)

1,绪论 1.1 背景调研 在房地产行业持续火热的当今环境下,房地产行业和互联网行业协同发展,互相促进融合已经成为一种趋势和潮流。本项目实现了在线房产平台的功能,多种技术的灵活运用使得项目具备很好的用户体验感。 这个项目的…

Python自动化识别与删除Excel表格空白行和列

在处理Excel数据时,经常会遇到含有空白行和空白列的情况。这些空白区域不仅占用表格显示空间,还可能导致数据分析时出现偏差,影响数据处理的效率与结果的准确性,如空白行可能干扰数据聚合操作,导致统计计数不准确&…

【嵌入式DIY实例】-OLED显示天气数据

OLED显示天气数据 文章目录 OLED显示天气数据1、硬件准备与接线2、天气数据获取准备3、代码实现在这个物联网项目中,本文将展示如何使用 ESP8266 NodeMCU (ESP-12E) Wi-Fi 开发板和 SSD1306 OLED 显示屏(12864 像素)制作一个简单的互联网气象站。 NodeMCU 从天气网站 openwe…

牛客网刷题 | BC114 圣诞树 (不理解)

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 这道题没搞懂 也没找到视…

软件定义汽车,通信连接世界 | 2024汽车软件与通信大会开幕

5月28日-30日,在江苏省工业和信息化厅、智能汽车安全技术全国重点实验室指导下,由中国中检所属中国汽车工程研究院股份有限公司(下称:中国汽研)主办,中汽院(江苏)汽车工程研究院有限公司承办的2024汽车软件…

RTOS(ENV)串口DMA接收GPS数据并解析

RTOS(ENV)配置STM32串口DMA接收模式 环境: RTOS 4.0.3Keil5ENVSTm32l475 ENV配置 使能串口: 2. 使能DMA,并设置接收缓冲区大小: 创建工程 scons --targetmdk工程配置 1. 创建串口设备句柄 #define SA…

从零开始实现一个可靠、健壮的内存池

文章目录 概要 这个项目是干什么的项目所需储备知识什么是内存池 池化技术内存池内存池主要解决的问题框架设计开发计划系统测试情况遇到的主要问题和解决方法分工和协作提交仓库目录和文件描述比赛收获 概要 这个项目是干什么的 当前项目是实现一个高并发的内存池&#xff0c…

养生与健康|一起跟随林曦老师养个元气满满

暄桐是一间传统美学教育教室,创办于2011年,林曦是创办人和授课老师,教授以书法为主的传统文化和技艺,皆在以书法为起点,亲近中国传统之美,以实践和所得,滋养当下生活。    在暄桐教室的六阶…

QT 使用信号和槽,让QLabel的内容实时与QLineEdit同步,类似vue框架的双向绑定

在窗口里放置一个单行文本编辑器(QLineEdit)和一个标签控件(QLabel),实现的效果就是当编辑器的内容被编辑时,标 签控件同步显 示编辑控件里的内容 1)当 lineEdit 控件被用户编辑时,它…

边缘密度分布图 | ggExtra包/aplot拼图/ggpubr包 等的实现方法

概述:aplot 拼图效果好 根据网友探索[1],总结如下: ggExtra 包的拼图间隙有点大,图例在主图和边缘图之间,除非去掉图例,否则没法看。aplot包的默认拼图间隙很小,比较美观,图例在外…

Java——二进制原码、反码和补码

一、简要介绍 原码、反码和补码只是三种二进制不同的表示形式,每个二进制数都有这三个形式。 1、原码 原码是将一个数的符号位和数值位分别表示的方法。 最高位为符号位,0表示正,1表示负,其余位表示数值的绝对值。 例如&…

生成式AI,在云端的绽放与盛开

编辑:阿冒 设计:沐由 毫无疑问,生成式AI已然成为当今技术发展和应用创新的重要引擎之一。 过去的一年多时间里,我们每个人都在目睹和见证着生成式AI是如何以移山倒海的力量,为诸多行业带来革命性乃至颠覆性的变革&…

FS118M 单A口QC协议芯片

FS118M是一个QC快充协议芯片,FS118M可以识别插入的手机类型,选择最为合适的协议应对手机需要。USB Type-A 口的 D连接到FS118M芯片,当手机插入到 USB Type-A 口后,根据各个协议的约定,手机和FS118M之间将开始互相识别&…

计网ppt标黄知识点整理第(2)章节——谢希仁版本、期末复习自用

物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。4 个特性: 机械特性:指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。 电气特性:指明在接口电缆的各条线上出现…

C/C++开发,2024.x CLion安装,亲测有效

CLion 是一款专为 C 和 C 开发者设计的跨平台集成开发环境(IDE),提供了智能代码补全、代码分析、调试和 Git 集成等功能,以提高开发效率和代码质量。 1.下载安装c/c开发工具 CLion 先去官网下载,我这里下载的是最新版…

【docker】docker的安装

如果之前安装了旧版本的docker我们需要进行卸载: 卸载之前的旧版本 卸载 # 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 卸载历史版本 apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker…

问答机器人

怎样做自己的问答机器人? 根据我们提供的数据分析出问题的答案,我们并不需要训练自己的模型 微调模型 finetune,将语言模型调成另外的语言模型,更适合不同类型数据,运用finetune方法将模型变化 知识库模型 embedd…

word避免画质画质模糊方法

问题描述:   近期写文档时会高频率贴图,粘图过程中发现Word会自动压缩图片画质,而且压缩得很严重,下面是一幅图被压缩前后的画质对比 (图片压缩前) (图片压缩后) 解决方案&#x…

修改文档日期神器 - Python打造日期修改器

这篇文章将介绍一款使用 Python 开发的实用工具 - 日期修改器。它可以帮助您轻松修改 Word (.docx) 和 PDF 文档的日期信息,满足日常办公和文档整理的需求。 C:\pythoncode\new\modifyfiledate.py 软件功能 支持修改 Word (.docx) 日期信息。允许选择要修改的日期…