Kubernetes部署GitLab代码仓库步骤

冬浩大大_2389

冬浩大大_2389

2026-09-04

685人浏览

原创

直接用 helm 部署 gitlab 到 kubernetes 可行但默认配置不适用于生产,需解决镜像拉取失败、pvc pending、ingress/tls 冲突等问题,推荐使用国内镜像源并调整 storageclass、镜像地址和组件开关。

kubernetes部署gitlab代码仓库步骤

直接用 Helm 部署 GitLab 到 Kubernetes 是可行的,但默认配置在生产环境几乎不可用——资源吃紧、镜像拉取失败、PVC pending、Ingress/TLS 冲突是高频问题。

helm repo add gitlab 失败或 chart 拉不到

国内直接访问 https://charts.gitlab.io/ 常被阻断或超时,helm repo add 会卡住或报 connection refused。

  • 换国内镜像源:用腾讯云维护的镜像仓库 https://tke-charts-1305287947.cos.ap-guangzhou.myqcloud.com/gitlab/(已同步最新 chart)
  • 或手动下载后本地加载:helm fetch gitlab/gitlab --untar && helm package gitlab/,再 helm install 本地包
  • 禁用 helm repo update 的默认 timeout,加 --timeout 300s 防止中途退出

部署后 Pod 一直 Pending,尤其是 gitaly、minio、redis

根本原因通常是 PVC 绑定失败,错误日志里常见 waiting for a volume to be created 或 no persistent volumes available。

YiHui GITHUB MONITOR
YiHui GITHUB MONITOR

监控多个 GitHub 仓库,配置发布、PR 与安全告警策略,通过定时 cron 任务推送低噪声通知。

下载
  • 检查 StorageClass 是否设为 default:kubectl get sc -o wide 看 DEFAULT 列是否为 *;不是就加注解:kubectl patch sc <name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'</name>
  • 云厂商(如腾讯云 CBS、阿里云 ACK)要求 PVC 容量必须是特定倍数(如 10Gi),而官方 chart 默认写的是 8Gi,需在 values.yaml 中全局替换为 10Gi、20Gi 等合规值
  • Gitaly 必须用块存储(而非 NFS),且推荐 SSD 类型;若用 Local PV,需确保 nodeAffinity 和 taints/tolerations 对齐

镜像拉取失败:ErrImagePull / ImagePullBackOff

GitLab chart 默认镜像来自 registry.gitlab.com,国内直连成功率极低,Pod 卡在 ContainerCreating 状态。

  • 批量替换镜像地址:在 values.yaml 中搜索 image:,把所有 registry.gitlab.com/ 开头的镜像,替换成你同步好的国内镜像仓库地址,例如 harbor.example.com/gitlab/gitlab-ce
  • 特别注意 gitlab-runner、gitaly、redis、postgresql 这几个组件的镜像都要改,漏一个就会失败
  • 如果用私有仓库,别忘了配 imagePullSecrets,且 secret 必须和 GitLab Pod 在同一 namespace

最小化安装时哪些组件可以安全关闭

开箱即用的 chart 启动近 20 个 Pod,内存常超 8Gi,测试或边缘场景下必须裁剪。

  • 必关项:nginx-ingress.enabled=false、certmanager.enabled=false、prometheus.enabled=false、grafana.enabled=false
  • 可关项(取决于是否需要):redis.enabled=false(改用外部 Redis)、postgresql.enabled=false(用外部 PG)、minio.enabled=false(换用 OSS/S3 兼容存储)
  • Gitaly 不建议关——它是 Git 操作核心,关了会导致 push/pull 失败;如真要轻量,可用 gitaly.external 指向已有 Gitaly 实例

真正麻烦的从来不是命令敲几行,而是每个组件背后隐含的存储语义、网络策略依赖和镜像生命周期管理。哪怕只改一个 storageSize 字段,也可能触发 CSI 插件的容量校验逻辑,让 PVC 卡死在 Pending 状态长达数小时。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

116

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

188

19

Python uv使用教程
Python uv使用教程

本专题汇总了 Python uv 使用教程与高效使用指南,从 uv 安装配置、常用命令到虚拟环境、依赖管理与项目打包,系统讲解如何用 uv 替代 pip 与 poetry,全面提升 Python 项目开发效率,助你快速上手这一现代化包管理工具,打造干净高效的 Python 工作流。

2026.10.15

0

15

剧云AI短剧创作教程合集
剧云AI短剧创作教程合集

本专题聚焦剧云AI短剧创作,讲解从短剧灵感、梗概、全局大纲到分集、分场和正文的完整流程及节奏设计方法。

2026.10.14

0

15

剧云AI剧本创作零基础入门
剧云AI剧本创作零基础入门

本专题系统讲解剧云AI剧本创作流程,涵盖灵感、梗概、大纲、分场与正文生成,帮助新手快速完成首个中文剧本项目。

2026.10.14

0

14

VibeKnow文档转视频操作指南
VibeKnow文档转视频操作指南

本专题讲解VibeKnow上传Word、TXT、Markdown等材料生成视频的方法,覆盖内容解析、脚本组织、画面生成与成片检查。

2026.10.14

0

15

VibeKnow知识视频制作与导出详解
VibeKnow知识视频制作与导出详解

本专题整理VibeKnow从注册、素材上传、AI生成到预览导出的完整操作,帮助新手快速制作第一条知识讲解视频。

2026.10.14

0

13

二狗PPT大纲编辑实操指南
二狗PPT大纲编辑实操指南

本专题聚焦二狗PPT结构化大纲的生成和修改,讲解标题、正文、目录、页数与页面顺序的调整方法,提升汇报逻辑和内容完整性。

2026.10.14

0

15

二狗PPT文档转PPT全教程
二狗PPT文档转PPT全教程

本专题讲解二狗PPT解析Word、PDF、Excel和PPT资料的方法,涵盖文件上传、内容提取、大纲整理、异常处理与转换后校对。

2026.10.14

0

13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
vscode手册
vscode手册

共0课时 | 0人学习

Git 教程
Git 教程

共21课时 | 8万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.9万人学习