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

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 集群负载均衡器&#xff0c;为ingress-nginx控制器提供EXTERNAL-IP&#xff0c;本示例使用metallb默认存储类&#xff0c;为gitlab pods提供持久化存储&…...

jmeter 5.1彻底解决中文上传乱码

1.修改源码,然后重新打jar包,就是所有上传文件名重新获取文件名 参考链接:多种Jmeter中文乱码问题处理方法 - 51Testing软件测试网 2.修改Advanced,必须选java...

云运维工具

企业通常寻找具有成本效益的方法来优化创收&#xff0c;维护物理基础架构以托管服务器和应用程序以提供服务交付需要巨大的空间和前期资金&#xff0c;最重要的是&#xff0c;物理基础设施会产生额外的运营支出以进行定期维护&#xff0c;这对收入造成了沉重的损失。 云使企业…...

【RL】Wasserstein距离-GAN背后的直觉

一、说明 在本文中&#xff0c;我们将阅读有关Wasserstein GANs的信息。具体来说&#xff0c;我们将关注以下内容&#xff1a;i&#xff09;什么是瓦瑟斯坦距离&#xff1f;&#xff0c;ii&#xff09;为什么要使用它&#xff1f;iii&#xff09; 我们如何使用它来训练 GAN&…...

sentinel引入CommonFilter类

最近在做一个springcloudAlibaba项目&#xff0c;做链路流控模式时需要将入口资源关闭聚合&#xff0c;做法如下&#xff1a; spring-cloud-alibaba v2.1.1.RELEASE及前&#xff0c;sentinel1.7.0及后&#xff1a; 1.pom 中引入&#xff1a; <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的下载、安装和环境配置教程&#xff08;2021年&#xff0c;win10&#xff09;_「已注销」的博客-CSDN博客_jdk 以上文章如果没有成功在环境变量中part再添加一句 C:\Program Files (x86)\Java\jdk1.7.0_80\bin 安装目录下的bin目录 写完环境后重启 &#x1f4ce;jdk-20_w…...

utf8mb4_general_ci 和utf8mb4_unicode_ci有什么异同,有什么优劣

utf8mb4_general_ci 和 utf8mb4_unicode_ci 都是 MySQL 数据库中的字符集和排序规则&#xff08;collation&#xff09;。它们主要用于指定字符数据的排序和比较规则&#xff0c;以确保在数据库中对字符串进行查询和比较时得到正确的结果。 异同点&#xff1a; 1. utf8mb4_gen…...

java实现钉钉群机器人@机器人获取信息后,机器人回复(机器人接收消息)

1.需求 鉴于需要使用钉钉群机器人回复&#xff0c;人们提出的问题&#xff0c;需要识别提出的问题中的关键词&#xff0c;后端进行处理实现对应的业务逻辑 2.实现方式 用户群机器人&#xff0c;附带提出的问题&#xff0c;后端接收消息后识别消息内容&#xff0c;读取到关键…...

ffmpeg转码时出现missing picture in access unit with size 14019

使用ffmpeg录制网络流视频&#xff0c;因为网卡的缘故导致录制中断&#xff0c;视频在转换的时候就出现这个问题。 missing picture in access unit with size 14019怀疑是在最后的地方视频是损坏的&#xff0c;索性截取掉最后的2秒时间&#xff0c;原本视频时长是02:06:28&am…...

以Llama-2为例,在生成模型中使用自定义StoppingCriteria

以Llama-2为例&#xff0c;在生成模型中使用自定义StoppingCriteria 1. 前言2. 场景介绍3. 解决方法4. 结语 1. 前言 在之前的文章中&#xff0c;介绍了使用transformers模块创建的模型&#xff0c;其generate方法的详细原理和使用方法&#xff0c;文章链接&#xff1a; 以be…...

servlet接受参数和乱码问题

servlet接受参数和乱码问题 1、乱码问题 1&#xff09;get请求 传输参数出现中文乱码问题&#xff1a; 如果还存在问题&#xff1a; 2&#xff09;post请求 传输参数出现中文乱码问题&#xff1a; 2、接受参数&#xff1a; 3、登录注册案例...

2023-08-05力扣今日三题

链接&#xff1a; 剑指 Offer 22. 链表中倒数第k个节点 题意&#xff1a; 如题 解&#xff1a; 快慢指针 实际代码&#xff1a; #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、我们在前后端传递数据时候&#xff0c;参数多的情况下&#xff0c;常常将这些参数封装成对象&#xff1b;当有些场景你需要使用JPA nativeQuery自定义SQL&#xff0c;要将这个对象insert时候&#xff0c;初学者似乎有点犯难&#xff0c;jpa不是spring-data项目的内容吗&…...

用C语言构建一个数字识别卷积神经网络

卷积神经网络的具体原理和对应的python例子参见末尾的参考资料2.3. 这里仅叙述卷积神经网络的配置, 其余部分不做赘述&#xff0c;构建和训练神经网络的具体步骤请参见上一篇: 用C语言构建一个手写数字识别神经网路 卷积网络同样采用简单的三层结构&#xff0c;包括输入层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

每周汇报&#xff1a;围绕着项目范围及需求内容完成情况多少、人力资源情况、整体进度情况、成本情况、【范围】多少工作、【资源】投入多少人、【时间】花费多少时间、【成本】花了多少钱 【质量】一般没有特别要求的默认软件开发过程规范要求响应时间 【沟通】这里不说了 …...

Mac端口扫描工具

端口扫描工具 Mac内置了一个网络工具 网络使用工具 按住 Command 空格 然后搜索 “网络实用工具” 或 “Network Utility” 即可 域名/ip转换Lookup ping功能 端口扫描 https://zhhll.icu/2022/Mac/端口扫描工具/ 本文由 mdnice 多平台发布...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...