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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/681859.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode刷题之HOT100之合并区间

雨下了一整天,中午早早就回去吃饭拿快递了,今天拿了很多快递。我的书回来啦哈哈,还有好多零食,爽歪歪啊,放在下面了,然后准备开始做题啦! 图一:左一是xh送我的,非常精彩…

JAVA小案例-99乘法表

JAVA小案例-99乘法表 今天学的一个小案例&#xff0c;主要是为了复习一下嵌套循环。 代码如下&#xff1a; public class Cheng {public static void main(String[] args) {int i;int j;for (i 1; i < 10; i) { //i<10和<9一个意思for (j 1; j < i 1; j) {…

CDH服务红,查看日志发现host有问题

看host后&#xff0c;发现里面节点ip都是127.0.0.1然后全部改成对应的ip&#xff0c; 1.在/etc/hosts里面全部加上了 ip以及对应的角色名称 2然后注释了127.0.0.1 hostname 3.然后重启所有的机器agent和server&#xff0c;在重新登录&#xff0c;点击重新部署。 重启agent sy…

STM32作业实现(八)触摸按键TPAD

目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…

echarts柱状图的背景动态效果

这里的动态效果实现原理&#xff0c;就是相当于柱状图多了一组同系列数据&#xff0c;其值与数组展示数据一致&#xff08;类似下图&#xff09; 即&#xff0c;柱形图的每一个柱体都有它对应的另外一个柱体 其中白色柱体要与展示柱体重合&#xff0c;效果类似与给柱体做背景…

Linux---网络相关配置

文章目录 目录 文章目录 前言 一.查看网络信息 二.修改网络配置信息 总结 前言 一台主机需要配置必要的网络信息&#xff0c;才可以连接到互联网&#xff0c;需要的配置网络信息包括IP&#xff0c;子网掩码&#xff0c;网关和DNS。 一.查看网络信息 查看IP信息可以通过ifcon…

用单链表实现集合

一、实验题目 &#xff08;1&#xff09;实验题目 用单链表实现集合 &#xff08;2&#xff09;问题描述 用有序单链表实现集合的判等、交、并和差等基本运算。 二、实验内容 &#xff08;1&#xff09;采用有序单链表存储集合&#xff1b; &#xff08;2&#xff09;实现交…

IntelliJ IDEA智能编程插件AI Assistant

IntelliJ IDEA集成开发工具最新版本提供了人工智能AI编程助手的插件&#xff0c;AI Assistant使用手册的文档地址是AI Assistant | IntelliJ IDEA Documentation AI Assistant提供以下的编程能力以及工具特性&#xff1a; 与AI Assistant聊天&#xff0c;提问与项目相关或者与…

DNF手游辅助职业推荐:魔道学者云手机辅助玩法攻略!

在DNF手游中&#xff0c;魔道学者是一个独特且强力的辅助职业&#xff0c;深受玩家喜爱。她不仅能提供强大的辅助效果&#xff0c;还拥有丰富的技能机制。本文将简要介绍魔道学者的辅助玩法&#xff0c;推荐适合的装备和技能搭配&#xff0c;帮助玩家更好地掌握这一职业。 魔道…

LeetCode25_K个一组翻转链表

. - 力扣&#xff08;LeetCode&#xff09; 一、题目描述 二、过程模拟 1. 第一步 2. 第二步&#xff1a;子链表分组 3. 第三步&#xff1a;断开前后两组 4. 第四步&#xff1a;翻转start到end的部分 5. 第五步&#xff1a;连接翻转好的前半部分和未翻转的后半部分&#xff…

IEAD常用快捷键

如题 网页图片不清晰&#xff0c;可下载后查看

mac Network: use --host to expose

本地启动无法访问&#xff0c;这个不是权限问题是mac 主机端口安全策略&#xff0c;现在我们只需要开启端口自动检测就可以 npm run dev --host 网络&#xff1a;未暴露 方案一 1、执行 npm run dev -- --host 方案二 1、请在 vite.config.js server: {host: true } 1…

【SpringBoot】SpringBoot同时可以处理多少请求

目录 问题Web三大容器三者区别TomcatJetty小结 最大连接数和最大等待数同时处理请求数拓展&#xff1a;设置Web容器设置容器为Jetty设置容器为Undertow 问题 之前看到过一个面试题&#xff1a;SpringBoot同时可以处理多少请求&#xff1f; 准确的来说&#xff0c;Spring Boot…

Android Studio的Gradle面板里不显示task,build ,assemble 无法出aar包

按照以下方式把对应开关打开就可以正常进行build/assemble进行aar的生成了

景源畅信数字:抖音直播人气品类有哪些?

随着短视频平台的兴起&#xff0c;抖音成为了人们日常生活中不可或缺的娱乐方式之一。而抖音直播作为平台的重要组成部分&#xff0c;吸引了大量的观众和主播参与。那么&#xff0c;在抖音直播中&#xff0c;哪些品类能够吸引更多的人气&#xff0c;成为观众们关注的焦点呢?接…

运维工具 - SFTP 和 FTP 的区别?

SFTP 和 FTP 的区别有三点 连接方式 SFTP 是在客户端和服务器之间通过 SSH 协议建立的安全连接来传输文件&#xff0c;而 FTP 则是 TCP 端口 21 上的控制连接建立连接。 安全性 SFTP 使用加密传输认证信息来传输数据&#xff0c;因此 SFTP 相对于 FTP 更安全的。 效率 SF…

计算机英文教材太难啃?Higress 和通义千问帮你!

作者&#xff1a;张添翼&#xff08;澄潭&#xff09; 计算机相关英文教材的中译本质量堪忧&#xff0c;对于计算机专业的学生来说&#xff0c;应该深有体会。因为大部分教材的译者本人可能未必完全吃透书中技术内容&#xff0c;又或者是领域技术大拿&#xff0c;但并不擅长英…

C语言(结构体)

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#xff0c;在这里撰写成文一…

面向长文本处理的键值缓存压缩技术:智能压缩,无损性能,免微调

随着输入长度的增加&#xff0c;大型语言模型&#xff08;LLMs&#xff09;中的键值&#xff08;KV&#xff09;缓存需要存储更多的上下文信息以维持性能&#xff0c;这导致内存消耗和计算时间急剧上升。KV缓存的增长对内存和时间效率的挑战主要表现在两个方面&#xff1a;一是…

【Python数据预处理系列】精通Pandas:数据清洗中的字符串分割技巧(例子:如何将籍贯列中的横线替换为省份和市区)

本文将深入探讨Pandas库在数据清洗中的应用&#xff0c;特别是字符串分割技巧。 在数据分析的预处理步骤中&#xff0c;有效地处理和准备原始数据是至关重要的一步。我们将通过具体示例&#xff0c;展示如何使用Pandas中的 .str.split() 函数来对数据集中的字符串进行分割&…