• gitlab各组件功能list


    概述

    查看各组件状态

    gitlab-ctl status

    gitlab组件架构文档(有详细架构图):GitLab architecture overview | GitLab

    精简版-gitlab各组件list

    • gitaly - 提供对Git Repository的高级RPC访问。只负责Repository数据,其他数据不通过gitlay。
    • gitlab-workhorse - 作为http请求代理,所有http请求都会过gitlab-workhorse。再由gitlab-workhorse通过Ruby程序HTTP服务器(Unicorn)转发给后端Ruby应用程序(puma、sidekiq)。
    • gitlab rails application - gitlab的后端Ruby应用程序的总称,实际的Ruby应用程序为puma、sidekiq。
    • puma - Ruby应用程序。puma在Gitlab中提供面向用户的功能。 
    • sidekiq - Ruby应用程序。sidekiq是一个后台作业处理器,从Redis队列中提取作业并进行处理。
    • nginx - 作为http请求入口,将http请求路由到合适的gitlab子系统。
    • postgresql - 为应用程序元数据和用户信息提供存储。
    • redis - 主要用于以下目的:缓存、Sidekiq的作业处理队列、管理共享应用程序状态、存储 CI 跟踪块、作为 ActionCable 的 Pub/Sub 队列后端、速率限制状态存储、Session。
    • logrotate - 用于日志切割。
    • 监控组件 - prometheus、alertmanager、grafana、指标采集器(node-exporter、postgres-exporter、redis-exporter)
    • gitlab-kas - kubernetes agent server,用于管理kubernetes中的gitlab agent。用于gitlab到k8s的持续集成、持续部署。

    详细版-gitlab各组件list

    相关组件端口备注
    gitaly127.0.0.1:9236

    gitaly提供对Git repositories的高级RPC访问。Gitlab通过gitaly读取和写入数据,协调repositories的存储和检索。gitaly只负责repositories存储,其他的数据不通过gitaly。

    gitaly可以有单实例(单机)和集群两种模式。单机时repositories存储在单个节点上;cluster模式下repositories可以被存储在多个节点上,以实现容错。

    gitaly是C/S架构。服务端是:gitaly本身;客户端是向gitaly发出请求的进程:GitLab Rails application(puma、sidekiq)、GitLab Shell、GitLab Workhorse、GitLab Elasticsearch Indexer

    gitlab-workhorse127.0.0.1:9229

    GitLab Workhorse是 GitLab 设计的一个程序,旨在帮助减轻来自 Puma 的压力。您可以阅读更多关于发展的历史原因。它旨在充当智能反向代理,以帮助整个 GitLab 加速。

    GitLab Workhorse作为http请求的代理,使用GO语言编写。从nginx过来的http请求先到GitLab Workhorse,再到Unicorn。Unicorn是为Ruby应用程序提供的HTTP服务器,在nginx中一般通过一个Unix Socket将请求转发至Unicorn worker池。GitLab Workhorse最初为了解决一些大型项目 git clone 时通过 ssh 的超时问题,因为Unicorn依赖相对较短的请求超时。后来为了简化nginx配置,将http的请求先经过GitLab Workhorse再转发到Unicorn,逐渐越来越多的http请求转移到了GitLab Workhorse上。

    关于GitLab Workhorse的发展历史:A Brief History of GitLab Workhorse|GitLab..

    puma(GitLab Rails application)127.0.0.1:8080Puma是一个 Ruby 应用程序服务器,用于运行核心 Rails 应用程序,在 GitLab 中提供面向用户的功能。通常这会在进程输出中显示为bundle或config.ru取决于 GitLab 版本。
    sidekiq(GitLab Rails application)

    Sidekiq 是一个 Ruby 后台作业处理器,它从 Redis 队列中提取作业并进行处理。后台作业允许 GitLab 通过将工作移至后台来提供更快的请求/响应周期。

    Sidekiq 需要连接到 Redis、PostgreSQL 和 Gitaly 实例。

    gitlab-kas

    127.0.0.1:8150

    127.0.0.1:8151

    127.0.0.1:8153

    127.0.0.1:8154

    127.0.0.1:8155

    KAS(Kubernetes agent server)是gitlab agent server,用于管理Kubernetes中的Gitlab agent(agentk)。

    KAS ↔ gitlab agent,解决k8s和gitlab的链接。可以将部署从gitlab同步到k8s集群。

    1.可以将k8s清单存储在gitlab中。更新清单文件,代理就会更新k8s中的部署

    2.可以通过gitlab CI/CD查询和更新k8s集群

    kubernetes结合gitlab实现cicd:

    Connecting a Kubernetes cluster with GitLab | GitLab

    kas架构:

    doc/architecture.md · master · GitLab.org / cluster-integration / GitLab Agent for Kubernetes · GitLab

    nginx

    80、443、8060

    作为http请求的入口,将http的请求路由到合适的gitlab子系统。

    8060端口暴露nginx-status、nginx metrics、gitlab rails metrics。默认情况下只允许从127.0.0.1访问。

    postgresql为应用程序元数据和用户信息提供存储。
    redis

    Redis guidelines | GitLab

    Redis用于以下目的:缓存(主要是通过Rails.cache)、作为Sidekiq的作业处理队列、管理共享应用程序状态、存储 CI 跟踪块、作为 ActionCable 的 Pub/Sub 队列后端、速率限制状态存储、Session。

    如果启用Geo,每个 Geo 节点都会获得自己的独立 Redis 数据库。

    logrotate日志切割。
    prometheus9090监控。
    alertmanager

    127.0.0.1:9093

    9094

    负责发送告警和抑制告警。
    grafana127.0.0.1:3000监控面板。
    node-exporter127.0.0.1:9100将node的指标提供给prometheus
    postgres-exporter127.0.0.1:9187将postgresql的指标提供给prometheus
    redis-exporter127.0.0.1:9121将redis的指标提供给prometheus

  • 相关阅读:
    WebSocket
    [C#]JCoder.Mock4Net,可用于模拟数据的c#类库
    【Harmony OS】【ARK UI】组件内转场api 基本使用
    mysql 查询某字段中以逗号分隔的字符串的方法
    写出你所知道的测试工具,并写出他们的用途和优缺点
    控制器连接Profinet转Modbus RTU网关与精密数显温控仪通讯
    (附源码)spring boot网上商品定制系统 毕业设计 180915
    java-php-python-ssm-兴澜幼儿园管理系统-计算机毕业设计
    关于前端开发中导入导出
    Linux基础指令(四)
  • 原文地址:https://blog.csdn.net/qq522044637/article/details/127674935