type
status
date
slug
summary
category
tags
create_time
Oct 11, 2025 08:02 AM
icon
password
my_create_time
📝 前言
在现代云原生体系中,镜像仓库(Registry)是整个 CI/CD 流程的关键组件。
Harbor 作为 VMware 开源的企业级镜像仓库,提供了比 Docker Registry 更完善的功能,包括:
- 🔐 角色权限控制(RBAC)
- 🔎 镜像漏洞扫描
- 🔁 镜像复制(Replication)
- 🧩 OIDC / LDAP 登录认证
- 🌐 HTTPS 与证书管理
本篇将带你一步步在 Kubernetes 集群中部署 Harbor,并完成基础访问配置。
⚖️ Docker Compose vs Kubernetes 部署对比
之前有一篇介绍了通过 Docker Compose 部署 Harbor:《离线部署 Harbor 企业级镜像仓库指南》, 那么这两者之间有什么区别呢,以下是对比:
对比项 | Docker Compose 部署 | Kubernetes + Helm 部署 |
🏗 部署方式 | docker-compose up -d 启动多容器服务 | 使用 Helm Chart 声明式部署 |
⚙️ 配置管理 | 基于 .env + docker-compose.yml 手工配置 | 通过 values.yaml 模板化配置,可参数化管理 |
💾 存储 | 本地路径挂载或 NFS | 使用 PVC 持久卷,支持多种 StorageClass |
🔁 升级/回滚 | 需手动拉取新版本、停止容器再替换 | 可通过 helm upgrade 一键升级,支持版本回滚 |
💡 服务发现 | 依赖宿主机端口映射 | 原生支持 Service / Ingress 负载均衡 |
🧩 伸缩能力 | 固定单机运行,无法水平扩展 | 支持多副本与自动调度 |
🔒 安全性 | 基于宿主机防火墙和 Docker 网络 | 可结合 NetworkPolicy、OIDC、Secret 管理 |
🔍 可观测性 | 需自行安装 Prometheus/Grafana 等 | 易于集成 K8s 生态监控(如 Metrics、Alertmanager) |
🧱 适用场景 | 单机或小规模内部团队使用 | 企业级、分布式、DevOps 集群环境 |
🚀 运维方式 | 手动维护容器状态与升级 | 可通过 GitOps 工具自动化管理(Argo CD 等) |
总的来说:
- Docker Compose 适合初期快速搭建或测试环境;
- Kubernetes + Helm 更适合长期运行、需要高可用与自动化管理的生产环境。
📋 前提条件
- 已部署 Kubernetes 集群
PS:可参看之前文章一键部署:第四部分:使用 sealos 部署集群
🚀 详细步骤
1️⃣ 安装 Helm 工具
这里我们是通过 helm 来部署harbor,因此需要先安装 helm,并且至少
3.10.x
及以上版本。2️⃣ 安装 Local Path 存储
为了避免 Pod 重启后数据丢失问题,我们可以安装一个 Local Path 的自动化存储管理,生产环境可以直接使用阿里云的NAS存储。
3️⃣ 安装 Ingress Controller
这里我们通过 Ingress 来暴露访问 Habror,因此需要再安装一个 Nginx Ingress Controller。
4️⃣ 下载 Harbor Helm 包
5️⃣ 修改 helm 配置
6️⃣ 部署 Harbor
7️⃣ 修改 Docker 配置
最后别忘了修改 Docker 配置,否则无法将镜像推送到 http 的 harbor 仓库。
8️⃣ 访问 Harbor 以及推送镜像
9️⃣ 升级与卸载 Harbor(可选)
✅ 总结
通过本文,我们在 Kubernetes 集群中成功部署了企业级镜像仓库 Harbor,并了解了与 Docker Compose 部署方式的核心差异。
迁移至 Kubernetes 的主要收益包括:
- 高可用与自愈能力
- 声明式配置与版本控制
- 与 DevOps 工具(Argo CD / Jenkins / GitLab CI)无缝集成
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
- 作者:青萍叙事
- 链接:https://blog.lusyoe.com/article/deploy-harbor-on-kubernetes
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。