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. kubekey部署k8s

    2024-06-06 08:02:05       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-06 08:02:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-06 08:02:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-06 08:02:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-06 08:02:05       20 阅读

热门阅读

  1. net/http与gin框架的关系分析

    2024-06-06 08:02:05       9 阅读
  2. 论文阅读:Neural Scene Flow Prior

    2024-06-06 08:02:05       5 阅读
  3. matlab图像处理入门

    2024-06-06 08:02:05       8 阅读
  4. Linux 新磁盘挂载

    2024-06-06 08:02:05       7 阅读
  5. Python爬虫之保存图片到本地

    2024-06-06 08:02:05       7 阅读