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

相关推荐
卧蚕土豆14 小时前
GITLAB配置CI教程
ci/cd·gitlab
不知之知2 天前
使用gitlab的CI/CD实现logseq笔记自动发布为单页应用
gitlab·logseq分布为网站
极小狐2 天前
极狐GitLab 将亮相2024空天信息大会暨数字地球生态峰会,携手中科星图赋能空天行业开发者
人工智能·gitlab·极狐gitlab·驭码coderider·智能编程
兰若姐姐2 天前
如何第一次从零上传项目到GitLab
python·gitlab
fengbingchun2 天前
GitLab管理员常用配置及设置汇总
gitlab
荣淘淘2 天前
gitlab push的时候需要密码,你忘记了密码
gitlab
画月的亮3 天前
gitLab使用流程
gitlab
bitcsljl3 天前
Linux系统中卸载GitLab
linux·运维·gitlab
krb___4 天前
python拉取gitlab项目以及拉取报错处理
gitlab
dami_king6 天前
新手怎么使用GitLab?
运维·git·svn·云原生·gitlab·github