Administrator
发布于 2026-08-20 / 0 阅读
0
0

第十一章.k8s运维1-镜像仓库方案-2

来源链接:https://www.bilibili.com/video/BV1PbeueyE8V?spm_id_from=333.788.videopod.episodes&vd_source=d8c71ff24a3359a807967fc4b5daa0e4&p=80

1. 部署后清理与访问配置

  • 部署完成后若存在未就绪的Harbor命名空间下的Pod,可手动删除对应Pod触发重建,耐心等待所有Pod状态为Running即表示部署成功。
  • 配置外部访问域名:将Harbor Ingress对应的域名添加到宿主机的hosts文件(Windows路径为C:\Windows\System32\drivers\etc\hosts,Linux节点为/etc/hosts),映射到Harbor节点的IP(示例为192.168.6.61),可清理之前实验遗留的解析记录,保存后通过ping命令验证域名解析正常。
  • 访问Harbor Web界面时,因使用自签证书会提示不安全,需点击「高级」→「继续访问」才可进入。

2. Harbor Web界面功能全览

Harbor默认登录账号为admin(注意首字母大写),密码为Harbor12345,界面核心功能分为项目模块与系统管理模块:

2.1 项目模块

  • 默认提供library公共项目,支持新建自定义项目,可配置项目公开性(是否需登录才可下载镜像)、存储配额、是否开启代理缓存、是否启用漏洞扫描、漏洞白名单等参数。
  • 项目内功能:
    • 概览:查看仓库基本信息、镜像数量、是否允许匿名访问等
    • 成员管理:添加项目成员并分配角色,支持通过标签设置细粒度权限
    • 漏洞扫描:展示镜像的漏洞扫描结果
    • P2P预热:大集群场景下可通过P2P分发镜像,降低Harbor服务器压力,需额外配置
    • Webhook:配置镜像推送/拉取等操作触发时,向外部服务发送通知请求
    • 日志:记录所有镜像的推送、拉取操作日志
    • 配置管理:配置项目公开性、安全认证规则、是否自动开启漏洞扫描、漏洞威胁特征白名单等

2.2 系统管理模块(仅管理员可见)

  • 用户管理:新增系统用户、机器人账户
  • 仓库管理:创建多个镜像仓库,绑定不同标签供不同业务线使用
  • 复制管理:配置定时同步任务,将外部公开镜像仓库的指定镜像同步到本地Harbor
  • 分布式分发:支持镜像的分布式传输、下载,适配多地域集群场景
  • 标签管理:自定义标签,支持在仓库维度应用标签
  • 项目配额:配置单个项目的最大可用存储空间
  • 审查:漏洞扫描全局配置,默认开启漏洞扫描
  • 任务中心:查看当前正在执行的同步、扫描等任务
  • 配置管理:默认使用数据库存储配置,支持配置是否允许用户自助注册(企业内一般关闭,需管理员手动创建用户)
  • 安全:配置漏洞白名单,过滤低危已知漏洞的告警
  • 系统设置:
    • 配置是否允许所有用户创建项目,关闭后需管理员手动审批创建
    • 令牌过期时间配置:Token相比用户名密码安全性更高,具有固定有效期,无操作会自动超时登出
    • 机器人账户前缀配置
    • 证书管理:导入Harbor自签证书到节点信任列表,避免访问/推送时的证书校验错误
    • 日志转发配置

3. 镜像推送实操

3.1 前置配置:全节点域名解析

因K8s集群所有节点都需要访问Harbor,需将Harbor域名解析添加到所有节点的hosts文件中,映射到Harbor节点IP(示例为192.168.6.62),通过ping命令验证所有节点均可正常解析域名。

3.2 Docker登录配置

Harbor使用自签证书,Docker默认不信任,需配置证书信任,两种可选方案:

  1. 在Docker配置文件中添加Harbor域名到insecure-registries列表
  2. 导入Harbor根证书到Docker证书目录(本次演示方案2):
    • 获取Harbor Ingress Secret中的证书:执行kubectl get secret harbor-ingress -n harbor -o yaml,提取tls.crt字段内容,该内容为Base64编码,需解码后保存为harbor.crt文件
    • 在每个节点的/etc/docker/certs.d/目录下创建以Harbor域名为名的子目录,将解码后的harbor.crt文件放入对应目录
    • 多节点场景下可通过scp命令将证书目录复制到其他节点
  • 配置完成后执行docker login 域名,输入账号admin、密码Harbor12345即可登录成功。

3.3 镜像推送流程

  1. 拉取待推送的镜像,例如docker pull nginx:1.6.0
  2. 给镜像打标签:docker tag 源镜像名 域名/项目名/镜像名:版本
  3. 推送镜像:docker push 域名/项目名/镜像名:版本
  4. 推送完成后在Harbor的对应项目中即可看到该镜像,可查看镜像MD5值、拉取命令、版本号等信息。

4. 漏洞扫描功能配置与使用

  • 推送镜像后可触发漏洞扫描,首次使用需配置漏洞特征库:默认特征库在国内可能无法自动下载,需手动上传提前准备好的特征库压缩包
  • 配置步骤:
    1. 将特征库压缩包复制到Harbor Pod的/var/lib/scanner/目录下
    2. 进入该目录,解压特征包覆盖原有文件,完成后特征库文件约400多MB
  • 配置完成后重新触发扫描,即可得到镜像的漏洞扫描结果,包含高中低危漏洞,可根据结果判断是否需要更新镜像
  • 支持配置项目开启「推送镜像后自动扫描」,无需手动触发。

AI 总结

本小节为Kubernetes运维教程中Harbor私有镜像仓库的实操部分,完整覆盖了Harbor部署后的就绪验证、外部访问配置、Web界面全功能解析、镜像推送全流程、漏洞扫描功能配置与使用等核心内容,是K8s集群镜像管理能力的核心实操环节。


评论