You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gitlab安装时ca.crt文件缺失导致无法访问首页如何解决?

问题原因

该问题出现在非Kubernetes环境部署的Omnibus版本Gitlab中,内置Prometheus组件默认开启了Kubernetes服务发现规则,会主动读取K8s默认挂载的CA证书路径,无K8s环境时就会触发ca.crt不存在的报错,虽然通过gitlab-ctl status查看所有服务显示运行正常,但Prometheus组件初始化异常会阻塞首页加载流程。

服务运行状态日志
run: alertmanager: (pid 26351) 624s; run: log: (pid 4641) 2149s
run: gitaly: (pid 26406) 623s; run: log: (pid 4638) 2149s
run: gitlab-exporter: (pid 26515) 622s; run: log: (pid 4630) 2149s
run: gitlab-workhorse: (pid 26517) 622s; run: log: (pid 4633) 2149s
run: grafana: (pid 26650) 622s; run: log: (pid 4634) 2149s
run: logrotate: (pid 26675) 621s; run: log: (pid 4629) 2149s
run: nginx: (pid 26794) 621s; run: log: (pid 4637) 2149s
run: node-exporter: (pid 26894) 620s; run: log: (pid 4636) 2149s
run: postgres-exporter: (pid 27009) 620s; run: log: (pid 4628) 2149s
run: postgresql: (pid 27018) 619s; run: log: (pid 4640) 2149s
run: prometheus: (pid 27021) 619s; run: log: (pid 4642) 2149s
run: puma: (pid 27082) 618s; run: log: (pid 4639) 2149s
run: redis: (pid 27105) 618s; run: log: (pid 4631) 2149s
run: redis-exporter: (pid 27135) 617s; run: log: (pid 4632) 2149s
run: sidekiq: (pid 27287) 614s; run: log: (pid 4635) 2149s
对应的错误日志
==> /var/log/gitlab/prometheus/current <==
2021-08-26_08:53:49.90252 level=info ts=2021-08-26T08:53:49.902Z caller=main.go:802 msg="TSDB started"
2021-08-26_08:53:49.90253 level=info ts=2021-08-26T08:53:49.902Z caller=main.go:928 msg="Loading configuration file" filename=/var/opt/gitlab/prometheus/prometheus.yml
2021-08-26_08:53:49.90450 level=error ts=2021-08-26T08:53:49.904Z caller=manager.go:314 component="discovery manager scrape" msg="Cannot create service discovery" err="unable to load specified CA cert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: open /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: no such file or directory" type=kubernetes
2021-08-26_08:53:49.90467 level=error ts=2021-08-26T08:53:49.904Z caller=manager.go:314 component="discovery manager scrape" msg="Cannot create service discovery" err="unable to load specified CA cert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: open /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: no such file or directory" type=kubernetes
2021-08-26_08:53:49.90470 level=error ts=2021-08-26T08:53:49.904Z caller=manager.go:314 component="discovery manager scrape" msg="Cannot create service discovery" err="unable to load specified CA cert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: open /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: no such file or directory" type=kubernetes
2021-08-26_08:53:49.91260 level=info ts=2021-08-26T08:53:49.912Z caller=main.go:959 msg="Completed loading of configuration file" filename=/var/opt/gitlab/prometheus/prometheus.yml totalDuration=10.013055ms remote_storage=2.512µs web_handler=754ns query_engine=1.237µs scrape=76.398µs scrape_sd=490.692µs notify=27.166µs notify_sd=19.689µs rules=7.607982ms
2021-08-26_08:53:49.91262 level=info ts=2021-08-26T08:53:49.912Z caller=main.go:751 msg="Server is ready to receive web requests."
2021-08-26_08:53:54.91465 level=error ts=2021-08-26T08:53:54.914Z caller=manager.go:188 component="scrape manager" msg="error creating new scrape pool" err="error creating HTTP client: unable to load specified CA cert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: open /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: no such file or directory" scrape_pool=kubernetes-nodes
2021-08-26_08:53:54.91483 level=error ts=2021-08-26T08:53:54.914Z caller=manager.go:188 component="scrape manager" msg="error creating new scrape pool" err="error creating HTTP client: unable to load specified CA cert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: open /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: no such file or directory" scrape_pool=kubernetes-cadvisor
2021-08-26_08:53:54.91549 level=error ts=2021-08-26T08:53:54.914Z caller=manager.go:188 component="scrape manager" msg="error creating new scrape pool" err="error creating HTTP client: unable to load specified CA cert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: open /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: no such file or directory" scrape_pool=kubernetes-pods
解决方案

两种可选方案,根据使用需求选择即可:

方案一:保留Prometheus监控功能,仅关闭K8s服务发现

  • 打开Gitlab配置文件 /etc/gitlab/gitlab.rb
  • 新增如下配置:
prometheus['kubernetes_sd_disabled'] = true
  • 保存文件后执行配置生效命令:gitlab-ctl reconfigure
  • 执行完成后重启Gitlab服务:gitlab-ctl restart

方案二:完全禁用Prometheus监控(不需要监控功能时使用)

  • 打开Gitlab配置文件 /etc/gitlab/gitlab.rb
  • 找到prometheus['enable']配置项,修改为:
prometheus['enable'] = false
  • 保存文件后执行配置生效命令:gitlab-ctl reconfigure
  • 执行完成后重启Gitlab服务:gitlab-ctl restart

操作完成后再次访问Gitlab首页即可正常加载。

内容的提问来源于stack exchange,提问作者YixiaoXu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:00:01