SUSE Private Registry 1.1.0 部署指南
本文永久链接: https://www.xtplayer.cn/suse/suse-private-registry-deploy/
版本与组件说明
- 版本信息:SUSE Private Registry 1.1.0,基于 Harbor 2.14.1 定制开发,镜像标签为 1.1.0。
- 核心组件:包含 harbor-core、harbor-db、harbor-jobservice、harbor-nginx、harbor-portal、harbor-registry、harbor-registryctl、harbor-trivy-adapter、harbor-exporter、harbor-valkey 十大核心组件,共同保障私有仓库稳定运行。
- 适配环境:需满足 Kubernetes 1.24 及以上版本、Helm 3.8 及以上版本、SUSE Linux Enterprise 15 及以上版本,确保部署环境符合运行要求。
前置条件
硬件要求
| 环境类型 | CPU 配置 | 内存配置 | 磁盘配置 |
|---|---|---|---|
| 测试/开发环境 | 4 核 | 8 GB | 100GB |
| 生产环境 | 8 核及以上 | 16 GB及以上 | 500GB 及以上(推荐采用分布式存储,提升数据可靠性) |
软件依赖
Kubernetes 集群:需部署 Kubernetes 1.24 及以上版本,推荐采用 SUSE Rancher 进行集群管理,确保集群运行稳定。
Helm 工具:需安装 Helm 3.8 及以上版本,且已完成 OCI 支持配置,用于 Helm Chart 的部署与管理。
存储类:需支持 Persistent Volume Claim(PVC),推荐采用 Rook/Ceph 分布式存储或本地持久化存储,满足数据持久化需求。
域名与证书:
域名:需配置可解析至集群入口的有效域名(示例:registry.example.com),确保外部访问正常。
TLS 证书:需准备有效 CA 证书或自签名证书,生产环境建议使用可信 CA 证书,保障数据传输安全。
SUSE 订阅:需具备有效的 SUSE Private Registry 订阅权限,用于拉取官方镜像资源。
镜像仓库权限
- 需获取访问 registry.suse.com 的账号与密码,该凭证可从 SUSE Customer Center(SCC)获取,用于镜像拉取认证。
部署步骤(Helm 3 OCI 方式)
配置 SUSE 镜像仓库认证
获取 SCC 认证凭证
- 访问 SUSE Customer Center 官方网站(https://scc.suse.com),完成登录操作。
- 登录后,选择具备有效 Private Registry 订阅的组织,点击顶部菜单中的「Proxies」选项,即可查看镜像仓库的用户名与密码。
登录 SUSE 镜像仓库
# 将获取的SCC密码写入文件,便于后续认证使用
echo "your-scc-password" > password.txt
# 通过Helm登录SUSE OCI镜像仓库,完成认证
helm registry login registry.suse.com \
--username your-scc-username \
--password-stdin < password.txt创建命名空间
为 SUSE Private Registry 单独创建命名空间,实现资源隔离,命令如下:
kubectl create namespace suse-registry
创建镜像拉取 Secret
将 SCC 认证凭证存储为 Kubernetes Secret,用于集群拉取 SUSE 官方镜像时的身份认证,命令如下:
kubectl create secret docker-registry suse-registry-secret \
--namespace suse-registry \
--docker-server=registry.suse.com \
--docker-username=your-scc-username \
--docker-password=your-scc-password
下载 Helm Chart(可选操作)
若需对 Helm Chart 进行自定义配置,可将其拉取至本地,命令如下:
# 拉取指定版本的Helm Chart至本地,并解压便于自定义修改
helm pull oci://registry.suse.com/private-registry/private-registry-helm \
--version 1.1.0 \
--untar
自定义配置(values.yaml)
创建 override-values.yaml 文件,覆盖默认配置参数,适配实际部署需求,具体配置如下:
# 基础配置参数 |
部署 Helm Chart
采用 Helm 3 OCI 方式直接从镜像仓库部署 SUSE Private Registry,命令如下(推荐此方式):
# 部署SUSE Private Registry,指定版本、命名空间及自定义配置文件 |
部署验证
查看 Pod 运行状态
通过以下命令查看命名空间内所有 Pod 的运行状态,确认所有 Pod 均处于 Running 状态,即部署成功:
kubectl get pods -n suse-registry -w
# 所有Pod状态为Running,表明部署完成且组件运行正常查看服务状态
查看命名空间内服务的暴露情况,确认服务正常启动,命令如下:
kubectl get svc -n suse-registry
访问 Web UI 控制台
- 打开浏览器,输入配置的外部访问域名:https://registry.example.com。
- 输入管理员账号(admin)及配置的管理员密码(来自 override-values.yaml 中的 harborAdminPassword 参数),完成登录验证。
注:https://registry.example.com 为示例域名,实际访问时需替换为部署环境中配置的有效域名,当前该示例域名存在网页解析失败问题(报错信息:网页解析失败,可能是不支持的网页类型,请检查网页或稍后重试),需确保实际配置的域名可正常解析。
HTTPS 证书配置(两种方式)
自签名证书(适用于测试环境)
测试环境可通过以下命令生成自签名 TLS 证书,并创建对应的 Kubernetes Secret,命令如下:
# 生成自签名TLS证书,有效期365天 |
可信 CA 证书(适用于生产环境)
生产环境需使用可信 CA 机构颁发的证书,通过以下命令创建 TLS Secret,命令如下:
# 使用已有的可信CA证书和密钥,创建Kubernetes TLS Secret |
常用操作
版本升级
如需将 SUSE Private Registry 升级至指定版本,执行以下命令,确保配置文件与升级版本适配:
helm upgrade --install suse-private-registry \ |
卸载操作
如需卸载 SUSE Private Registry,执行以下命令,彻底清除相关资源:
# 卸载Helm Chart部署 |
备份与恢复
- 数据库备份:需定期对 harbor-db 对应的 PVC 数据进行备份,防止数据丢失,保障业务连续性。
- 镜像备份:可通过备份 registry 存储目录的方式保存镜像数据,或采用对象存储跨区域复制功能,提升数据安全性。
故障排查
Pod 启动失败
当 Pod 启动异常时,可通过以下命令查看 Pod 详细描述及日志,定位故障原因:
kubectl describe pod <pod-name> -n suse-registry
kubectl logs <pod-name> -n suse-registryIngress 无法访问
若通过 Ingress 无法访问 Private Registry,需从以下方面排查:
- 检查 Ingress Controller 运行状态,确认其正常启动。
- 验证域名解析配置,确保域名可正确解析至集群入口 IP。
- 检查 TLS 证书有效性,确认证书未过期且配置正确。
镜像拉取失败
若集群无法拉取 SUSE 官方镜像,需从以下方面排查:
- 确认 imagePullSecrets 配置正确,与创建的 Secret 名称一致。
- 检查 SUSE 订阅状态,确保订阅有效且具备镜像拉取权限。
- 测试集群节点网络连通性,确认节点可正常访问 registry.suse.com。

