第十一章 Kubernetes运维—镜像仓库

news/2025/2/26 16:13:42

目录

一、Harbor介绍

二、Harbor部署


一、Harbor介绍

  • 基于策略的镜像复制:可以在不同的镜像仓库中对镜像进行复制传送,比如我们可以在官方镜像仓库中定义一个策略,让他实时地同步到我们自己的私有镜像仓库中。
  • 镜像的漏洞扫描:在我们真正的生产运维环境中,当一台机器需要上架,需要安装linux或windows系统,以及可能安装了我们的应用,如果需要对外发布的话,我们需要接入到漏洞扫描机器,出具一个漏扫的报告,只有当漏扫通过,这样的机器才允许上架,接入整个数据中心。那么对于镜像也一样,需要通过漏扫才能正常去使用。
  • AD/LDAP集成:在 Kubernetes 环境中实现 Active Directory (AD) 和 Lightweight Directory Access Protocol (LDAP) 集成,通常是为了实现身份验证和授权服务,例如通过使用 Active Directory 作为用户的中央身份存储库。这可以通过几种不同的方法实现,包括使用 Kubernetes 的 RBAC(Role-Based Access Control)与外部身份提供商(如 AD 或 LDAP)集成。
  • 镜像的删除和空间清理:我们可以把一些没有标签或者悬空的镜像,进行清理。
  • 审计日志:哪些用户登陆到镜像仓库平台,做了哪些事情,我们都需要一个完整的日志记录,事后可以分析。
  • Harbor提供了Restful API,我们可以通过接口调用执行一些自动化的事情。
  • Harbor的部署也相对简单,比如使用docker compose,在k8s里面可以基于Helm。

 Harbor仓库组件介绍

  • Notary:安全验证的服务。
  • Registry V2:镜像仓库服务。负责储存 Docker 镜像,并处理 Docker push/pull 命令。
  • nginx : 是一个 nginx 的前端代理,Harbor 的 Registry、UI、Token 服务等组件,都处在 nginx 反向代理后边。 该代理将来自浏览器、docker clients 的请求转发到后端不同的服务上。
  • Registry:
  • UI(harbor-ui): 提供图形化界面,帮助用户管理 Registry 上的镜像(image), 并对用户进行授权。
  • Database(harbor-db):为core services提供数据库服务,负责储存用户权限、审计日志、Docker 镜像分组信息等数据。
  • Job services: 主要用于镜像复制,本地镜像可以被同步到远程 Harbor 实例上。
  • Log collector(harbor-log): 负责收集其他组件的日志到一个地方。                  

二、Harbor部署

1、创建namespace

我们针对harbor的组件以及pod都会放在namespace为harbor的空间之下。

[root@k8s-master helm]# cat namespace-harbor.yaml
apiVersion: v1
kind: Namespace
metadata:
name: harbor
[root@k8s-master helm]# kubectl apply -f namespace-harbor.yaml

2、选择节点进行 harbor 安装「可选」

编辑harbor命名空间配置参数, scheduler.alpha.kubernetes.io/node-selector: harbor=env表示选择一个具备harbor=env标签的节点上进行部署pod。

比如想让我们的harbor仓库只运行在有打k=v标签的node节点上的话,那么你可以进行这部分的设置。好处是,可以对这些运行harbor仓库的pod进行节点部署上的约束,避免在太多节点上分散。

[root@k8s-master helm]# kubectl edit ns harbor -o yaml
apiVersion: v1
kind: Namespace
metadata:
 annotations:
   scheduler.alpha.kubernetes.io/node-selector: harbor=env
 name: harbor
# 选择 node 进行标签设定
[root@k8s-master helm]# kubectl label node k8s-node3 harbor=env
3、添加 helm repo
添加harbor仓库的源。
[root@k8s-master helm]# helm repo add harbor https://helm.goharbor.io
[root@k8s-master helm]# helm search repo
NAME           CHART VERSION   APP VERSION     DESCRIPTION
harbor/harbor   1.11.0          2.7.0           An open source trusted cloud 
native registry th...
[root@k8s-master helm]# helm pull harbor/harbor
[root@k8s-master helm]# tar zxf harbor-1.11.0.tgz
[root@k8s-master opt]# cd harbor/
[root@k8s-master harbor]# ls
cert Chart.yaml conf LICENSE README.md templates values.yaml

 

通过helm把对应安装harbor仓库的chart下载到本地。可以通过--version指定版本。

打开values.yaml文件,修改里面的:

  • 将所有的storageClass的值该为之前我们部署nfs的时候对象名称:nfs-client。如果没有部署nfs客户端对象的话,需要部署下这个。

  • 将漏扫中的skipUpdate值改为true,跳过更新。
4、通过 helm安装harbor
[root@k8s-master harbor] # helm install harbor . -f values.yaml -n harbor

域名没改的话默认为:core.harbor.domain。将域名和ip添加到/etc/hosts里面。

打开浏览器,输入域名:

用户名:admin,密码:Harbor12345


http://www.niftyadmin.cn/n/5868920.html

相关文章

MongoDB 数据库简介

MongoDB 数据库简介 引言 随着互联网技术的飞速发展,数据已经成为企业的重要资产。为了高效地管理和处理这些数据,数据库技术应运而生。MongoDB作为一种流行的NoSQL数据库,因其灵活的数据模型和高效的数据处理能力,受到了广泛的关注。本文将为您详细介绍MongoDB的基本概念…

【算法设计与分析】(一)介绍算法与复杂度分析

【算法设计与分析】(一)介绍算法与复杂度分析 前言一、什么是算法?二、算法的抽象机制三、描述算法四、复杂度分析4.1 时间复杂度4.2 空间复杂度 前言 从搜索引擎的高效检索,到推荐系统的个性化推荐,再到人工智能领域…

索提诺比率(Sortino Ratio):更精准的风险调整收益指标(中英双语)

索提诺比率(Sortino Ratio):更精准的风险调整收益指标 📉📊 📌 什么是索提诺比率? 在投资分析中,我们通常使用 夏普比率(Sharpe Ratio) 来衡量风险调整后的…

无人机定点运输技术!

核心要点 定位与导航 GPS/北斗定位:依赖卫星系统实现高精度定位。 视觉导航:通过摄像头和计算机视觉技术识别环境。 惯性导航:利用加速度计和陀螺仪进行位置推算。 路径规划 避障算法:实时检测并避开障碍物。 动态路径调整…

蓝桥杯 Java B 组之回溯剪枝优化(N皇后、数独)

Day 4:回溯剪枝优化(N皇后、数独) 📖 一、回溯算法简介 回溯算法 是一种通过构造解空间树来进行问题求解的方法。其基本思想是 深度优先搜索(DFS),通过递归遍历所有可能的解,并在每…

3D格式转换工具HOOPS Exchange在PMI处理中的关键作用与优势解析

在现代制造业的数字化进程中,产品和制造信息(PMI)扮演着至关重要的角色。PMI是指在CAD模型中所包含的用于明确制造和装配细节的各类注释与标记信息,涵盖了几何尺寸、公差、材料说明以及加工要求等关键要素。其能否实现有效传递&am…

Django笔记1_简介

备注:以下内容来自大模型回答。 Django功能简介 Django 是一个用 Python 编写的 web 框架。你可以把它想象成一个工具箱,里面有很多好用的工具,帮助你快速和轻松地创建网页应用程序。下面是一些 Django 的主要功能: 快速开发&am…

蓝桥杯试题:小明的彩灯(差分 前缀和)

一、题目描述 小明拥有 N 个彩灯,第 ii个彩灯的初始亮度为 ai​。 小明将进行 Q次操作,每次操作可选择一段区间,并使区间内彩灯的亮度 x(x 可能为负数)。 求 QQ次操作后每个彩灯的亮度(若彩灯亮度为负数…