使用 NGINX

我们提供完整的 NGINX 部署用作 Ingress Controller。并非所有 Kubernetes 提供商都原生支持 NGINX Ingress 以确保兼容性。

note与 GitLab Helm Charts 捆绑的 NGINX Ingress Helm Chart 版本已更新以支持 Kubernetes 1.22。因此,GitLab Helm Chart 无法再支持 Kubernetes 1.19 之前的版本。

配置 NGINX

查看 NGINX chart 文档,获取有关配置的详细信息。

全局设置

我们的 chart 之间共享一些通用的全局设置。请查看 全局配置文档 了解常见的配置项,例如 GitLab 和 Registry 组件服务器的主机名。

使用全局设置配置主机

GitLab 和 Registry 组件服务器的主机名可以使用全局配置

Annotation 值词块列表

引入于极狐GitLab Helm chart 6.6。

在集群操作员需要更好地控制生成的 NGINX 配置的情况下,NGINX Ingress 允许配置片段,插入标准注释和 ConfigMap 条目未解决的原始 NGINX 配置的“片段”。

这些配置片段的缺点是它允许集群操作员部署包含 LUA 脚本和类似配置的 Ingress 对象,这些配置可能会危及极狐GitLab 安装和集群本身的安全性,包括暴露服务帐户令牌和 secret。

请参阅 CVE-2021-25742此上游 ingress-nginx 问题来获取更多详细信息。

为了规避极狐GitLab 的 Helm chart 部署中的 CVE-2021-25742 - 我们使用 nginx-ingress 社区的建议,设置 annotation-value-word-blocklist

如果您在极狐GitLab Ingress 配置中使用配置片段,或者将极狐GitLab NGINX Ingress Controller 与使用配置片段的第三方 Ingress 对象一起使用,则在尝试访问极狐GitLab 第三方域名时可能会遇到 404 错误,以及 nginx-controller 日志中的 “invalid word” 错误。在这种情况下,请检查并调整您的 nginx-ingress.controller.config.annotation-value-word-blocklist 设置。