kubernetes基于helm部署gitlab
kubernetes基于helm部署gitlab
这篇博文介绍如何在 Kubernetes 中使用helm部署 GitLab。
先决条件
- 已运行的 Kubernetes 集群
- 负载均衡器,为ingress-nginx控制器提供EXTERNAL-IP,本示例使用metallb
- 默认存储类,为gitlab pods提供持久化存储,本示例使用nfs-csi
root@ubuntu:~# kubectl -n metallb-system get pods
NAME READY STATUS RESTARTS AGE
metallb-controller-7d644d8b89-4nhjv 1/1 Running 1 (9h ago) 9h
metallb-speaker-9kwmm 1/1 Running 1 (9h ago) 9hroot@ubuntu:~# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
nfs-csi (default) nfs.csi.k8s.io Delete Immediate false 2d8h
项目地址:https://gitlab.com/gitlab-org/charts/gitlab/-/tree/master/charts/gitlab
官方文档:https://docs.gitlab.com/charts/installation/deployment.html

部署gitlab
添加gitlab helm 仓库
helm repo add gitlab https://charts.gitlab.io
使用helm部署gitlab
helm upgrade --install gitlab gitlab/gitlab \--namespace=gitlab \--create-namespace \--timeout 600s \--set global.edition=ce \--set gitlab-runner.install=false \--set global.hosts.domain=example.com \--set certmanager-issuer.email=me@example.com
查看运行的pods
root@ubuntu:~# kubectl -n gitlab get pods
NAME READY STATUS RESTARTS AGE
gitlab-certmanager-569476dc86-pm87k 1/1 Running 0 8h
gitlab-certmanager-cainjector-7cf54459-lnswm 1/1 Running 0 8h
gitlab-certmanager-webhook-69745947df-vq6hw 1/1 Running 0 8h
gitlab-gitaly-0 1/1 Running 0 8h
gitlab-gitlab-exporter-b944648cb-w6chf 1/1 Running 0 8h
gitlab-gitlab-shell-6884cccc58-grtjx 1/1 Running 0 8h
gitlab-gitlab-shell-6884cccc58-hhb9k 1/1 Running 0 8h
gitlab-issuer-1-ffvlr 0/1 Completed 0 8h
gitlab-kas-5cb77566d8-742wx 1/1 Running 3 (8h ago) 8h
gitlab-kas-5cb77566d8-f6sds 1/1 Running 3 (8h ago) 8h
gitlab-migrations-1-2j4hg 0/1 Completed 0 8h
gitlab-minio-8486f8f98b-2ntfs 1/1 Running 0 8h
gitlab-minio-create-buckets-1-vt2qn 0/1 Completed 0 8h
gitlab-nginx-ingress-controller-56cfd4bf78-wt8vz 1/1 Running 0 8h
gitlab-nginx-ingress-controller-56cfd4bf78-wxtb9 1/1 Running 0 8h
gitlab-postgresql-0 2/2 Running 0 8h
gitlab-prometheus-server-c4478546-k9c8p 2/2 Running 0 8h
gitlab-redis-master-0 2/2 Running 0 8h
gitlab-registry-cdb66cfb9-4lcdc 1/1 Running 0 8h
gitlab-registry-cdb66cfb9-5zpjm 1/1 Running 0 8h
gitlab-sidekiq-all-in-1-v2-587cc9c486-247f5 1/1 Running 0 8h
gitlab-toolbox-7c576d4dbc-nvttv 1/1 Running 0 8h
gitlab-webservice-default-756f4bf9b9-tz8wj 2/2 Running 0 8h
gitlab-webservice-default-756f4bf9b9-vjjs4 2/2 Running 0 8h
查看service,确认gitlab-nginx-ingress-controller service是否分配EXTERNAL-IP
root@ubuntu:~# kubectl -n gitlab get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
gitlab-certmanager ClusterIP 10.96.1.63 <none> 9402/TCP 8h
gitlab-certmanager-webhook ClusterIP 10.96.1.169 <none> 443/TCP 8h
gitlab-gitaly ClusterIP None <none> 8075/TCP,9236/TCP 8h
gitlab-gitlab-exporter ClusterIP 10.96.0.87 <none> 9168/TCP 8h
gitlab-gitlab-shell ClusterIP 10.96.2.166 <none> 22/TCP 8h
gitlab-kas ClusterIP 10.96.2.118 <none> 8150/TCP,8153/TCP,8154/TCP,8151/TCP 8h
gitlab-minio-svc ClusterIP 10.96.1.87 <none> 9000/TCP 8h
gitlab-nginx-ingress-controller LoadBalancer 10.96.1.193 192.168.72.210 80:30972/TCP,443:32046/TCP,22:31666/TCP 8h
gitlab-nginx-ingress-controller-metrics ClusterIP 10.96.2.50 <none> 10254/TCP 8h
gitlab-postgresql ClusterIP 10.96.3.121 <none> 5432/TCP 8h
gitlab-postgresql-hl ClusterIP None <none> 5432/TCP 8h
gitlab-postgresql-metrics ClusterIP 10.96.2.119 <none> 9187/TCP 8h
gitlab-prometheus-server ClusterIP 10.96.3.239 <none> 80/TCP 8h
gitlab-redis-headless ClusterIP None <none> 6379/TCP 8h
gitlab-redis-master ClusterIP 10.96.2.77 <none> 6379/TCP 8h
gitlab-redis-metrics ClusterIP 10.96.2.45 <none> 9121/TCP 8h
gitlab-registry ClusterIP 10.96.0.229 <none> 5000/TCP 8h
gitlab-webservice-default ClusterIP 10.96.2.225 <none> 8080/TCP,8181/TCP,8083/TCP 8h
查看ingress
root@ubuntu:~# kubectl -n gitlab get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
gitlab-kas gitlab-nginx kas.example.com 192.168.72.210 80, 443 8h
gitlab-minio gitlab-nginx minio.example.com 192.168.72.210 80, 443 8h
gitlab-registry gitlab-nginx registry.example.com 192.168.72.210 80, 443 8h
gitlab-webservice-default gitlab-nginx gitlab.example.com 192.168.72.210 80, 443 8h
查看pv卷
root@ubuntu:~# kubectl -n gitlab get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-1f514f02-e926-4947-b4db-5a67873e33e9 10Gi RWO Delete Bound gitlab/gitlab-minio nfs-csi 8h
pvc-6d355a39-45bc-4b84-b6e9-5db5f123efe2 8Gi RWO Delete Bound tomcat/tomcat nfs-csi 2d7h
pvc-83b7c3a4-fa4d-4747-bd44-0704952d6006 8Gi RWO Delete Bound gitlab/data-gitlab-postgresql-0 nfs-csi 9h
pvc-d1d77751-0760-4609-be83-e45ab6d7c14f 50Gi RWO Delete Bound gitlab/repo-data-gitlab-gitaly-0 nfs-csi 9h
pvc-df21b231-263a-4056-bf0c-e226ceee6cb0 8Gi RWO Delete Bound gitlab/gitlab-prometheus-server nfs-csi 8h
pvc-f3b53564-15e1-4613-bbf9-f0a7791d5041 8Gi RWO Delete Bound gitlab/redis-data-gitlab-redis-master-0 nfs-csi 9h
访问gitlab
获取gitlab UI root用户的登陆密码
root@ubuntu:~# kubectl -n gitlab get secret gitlab-gitlab-initial-root-password -ojsonpath='{.data.password}' | base64 --decode ; echo
bvTyB0UUwXA3VhVywKOIzdD29KVJV64LB2Td0pyzAJUYe8pcTTOFSYla1SVpXeIx
获取gitlab UI 登陆的URL地址,如果设置 global.hosts.domain=example.com,那么访问地址为
https://gitlab.example.com
配置本地域名解析,其中192.168.72.210为上文gitlab-nginx-ingress-controller service的EXTERNAL-IP
gitlab.example.com 192.168.72.210
登录gitlab后界面如下:

启用gitlab-runner
1、配置gitlab url在pod中的域名解析
gitlab-runner pod启用时需要从pod内部使用 gitlab 外部域名https://gitlab.example.com注册到gitlab,修改coredns配置,提供本地域名解析。
root@ubuntu:~# kubectl -n kube-system edit cm coredns
apiVersion: v1
data:Corefile: |.:53 {errorshosts {192.168.72.210 gitlab.example.comfallthrough}......}
重启coredns pods
kubectl -n kube-system rollout restart deployment.apps/coredns
2、导出gitlab自签名证书
kubectl -n gitlab get secret gitlab-gitlab-tls --template='{{ index .data "tls.crt" }}' | base64 -d > gitlab.crt
3、基于自签名证书创建secrets
kubectl -n gitlab create secret generic gitlab-runner-certs \--from-file=gitlab.example.com.crt=gitlab.crt \--from-file=registry.example.com.crt=gitlab.crt \--from-file=minio.example.com.crt=gitlab.crt
4、更新已安装的gitlab实例,启用gitlab-runner并指定secrets
helm upgrade --install gitlab gitlab/gitlab \--namespace=gitlab \--set gitlab-runner.install=true \--set gitlab-runner.certsSecretName=gitlab-runner-certs \--reuse-values
5、查看gitalb-runner pods
root@ubuntu:~# kubectl -n gitlab get pods -l app=gitlab-gitlab-runner
NAME READY STATUS RESTARTS AGE
gitlab-gitlab-runner-6c8cd68548-v6qpd 1/1 Running 0 5m12s
6、登陆UI查看注册的runner
选择Your work–> Admin Area

选择CI/CD–>Runners,确认存在一个Online状态的Runner

相关文章:
kubernetes基于helm部署gitlab
kubernetes基于helm部署gitlab 这篇博文介绍如何在 Kubernetes 中使用helm部署 GitLab。 先决条件 已运行的 Kubernetes 集群负载均衡器,为ingress-nginx控制器提供EXTERNAL-IP,本示例使用metallb默认存储类,为gitlab pods提供持久化存储&…...
jmeter 5.1彻底解决中文上传乱码
1.修改源码,然后重新打jar包,就是所有上传文件名重新获取文件名 参考链接:多种Jmeter中文乱码问题处理方法 - 51Testing软件测试网 2.修改Advanced,必须选java...
云运维工具
企业通常寻找具有成本效益的方法来优化创收,维护物理基础架构以托管服务器和应用程序以提供服务交付需要巨大的空间和前期资金,最重要的是,物理基础设施会产生额外的运营支出以进行定期维护,这对收入造成了沉重的损失。 云使企业…...
【RL】Wasserstein距离-GAN背后的直觉
一、说明 在本文中,我们将阅读有关Wasserstein GANs的信息。具体来说,我们将关注以下内容:i)什么是瓦瑟斯坦距离?,ii)为什么要使用它?iii) 我们如何使用它来训练 GAN&…...
sentinel引入CommonFilter类
最近在做一个springcloudAlibaba项目,做链路流控模式时需要将入口资源关闭聚合,做法如下: spring-cloud-alibaba v2.1.1.RELEASE及前,sentinel1.7.0及后: 1.pom 中引入: <dependency><groupId>…...
Phoenix创建local index失败
执行创建local index出现如下错误 0: jdbc:phoenix:hbase01:2181> create local index local_index_name on "test" ("user"."name","user"."address"); 23/07/28 17:28:56 WARN client.SyncCoprocessorRpcChannel: Cal…...
css3 hover border 流动效果
/* Hover 边线流动 */.hoverDrawLine {border: 0 !important;position: relative;border-radius: 5px;--border-color: #60daaa; } .hoverDrawLine::before, .hoverDrawLine::after {box-sizing: border-box;content: ;position: absolute;border: 2px solid transparent;borde…...
jdk安装
JDK的下载、安装和环境配置教程(2021年,win10)_「已注销」的博客-CSDN博客_jdk 以上文章如果没有成功在环境变量中part再添加一句 C:\Program Files (x86)\Java\jdk1.7.0_80\bin 安装目录下的bin目录 写完环境后重启 📎jdk-20_w…...
utf8mb4_general_ci 和utf8mb4_unicode_ci有什么异同,有什么优劣
utf8mb4_general_ci 和 utf8mb4_unicode_ci 都是 MySQL 数据库中的字符集和排序规则(collation)。它们主要用于指定字符数据的排序和比较规则,以确保在数据库中对字符串进行查询和比较时得到正确的结果。 异同点: 1. utf8mb4_gen…...
java实现钉钉群机器人@机器人获取信息后,机器人回复(机器人接收消息)
1.需求 鉴于需要使用钉钉群机器人回复,人们提出的问题,需要识别提出的问题中的关键词,后端进行处理实现对应的业务逻辑 2.实现方式 用户群机器人,附带提出的问题,后端接收消息后识别消息内容,读取到关键…...
ffmpeg转码时出现missing picture in access unit with size 14019
使用ffmpeg录制网络流视频,因为网卡的缘故导致录制中断,视频在转换的时候就出现这个问题。 missing picture in access unit with size 14019怀疑是在最后的地方视频是损坏的,索性截取掉最后的2秒时间,原本视频时长是02:06:28&am…...
以Llama-2为例,在生成模型中使用自定义StoppingCriteria
以Llama-2为例,在生成模型中使用自定义StoppingCriteria 1. 前言2. 场景介绍3. 解决方法4. 结语 1. 前言 在之前的文章中,介绍了使用transformers模块创建的模型,其generate方法的详细原理和使用方法,文章链接: 以be…...
servlet接受参数和乱码问题
servlet接受参数和乱码问题 1、乱码问题 1)get请求 传输参数出现中文乱码问题: 如果还存在问题: 2)post请求 传输参数出现中文乱码问题: 2、接受参数: 3、登录注册案例...
2023-08-05力扣今日三题
链接: 剑指 Offer 22. 链表中倒数第k个节点 题意: 如题 解: 快慢指针 实际代码: #include<iostream> using namespace std; struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {} }; L…...
webpack图片压缩
减少代码体积 | 尚硅谷 Web 前端之 Webpack5 教程 (yk2012.github.io) npm install image-mininizer webpack plugin imagemin -D 无损压缩 npm install imagemin-gifsicle imagemin-jpegtran imagemin-optipng imagemin-svgo -D 有损压缩 npm install imagemin-gifsicle image…...
JPA使用nativeQuery自定义SQL怎么插入一个对象参数呢?
0、我们在前后端传递数据时候,参数多的情况下,常常将这些参数封装成对象;当有些场景你需要使用JPA nativeQuery自定义SQL,要将这个对象insert时候,初学者似乎有点犯难,jpa不是spring-data项目的内容吗&…...
用C语言构建一个数字识别卷积神经网络
卷积神经网络的具体原理和对应的python例子参见末尾的参考资料2.3. 这里仅叙述卷积神经网络的配置, 其余部分不做赘述,构建和训练神经网络的具体步骤请参见上一篇: 用C语言构建一个手写数字识别神经网路 卷积网络同样采用简单的三层结构,包括输入层con…...
【CSS】圆形放大的hover效果
效果 index.html <!DOCTYPE html> <html><head><title> Document </title><link type"text/css" rel"styleSheet" href"index.css" /></head><body><div class"avatar"></…...
work weekly
每周汇报:围绕着项目范围及需求内容完成情况多少、人力资源情况、整体进度情况、成本情况、【范围】多少工作、【资源】投入多少人、【时间】花费多少时间、【成本】花了多少钱 【质量】一般没有特别要求的默认软件开发过程规范要求响应时间 【沟通】这里不说了 …...
Mac端口扫描工具
端口扫描工具 Mac内置了一个网络工具 网络使用工具 按住 Command 空格 然后搜索 “网络实用工具” 或 “Network Utility” 即可 域名/ip转换Lookup ping功能 端口扫描 https://zhhll.icu/2022/Mac/端口扫描工具/ 本文由 mdnice 多平台发布...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
机器学习的数学基础:线性模型
线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...
麒麟系统使用-进行.NET开发
文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的,如果需要进行.NET开发,则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET,所以要进…...
