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默认不信任,需配置证书信任,两种可选方案:
- 在Docker配置文件中添加Harbor域名到
insecure-registries列表 - 导入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命令将证书目录复制到其他节点
- 获取Harbor Ingress Secret中的证书:执行
- 配置完成后执行
docker login 域名,输入账号admin、密码Harbor12345即可登录成功。
3.3 镜像推送流程
- 拉取待推送的镜像,例如
docker pull nginx:1.6.0 - 给镜像打标签:
docker tag 源镜像名 域名/项目名/镜像名:版本 - 推送镜像:
docker push 域名/项目名/镜像名:版本 - 推送完成后在Harbor的对应项目中即可看到该镜像,可查看镜像MD5值、拉取命令、版本号等信息。
4. 漏洞扫描功能配置与使用
- 推送镜像后可触发漏洞扫描,首次使用需配置漏洞特征库:默认特征库在国内可能无法自动下载,需手动上传提前准备好的特征库压缩包
- 配置步骤:
- 将特征库压缩包复制到Harbor Pod的
/var/lib/scanner/目录下 - 进入该目录,解压特征包覆盖原有文件,完成后特征库文件约400多MB
- 将特征库压缩包复制到Harbor Pod的
- 配置完成后重新触发扫描,即可得到镜像的漏洞扫描结果,包含高中低危漏洞,可根据结果判断是否需要更新镜像
- 支持配置项目开启「推送镜像后自动扫描」,无需手动触发。
AI 总结
本小节为Kubernetes运维教程中Harbor私有镜像仓库的实操部分,完整覆盖了Harbor部署后的就绪验证、外部访问配置、Web界面全功能解析、镜像推送全流程、漏洞扫描功能配置与使用等核心内容,是K8s集群镜像管理能力的核心实操环节。