当前位置: 首页 > news >正文

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: NodePortports:# Port上的映射端口- port: 443targetPort: 443name: gitlab443- port: 80targetPort: 80name: gitlab80- port: 22targetPort: 22name: gitlab22selector:app: gitlab---
apiVersion: apps/v1
kind: Deployment
metadata:name: gitlab
spec:selector:matchLabels:app: gitlabrevisionHistoryLimit: 2template:metadata:labels:app: gitlabspec:containers:# 应用的镜像- image: gitlab/gitlab-cename: gitlabimagePullPolicy: IfNotPresent# 应用的内部端口ports:- containerPort: 443name: gitlab443- containerPort: 80name: gitlab80- containerPort: 22name: gitlab22volumeMounts:# gitlab持久化- name: gitlab-persistent-configmountPath: /etc/gitlab- name: gitlab-persistent-logsmountPath: /var/log/gitlab- name: gitlab-persistent-datamountPath: /var/opt/gitlabimagePullSecrets:- name: devops-repovolumes:# 使用nfs互联网存储- name: gitlab-persistent-confignfs:server: 192.168.110.190 #nfs服务端的ip地址path: /data/data/gitlab/config- name: gitlab-persistent-logsnfs:server: 192.168.110.190 #nfs服务端的ip地址path: /data/data/gitlab/logs- name: gitlab-persistent-datanfs: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

相关文章:

  • 字符串形成树形
  • 银河麒麟解压命令
  • xstream运用,JAVA对象转xml,xml转JAVA对象
  • 使用HTML、CSS和JavaScript编写一个注册界面(一)
  • Redis系列之淘汰策略介绍
  • Macbook M芯片Maven的安装与配置
  • js 选择一个音频文件,绘制音频的波形,从右向左逐渐前进。
  • (第30天)二叉树阶段总结
  • 更新pip版本(在自己工程中的虚拟环境中)
  • 再读高考作文题
  • 【CS.SE】Tomcat启动闪退问题解决方法
  • 「动态规划」打家劫舍的变形题,你会做吗?
  • 【Linux】动态库和静态库
  • 牛客NC18 顺时针旋转矩阵【中等 数学 Java/Go/PHP/C++】
  • 一款免费文件夹同步工具,旨在帮助用户在不同磁盘或文件夹间进行文件和目录的复制、移动和同步工作
  • Google 是如何开发 Web 框架的
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Angular 4.x 动态创建组件
  • Apache的基本使用
  • iOS编译提示和导航提示
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • java小心机(3)| 浅析finalize()
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Laravel 中的一个后期静态绑定
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Vue小说阅读器(仿追书神器)
  • webpack入门学习手记(二)
  • 事件委托的小应用
  • 网页视频流m3u8/ts视频下载
  • 微信小程序:实现悬浮返回和分享按钮
  • 智能网联汽车信息安全
  • 自动记录MySQL慢查询快照脚本
  • 组复制官方翻译九、Group Replication Technical Details
  • # include “ “ 和 # include < >两者的区别
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # 计算机视觉入门
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (floyd+补集) poj 3275
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (转)socket Aio demo
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 8.0 中有哪些新的变化?
  • .Net Core与存储过程(一)
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET IoC 容器(三)Autofac
  • .NET 直连SAP HANA数据库
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET微信公众号开发-2.0创建自定义菜单
  • // an array of int
  • @WebService和@WebMethod注解的用法
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用