跳到主要内容
版本:26.4.1

在 Kubernetes 上安装(Install on Kubernetes)

使用上游的 Helm chart 和容器镜像,将 Gitea Enterprise 部署到 Kubernetes。

前置要求

  • 支持持久化存储和 ingress 的 Kubernetes 1.24+ 集群。

  • 根据预期用户规模选择推荐硬件配置:

    团队规模(约)内存CPU 核心数SSD 容量
    ~10 用户2-4 GB2-4 核50-100 GB
    ~100 用户4-8 GB4-8 核200-500 GB
    ~1000 用户16-32 GB8-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 功能。