JihuLab.com 设置

  • Tier: 基础版,专业版,旗舰版
  • Offering: GitLab.com

本页面包含关于 JihuLab.com 上使用的设置信息,适用于 极狐GitLab SaaS 客户。

部分设置可在 JihuLab.com 的 实例配置页面 查看。

邮箱确认#

JihuLab.com 具有以下设置:

密码要求#

JihuLab.com 对新账户和密码修改有以下要求:

  • 最小长度 8 个字符
  • 最大长度 128 个字符
  • 接受所有字符。例如 ~!@#$%^&*()[]_+=-

SSH 密钥限制#

JihuLab.com 使用默认的 SSH 密钥限制

SSH 主机密钥指纹#

进行当前实例配置以在 JihuLab.com 上查看 SSH 主机密钥指纹。

  1. 登录极狐GitLab。
  2. 在左侧边栏中,选择 帮助 ({question-o}) > 帮助
  3. 在帮助页面上,选择 检查当前实例配置

在实例配置中,您会看到 SSH 主机密钥指纹

算法SHA256
ED25519oFjzO7Pjq2iFPAVDPI9LmQLeC7Vmst/vFy6Bd1Mlljw
RSANH6pILFtJnZCTefvALgWVShVUSyXmhnnwj/RjR76CJ4
DSA (deprecated)X42tkbvmtfwwPXggioadkFni7DgBybAdI9aensl/Hh4
ECDSA/YbJq0B1VPMOFY0SOs9DINmpXC7Ihyd6amYgZnrWFVc

SSH known_hosts 条目#

将以下内容添加到 .ssh/known_hosts 以跳过 SSH 中的手动指纹确认:

plaintext
JihuLab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAF3eNpQq0GNg0IZgh6gWOd1UOoaVJAQU9tjj6ocVuMT JihuLab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpndvpEtk3Ajwp74T6t6/uofKW6HzS/ZYmzqEFNxl+er1uroc0ZYfo3c211k3y3ickN8fKkOcADagC9QI3Wt/sKfff/46gpKie70bUyEjdSVA42hdhUvLQ+jASjU3QE+7frJQ/7Qzbff8URPJ9HQba3vPA8QDAvbDEWpLN7n364zELXKiuN1jGD0oemTsJsKDcc07cSwNTwTVDLdRYPCU4RhT0q/l2Xtmd1KgDFOmPoI0S2wkRO47soJcjbMlUhh5p/uZBV+XJxj2BWUlJERoBQie/AbZZfWjdRNZSKf4y7qHoR8YBAD7gSRKBkQM20Dd0DqGRI7HUyYdCQtU5Ex+3Zh7WtJwhWBWJ42zu+ILUfRsXQvJnGZ3fgc8BlEO3hzP+rJWKGZbVjgkMNsX7ZkXwNZ/xzj8oBHhCE2EvfjLo0+nHpRjppQXC7VWQSpxMv4M6RTcwuEW/hC5L/QpXEaORW1I5T68eJCsMuOIBOnZb+t7lM5ftOLLW2/7DUz8FS9tKyfCVHohHfOJexqrACF3FkGsXYxx5XKm9KjLrQtfXZLeWDaColIX0w6szCha9NnclQfs38izoYCpyE2ue8HwPdMJT9M19XW+ZfidLPBf/U0SK5eSwSQRj+HFSKxAz7kLZRmxi61jdaOVvdgUmT/ByvwVnWyne0EE8M0zLesm8Tw== JihuLab.com ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAD6qo5z7vy4J1dTRyhaf8ats0lDWVgpgMddICUaVRTSMcNjfSaq4XHdPnSeXwWsAuSYN/3KZzoVsKcvZ/y5bc15fQHomE2B4Wn0+AnFv8XDv0ZHuAnZ4JLvbjtG0aVjsdO/97MF3kAeabQm4+ci4YPx4GZVxE/2LcN+W8S024Ky7+qLKA==

邮件配置#

JihuLab.com 使用阿里云邮箱推送服务发送通知邮件,系统邮件的域名为 msg.jihulab.com。 JihuLab.com 使用阿里云企业邮箱服务接收特定邮件,接收邮件的域名为 mg.jihulab.com。

服务台别名邮箱地址#

在 JihuLab.com 上,为服务台配置了一个邮箱,地址为: contact-project+%{key}@mg.jihulab.com。要使用此邮箱,请在项目设置中配置 自定义后缀

备份#

要在 JihuLab.com 上备份整个项目,您可以通过以下两种方式导出项目:

使用导出功能时,请注意项目导出中包含和不包含的内容

GitLab 基于 Git 构建,因此您可以通过将项目仓库克隆到另一台计算机来仅备份仓库。同样,您可以克隆项目的 wiki 来进行备份。2020 年 8 月 22 日后上传的所有文件在克隆时都会包含在内。

群组延迟删除 (PREMIUM SAAS)#

自2023年5月8日起,所有群组默认启用延迟删除功能。

群组将在7天延迟后被永久删除。

您可以查看和恢复标记为删除的群组

项目延迟删除 (PREMIUM SAAS)#

自2023年5月8日起,所有群组默认启用项目延迟删除功能。

项目将在7天延迟后被永久删除。

您可以查看和恢复标记为删除的项目

不活跃项目删除#

JihuLab.com 上默认已禁用不活跃项目删除功能。

备用SSH端口#

可以通过为 git+SSH 使用不同的 SSH 端口,来访问 JihuLab.com。

设置项
Hostnamealtssh.jihulab.com
Port443

~/.ssh/config文件的配置示例如下:

plaintext
1Host jihulab.com 2 Hostname altssh.jihulab.com 3 User git 4 Port 443 5 PreferredAuthentications publickey 6 IdentityFile ~/.ssh/gitlab

GitLab Pages#

由于安全合规等因素,JihuLab.com 暂未开启 Pages 功能。

GitLab 容器镜像仓库#

要使用 GitLab 容器镜像仓库,Docker 客户端必须能够访问:

  • 镜像仓库节点及 JihuLab.com 用于授权

JihuLab.com 前端使用的是星盾,如果需要连接到 JihuLab.com,您可能需要允许星盾的 CIDR 块(IPv4 和 IPv6)。

GitLab CI/CD#

以下是当前关于 GitLab CI/CD 的设置。 此处未列出的任何设置或功能限制均使用相关文档中列出的默认值。

设置JihuLab.comDefault (私有化部署)
制品最大大小(压缩后)1 GB参见最大制品大小
制品过期时间除非另有指定,否则为30天参见默认制品过期时间。2020年6月22日之前创建的制品不会过期。
计划流水线Cron*/5 * * * *参见流水线计划高级配置
活动流水线中的最大作业数试用订阅:1000,高级版:20000,终极版:100000参见活动流水线中的作业数量
对项目的最大CI/CD订阅数2参见项目的CI/CD订阅数量
项目中最大流水线触发器数量25000参见限制流水线触发器数量
项目中的最大流水线计划数付费订阅:50参见流水线计划数量
每个计划的最大流水线数付费订阅:288参见限制每天由流水线计划创建的流水线数量
每个安全策略项目定义的最大计划规则数所有付费订阅无限制参见限制安全策略项目的计划规则数量
计划作业归档3个月从不归档。2020年6月22日之前创建的作业已于2020年9月22日归档。
单元测试报告中的最大测试用例数500000无限制。
最大注册Runner数付费订阅:每组1000,每个项目1000参见每个范围内的注册Runner数量
dotenv变量限制高级版:100
终极版:150
参见限制dotenv变量
授权令牌有效期(分钟)15要设置自定义值,在Rails控制台中运行ApplicationSetting.last.update(container_registry_token_expire_delay: <integer>),其中<integer>是所需分钟数。
最大下游流水线触发速率(针对特定项目、用户和提交)每分钟350参见最大下游流水线触发速率

软件包仓库限制#

上传到 GitLab 包注册表单个文件大小限制因格式而异:

软件包类型JihuLab.com
Conan5 GB
Generic5 GB
Helm5 MB
Maven5 GB
npm5 GB
NuGet5 GB
PyPI5 GB
Terraform1 GB

账户和限制设置#

JihuLab.com 启用了以下账户限制。如果某个设置未列出, 则默认值与自托管实例相同:

更多详细信息,请参阅JihuLab.com 实例配置

如果您接近或超过仓库大小限制,您可以:

注意: git push 和 GitLab 项目导入每个请求限制为 5 GiB。 除文件上传外的其他导入方式不受此限制影响。仓库限制适用于公开和私有项目。

默认导入源#

您可以使用的导入源默认取决于您使用的GitLab版本:

  • JihuLab.com:默认启用所有可用的导入源。
  • GitLab私有化部署:默认不启用任何导入源,需要手动配置启用

导入占位用户限制#

在 JihuLab.com 上导入期间创建的占位用户数量受顶级命名空间限制。根据您的计划和席位数量,限制有所不同。 更多信息,请参阅JihuLab.com 占位用户限制表

IP 地址范围#

JihuLab.com 使用的 IP 地址范围为 1.117.22.3/321.117.26.213/32,这些 IP 用于其 Web/API 流量。这些范围完全由 GitLab 独占使用。您可以预期来自 webhooks 或仓库镜像的连接会来自这些 IP,并应允许这些连接。

JihuLab.com 前端使用的是星盾,对于连接到 JihuLab.com 的入站请求,您可能需要允许星盾的 CIDR 块(IPv4 和 IPv6)。(https://jihulab.com/jihulab/jh-infra/jihulab-com-ip-cidrs/-/wikis/JihuLab.com-IP-CIDRs)。

对于来自 CI/CD Runner 的出站连接,我们不提供静态 IP 地址。 JihuLab.com 上的共享 Runner 部署在腾讯云上,不提供静态 IP。

主机名列表#

在配置本地 HTTP(S) 代理或其他管理终端用户计算机的网络拦截软件时,请添加以下主机名到白名单中。JihuLab.com 页面会从这些主机名加载内容:

  • jihulab.com
  • *.jihulab.com
  • gitlab.cn
  • *.gitlab.cn

Webhooks#

以下限制适用于 webhooks(Web 钩子)

速率限制#

每个顶级命名空间每分钟可调用的 Webhook 次数。 该限制根据您的订阅计划和席位数量而有所不同。

计划JihuLab.com 默认
基础版500
专业版99 seats or fewer: 1,600
100-399 seats: 2,800
400 seats or more: 4,000
旗舰版999 seats or fewer: 6,000
1,000-4,999 seats: 9,000
5,000 seats or more: 13,000

其他限制#

设置项JihuLab.com 默认值
Webhook 数量每个项目 100 个,每个群组 50 个(子群组的 Webhook 不计入父群组限制)
最大载荷大小25 MB
超时时间10 秒

关于私有化部署实例的限制,请参阅:

GitLab 托管的 Runner#

您可以使用 GitLab 托管的 Runner 在 JihuLab.com 运行 CI/CD 任务,无缝地构建、测试和部署应用到不同环境。

更多信息,请参阅 GitLab 托管的 Runner

Puma#

JihuLab.com 使用默认的 60 秒作为 Puma 请求超时时间

最大审核者和分配者数量#

  • 最大分配者数量引入于GitLab 15.6
  • 最大审核者数量引入于GitLab 15.9

合并请求强制执行以下最大值:

  • 最大分配者数:200
  • 最大审核者数:200

JihuLab.com 专属速率限制#

注意: 管理员文档请参阅 速率限制

当请求被速率限制时,GitLab 会返回 429 状态码。客户端应等待一段时间后再尝试请求。响应中还包含信息头,详细信息见速率限制响应

下表描述了 JihuLab.com 的速率限制:

速率限制设置
受保护路径的 IP 地址请求每分钟 10 个请求
项目、提交或文件路径的原始端点流量每分钟 300 个请求
来自 IP 地址的未认证流量每分钟 500 个请求
用户的认证 API 流量每分钟 2,000 个请求
用户的认证非 API HTTP 流量每分钟 1,000 个请求
来自 IP 地址的所有流量每分钟 2,000 个请求
议题创建每分钟 200 个请求
议题和合并请求上的评论创建每分钟 60 个请求
IP 地址的高级、项目或群组搜索 API每分钟 10 个请求
IP 地址的 GitLab Pages 请求每 50 秒 1,000 个请求
GitLab Pages 域的 GitLab Pages 请求每 10 秒 5,000 个请求
IP 地址的 GitLab Pages TLS 连接每 50 秒 1,000 个请求
GitLab Pages 域的 GitLab Pages TLS 连接每 10 秒 400 个请求
项目、用户或提交的流水线创建请求每分钟 25 个请求
项目的警报集成端点请求每小时 3,600 个请求
拉取镜像 间隔5 分钟
用户对 /api/v4/users/:id 的 API 请求每 10 分钟 300 个请求
IP 地址的 GitLab 软件包云请求 (引入于 GitLab 16.11)每分钟 3,000 个请求
GitLab 仓库文件每分钟 500 个请求

更多详细信息请参阅: 受保护路径原始端点的速率限制。

GitLab 可以在多个层次对请求进行速率限制。此处列出的速率限制是在应用程序中配置的。这些限制是针对每个 IP 地址最严格的限制。

速率限制响应#

有关速率限制响应的信息,请参阅:

受保护路径节流#

JihuLab.com 会对受保护路径的 POST 请求返回 HTTP 状态码 429,如果来自单个 IP 地址的请求超过每分钟 10 次。

请参阅下面的源代码了解哪些路径受保护。这包括用户创建、用户确认、用户登录和密码重置。

用户和 IP 速率限制包含对被阻止请求的响应头列表。

更多详情请参阅受保护路径

IP 封禁#

当 JihuLab.com 检测到来自单个 IP 地址的可疑流量时(例如超过速率限制设置),可能会触发 IP 封禁。当异常流量停止后,根据封禁类型的不同,IP 地址会自动解封(具体机制将在后续章节说明)。

如果您对 JihuLab.com 的所有请求都收到 403 禁止访问 错误,请检查是否有自动化进程触发了封禁。如需协助,请联系 GitLab 技术支持并提供相关信息(例如受影响的 IP 地址)。

Git 和容器仓库认证失败封禁#

如果在 1 分钟内,来自单个 IP 地址的 Git 请求和容器仓库请求(/jwt/auth)累计出现 300 次认证失败,JihuLab.com 会返回 HTTP 状态码 403 并持续封禁 15 分钟。

注意:

  • 成功的认证请求会重置计数器。例如:299 次失败后 1 次成功,再 299 次失败不会触发封禁
  • 使用 gitlab-ci-token 认证的 JWT 请求不受此限制
  • 系统不会返回任何响应头信息

对于私有仓库,https 协议的 git 请求会先发送未认证请求(导致 401 错误),然后再尝试使用用户名/密码/访问令牌认证。若同时发送大量此类请求可能导致临时 IP 封禁。建议改用 SSH 密钥与 GitLab 交互

分页响应头#

出于性能考虑,当查询结果超过 10,000 条记录时,GitLab 会省略部分响应头

可见性设置#

在 JihuLab.com 上,项目、群组和代码片段无法使用"内部"可见性设置此功能已被禁用

SSH 最大连接数#

JihuLab.com 通过 MaxStartups 配置限制未认证 SSH 并发连接数。当并发连接数超过限制时,新连接会被丢弃,用户会收到 ssh_exchange_identification 错误

通过上传导出文件导入群组/项目#

为防止滥用,以下操作设有速率限制:

  • 项目和群组导入
  • 使用文件导出的群组和项目
  • 导出文件下载

详见:

不可配置的限制#

有关不可配置速率限制的信息,请参阅不可配置的限制,这些限制同样适用于 JihuLab。

JihuLab.com 特定的 Gitaly RPC 并发限制#

针对不同类型的 Git 操作(如 git clone),JihuLab.com 配置了每仓库 Gitaly RPC 并发和队列限制。当超过这些限制时,客户端将收到 fatal: remote error: GitLab is currently unable to handle this request due to load 错误消息。

管理员文档请参阅 限制 RPC 并发

JihuLab.com 日志系统#

我们使用Fluentd解析日志。Fluentd 将日志发送至:

  • Stackdriver Logging
  • Cloud Pub/Sub Stackdriver 用于将日志长期存储在 Google 冷存储(GCS)中。 Cloud Pub/Sub 通过pubsubbeat将日志转发至Elastic 集群。

您可以在我们的运维手册中查看以下信息:

  • 详细的日志记录清单
  • 当前日志保留策略
  • 日志基础设施架构图

作业日志#

默认情况下,GitLab 不会使作业日志过期。作业日志会被永久保留,且在 JihuLab.com 上无法配置过期时间。您可以通过以下方式清除作业日志:

JihuLab.com 的大规模部署#

除了 GitLab 企业版 Linux 软件包安装外,JihuLab.com 还使用以下应用程序和设置来实现大规模部署。所有设置均公开可用,参见:

  • Kubernetes 配置
  • Chef 配置手册

Elastic 集群#

我们使用 Elasticsearch 和 Kibana 作为监控解决方案的一部分:

  • gitlab-cookbooks / gitlab-elk · GitLab
  • gitlab-cookbooks / gitlab_elasticsearch · GitLab

Fluentd#

使用 Fluentd 统一管理 GitLab 日志:

  • gitlab-cookbooks / gitlab_fluentd · GitLab

Prometheus#

Prometheus 完善我们的监控体系:

  • gitlab-cookbooks / gitlab-prometheus · GitLab

Grafana#

用于监控数据的可视化:

  • gitlab-cookbooks / gitlab-grafana · GitLab

Sentry#

开源错误跟踪系统:

  • gitlab-cookbooks / gitlab-sentry · GitLab

Consul#

服务发现工具:

  • gitlab-cookbooks / gitlab_consul · GitLab

HAProxy#

高性能 TCP/HTTP 负载均衡器:

  • gitlab-cookbooks / gitlab-haproxy · GitLab

Sidekiq#

JihuLab.com 运行 Sidekiq 作为 外部进程 来处理 Ruby 作业调度。

当前设置参见 JihuLab.com Kubernetes Pod 配置