0%

GitLab Pages在Kubernetes中进行Access Control

最近在Kubernetes中部署了GitLabGitLab使用HTTP,在Kubernetes通过Ingress进行HTTPS代理,对外使用HTTPS访问。

当在部署GitLab Pages时,系统通过Access Contrel进行访问控制时,结果发现出现503错误。经过多次尝试,发现有两个解决方法:

  1. 全部不使用HTTPS,使用HTTP。这个方法简单粗暴,但不安全。
  2. 修改修改配置如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# external_url设置为https,如果设置http,在通过Ingress代理成https,大部分功能没有问题,但发现Web IDE打开是因为在HTTPS请求中使用了HTTP大致失败,未来有可能GitLab会修改这个问题。但目前只能如此。
external_url 'https://gitlab.example.cn'

# Pages的对外页面,这里使用HTTP,通过Ingress进行HTTPS代理
pages_external_url "http://example.cn/"

# 如果使用容器部署,inplace_chroot需要打开
gitlab_pages['inplace_chroot'] = true

# 接入控制开关
gitlab_pages['access_control'] = true

# auth_server是关键,缺省和external_url相同,因为external_url设置为https,导致pages无法通过证书验证,所有修改认证为http方式。
gitlab_pages['auth_server'] = 'http://gitlab.rd.example.cn'

终于,GitLabWeb IDEPages都可以完美工作了。

备注: GitLab使用版本 V11~`V12.2`

坚持原创技术分享,您的支持将鼓励我继续创作!