gitlabcicd-k8s部署gitlab

一.安装准备环境

存储使用nfs挂载持久化

k8s环境

helm安装 建议helm 3+

二.部署gitlab-deploy.yaml

nfs的ip是192.168.110.190 挂载目录是/data/data

注意所需要的目录需要创建:/data/data/gitlab/config ,/data/data/gitlab/logs ,/data/data/gitlab/data

复制代码
apiVersion: v1
kind: Service
metadata:
  name: gitlab
spec:
  type: NodePort
  ports:
    # Port上的映射端口
    - port: 443
      targetPort: 443
      name: gitlab443
    - port: 80
      targetPort: 80
      name: gitlab80
    - port: 22
      targetPort: 22
      name: gitlab22
  selector:
    app: gitlab

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: gitlab
spec:
  selector:
    matchLabels:
      app: gitlab
  revisionHistoryLimit: 2
  template:
    metadata:
      labels:
        app: gitlab
    spec:
      containers:
        # 应用的镜像
        - image: gitlab/gitlab-ce
          name: gitlab
          imagePullPolicy: IfNotPresent
          # 应用的内部端口
          ports:
            - containerPort: 443
              name: gitlab443
            - containerPort: 80
              name: gitlab80
            - containerPort: 22
              name: gitlab22
          volumeMounts:
            # gitlab持久化
            - name: gitlab-persistent-config
              mountPath: /etc/gitlab
            - name: gitlab-persistent-logs
              mountPath: /var/log/gitlab
            - name: gitlab-persistent-data
              mountPath: /var/opt/gitlab
      imagePullSecrets:
        - name: devops-repo
      volumes:
        # 使用nfs互联网存储
        - name: gitlab-persistent-config
          nfs:
            server: 192.168.110.190 #nfs服务端的ip地址
            path: /data/data/gitlab/config
        - name: gitlab-persistent-logs
          nfs:
            server: 192.168.110.190 #nfs服务端的ip地址
            path: /data/data/gitlab/logs
        - name: gitlab-persistent-data
          nfs:
            server: 192.168.110.190 #nfs服务端的ip地址
            path: /data/data/gitlab/data

三.部署yaml 查看服务

kubectl -f apply gitlab-deploy.yaml -n gitlab

四.gitlab优化

为了优化 GitLab 访问总是报 500 和 502 错误的问题,查看容器日志总是连接redis超时/拒绝,可以考虑将 GitLab 的内置 Redis 替换为外部托管的 Redis 服务。这可以提高 Redis 的性能和可靠性,从而提升 GitLab 的稳定性。

1.编辑配置文件

vim /etc/gitlab/gitlab.rb修改下面配置

编辑配置文件-禁用内部redis

redis['enable'] = false

配置外部redis连接信息

gitlab_rails['redis_host'] = "127.0.0.1"

gitlab_rails['redis_port'] = 6379

gitlab_rails['redis_password'] = "12345678"

gitlab_rails['redis_database'] = 10

2.内存优化

刚开始内存会达到8-10G 经过优化参数之后降低到5G

  • 为每个 GitLab 组件设置合适的内存限制,可以避免单个组件消耗过多内存。
  • 修改 gitlab.rb 配置文件,调整 Puma、Sidekiq 和其他关键组件的内存使用。
  • 将 GitLab 的 PostgreSQL 数据库和 Redis 缓存迁移到外部托管服务,可以减轻 GitLab 主机的内存负担。
  • 优化 CI/CD 管道,减少不必要的构建和测试任务。

puma['worker_timeout'] = 30

gitlab_rails['time_zone'] = 'Asia/Shanghai'

puma['worker_processes'] = 2

postgresql['shared_buffers'] = "256MB"

sidekiq['max_concurrency'] = 8

postgresql['max_worker_processes'] = 4

puma['per_worker_max_memory_mb'] = 600

prometheus_monitoring['enable'] = false

sidekiq['min_concurrency'] = 8

通过调整 GitLab 组件的内存限制、使用外部数据库和缓存、优化工作负载、调整日志级别以及持续监控和调优,可以有效降低 GitLab 的内存使用。这些优化措施不仅可以减少内存消耗,还能提高系统的稳定性和性能。

刷新加载配置配置

gitlab-ctl reconfigure

gitlab-ctl restart

相关推荐
企鹅郁金香1 天前
使用Docker部署Gitlab和Gerrit (一)
docker·容器·gitlab·gerrit部署
Java 码农2 天前
gitlab gitrunner springboot 多环境多分支部署 (非容器方式,使用原生linux 环境)
linux·spring boot·gitlab
Java 码农2 天前
GitLab + GitLab Runner + Spring Cloud Alibaba 多环境多分支容器化部署方案(docker)
docker·容器·gitlab
毋若成3 天前
公司小白第一课:DACS、gitlab、AI提问词
ai·gitlab·dacs
石工记3 天前
Ubuntu 2024 Docker-Compose部署GitLab+MySQL 8.0保姆式方案
ubuntu·docker·gitlab
tzhou644528 天前
搭建Jenkins+GitLab持续集成环境
ci/cd·gitlab·jenkins
编程、小哥哥8 天前
AI之gitlab代码分析之按迭代评审
gitlab
可爱又迷人的反派角色“yang”9 天前
GitLab配置与git集成实践
linux·网络·git·docker·云计算·gitlab
LucidX9 天前
从零搭建Jenkins+GitLab持续集成环境:详细教程
ci/cd·gitlab·jenkins
m0_485614679 天前
GitLab基础管理
gitlab