在 Kubernetes 上安装(Install on Kubernetes)
使用上游的 Helm chart 和容器镜像,将 Gitea Enterprise 部署到 Kubernetes。
前置要求
-
支持持久化存储和 ingress 的 Kubernetes 1.24+ 集群。
-
根据预期用户规模选择推荐硬件配置:
团队规模(约) 内存 CPU 核心数 SSD 容量 ~10 用户 2-4 GB 2-4 核 50-100 GB ~100 用户 4-8 GB 4-8 核 200-500 GB ~1000 用户 16-32 GB 8-16 核 2-5 TB -
已针对目标集群配置好
kubectl。 -
本地已安装 Helm 3。
-
如果您的集群需要镜像同步,请确保能够从容器镜像仓库拉取
commitgo/gitea-ee镜像。 -
Git 已内置于 Enterprise 容器镜像中,因此无需在节点上额外安装任何软件包。
-
(可选)用于启用高级功能的 Enterprise 许可证。参见许可证激活以申请试用,并在部署后上传许可证。
1. 添加 Gitea chart 仓库
helm repo add gitea https://dl.gitea.io/charts/
helm repo update
gitea/charts 中记录的 chart 默认即支持 Enterprise 部署。
2. 准备命名空间和密钥
kubectl create namespace gitea
kubectl -n gitea create secret generic gitea-admin \
--from-literal=username=admin \
--from-literal=password='replace-with-strong-password'
3. 创建 values 文件
将以下配置保存为 values-enterprise.yaml,并根据您的环境调整域名、ingress class、storage class 和持久化存储设置:
image:
registry: docker.io
repository: commitgo/gitea-ee
tag: 25.6.2
rootless: true
pullPolicy: IfNotPresent
service:
http:
type: ClusterIP
ssh:
type: ClusterIP
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: <your-ingress-class>
hosts:
- host: gitea.example.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: gitea-tls
hosts:
- gitea.example.com
gitea:
admin:
existingSecret: gitea-admin
config:
server:
DOMAIN: gitea.example.com
ROOT_URL: https://gitea.example.com/
persistence:
size: 20Gi
storageClass: standard
- 将
tag更新为您要部署的 Enterprise 版本。 - 如果要使用外部数据库替代内置的 PostgreSQL,请参阅 External Database。
- 请参阅 README,根据您的需求和具体环境配置 SSH。
4. 安装 release
helm upgrade --install gitea gitea-charts/gitea \
--namespace gitea \
-f values-enterprise.yaml
验证 pod 是否正在运行,以及 ingress 是否可访问:
kubectl -n gitea get pods
kubectl -n gitea get ingress
5. 安装后任务
- 使用存储在
gitea-admin中的管理员凭据登录https://gitea.example.com/。 - 完成许可证激活。
- 使用上游的 Helm values 配置对象存储、SMTP 和其他集成。
- 请参阅上游的 Configuration Cheat Sheet,了解完整的
app.ini选项列表,并通过 Helm values 或additionalConfigSources应用这些配置。
6. 升级与维护
- 将 values 文件中的
image.tag更新为更新的 Enterprise 版本,然后重新运行helm upgrade命令。 - 在应用升级之前,备份持久卷和数据库。
- 使用
helm diff upgrade(配合 diff 插件)在 CI/CD 流水线中预览 manifest 变更。 - 使用
kubectl logs和标准的 Kubernetes 可观测性工具监控 pod。 - 根据您的 Kubernetes 拓扑和恢复目标,通过扩展 Redis、对象存储和负载均衡组件来规划高可用方案。
Gitea Enterprise 在各版本间遵循相同的 chart 结构,因此现有的 GitOps 工作流只需覆盖镜像即可采用 Enterprise 功能。