如何用 Helm Chart 安装指定版本的 GitLab Runner?
本分分享如何使用 Helm 来在 Kubernetes 集群上安装极狐GitLab Runner。整体步骤分为:Helm 的安装、vaules.yaml 文件的配置、Runner 的安装、Runner 的测试。
极狐GitLab 为 GitLab 在中国的发行版,中文版本对中国用户更友好。极狐GitLab 支持一键私有化部署,可以在 ubuntu、centos、Debian、Docker、Kubernetes 上灵活安装。安装详情可以查看极狐GitLab 官网。
关联阅读
- 如何查看极狐GitLab Helm Chart?
- 如何使用 Helm 安装 GitLab Runner?
Helm 的安装
Helm 的安装非常简单,在官网下载对应版本的安装包,然后解压即可。比如,在 Ubuntu 上安装 3.x 版本,使用如下命令:
# 解压安装包
tar -zxvf helm-v3.15.4-linux-amd64.tar.gz# 将可执行文件拷贝到 /usr/local/bin
cp linux-amd64/helm /usr/local/bin/helm安装后,可用 version或者 help命令进行查看:helm version
version.BuildInfo{Version:"v3.15.4", GitCommit:"fa9efb07d9d8debbb4306d72af76a383895aa8c4", GitTreeState:"clean", GoVersion:"go1.22.6"}接着就可以添加极狐GitLab Runner helm repo 了。# 添加仓库
helm repo add jh-gitlab https://charts.gitlab.cn
"jh-gitlab" has been added to your repositories# 更新仓库
helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "jh-gitlab" chart repository
vaules.yaml 文件的配置
使用 Helm 安装,values.yaml 的配置是非常重要的,该文件会包含一些实际参数,然后安装的时候用这些参数去对 Chart 进行渲染。极狐GitLab Runner Helm chart 中的 vaules.yaml 文件的配置比较多,详情可以查看官网详情。但是必须用到的几个参数如下:
必要配置
- gitlabUrl:极狐GitLab 的实例地址,Runner 安装的过程需要跟该实例进行通信。比如针对极狐GitLab SaaS,该地址为 https://jihulab.com。用户需要根据自身情况,填写真实的极狐GitLab 实例地址;
- runnerToken:极狐GitLab Runner 注册所用的令牌,这个需要自行创建。步骤会在下面讲解。
额外配置
- runners.config:Runner 的一些“个性化”配置,比如使用 s3 存储桶、docker 执行器等。
- rbac:确定是否要创建指定的 Kubernetes rbac。
Runner token 的创建
首先在项目 --> 设置 --> CI/CD中找到 Runner 配置:

选择新建项目 runner

填写必要的信息,诸如标签(tag)、描述、最大作业超时(超过这个时间 Runner 会自动终止作业)。然后选择创建 runner。

这时候就能看到 Runner token 已经存在了 glrt-xRnstJB7UBRHfgcvQVEB。在后面注册 Runner 的时候会用到。上面的截图中也显示了,如果要用 gitlab-runner注册 runner 的话,后面的两个参数就是极狐GitLab 实例地址和 runner token。
runner token 创建出来以后,就可以用下面的 values.yaml 文件用 Helm 进行安装了:
imagePullPolicy: IfNotPresent
gitlabUrl: "http://jhma.jihulab.net"
runnerToken: "glrt-xRnstJB7UBRHfgcvQVEB"
concurrent: 10
checkInterval: 30
logLevel: inforbac:create: truemetrics:enabled: falserunners:config: |[[runners]][runners.kubernetes]namespace = "{{.Release.Namespace}}"image = "ubuntu:22.04"[[runners.kubernetes.volumes.host_path]]name = "docker"mount_path = "/var/run/docker.sock"host_path = "/var/run/docker.sock"privileged: "true"name: kubernetes-runnertags: "kubernetes,runner"securityContext:runAsUser: 100fsGroup: 65533
用 Helm 安装 Runner
使用 helm install即可进行安装,如果要安装特定版本的 Runner,在安装的时候用 --version指定极狐GitLab Runner Helm Chart 的版本即可。
对于极狐GitLab Runenr 的版本查看,可以使用如下命令:
# 查看极狐GitLab Runner 版本
helm search repo -l jh-gitlab/gitlab-runner
NAME CHART VERSION APP VERSION DESCRIPTION
jh-gitlab/gitlab-runner 0.68.1 17.3.1 GitLab Runner
jh-gitlab/gitlab-runner 0.68.0 17.3.0 GitLab Runner
jh-gitlab/gitlab-runner 0.67.0 17.2.0 GitLab Runner
jh-gitlab/gitlab-runner 0.66.0 17.1.0 GitLab Runner
jh-gitlab/gitlab-runner 0.65.0 17.0.0 GitLab Runner
......太长,删除......
jh-gitlab/gitlab-runner 0.41.0 15.0.0 GitLab Runner
jh-gitlab/gitlab-runner 0.40.1 14.10.1 GitLab Runner
jh-gitlab/gitlab-runner 0.40.0 14.10.0 GitLab Runner
jh-gitlab/gitlab-runner 0.39.0 14.9.0 GitLab Runner
比如 0.68.1 的 chart 对应的 runner 是 17.3.1,0.39.0 的 chart 对应的是 14.9.0。我们选择安装 17.3.0 的 runner,对应的 chart 版本为 0.68.0。
使用如下命令进行安装:
helm install --namespace jh-gitlab-runner --create-namespace jh-gitlab-runner -f values.yaml jh-gitlab/gitlab-runner --version 0.68.0
安装日志如下
W0911 06:50:17.636340 639284 warnings.go:70] unknown field "spec.template.spec.containers[0].securityContext.fsGroup"
NAME: jh-gitlab-runner
LAST DEPLOYED: Wed Sep 11 06:50:17 2024
NAMESPACE: jh-gitlab-runner
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Your GitLab Runner should now be registered against the GitLab instance reachable at: "http://jhma.jihulab.net"Runner namespace "jh-gitlab-runner" was found in runners.config template.#############################################################################################
## WARNING: You enabled `rbac` without specifying if a service account should be created. ##
## Please set `serviceAccount.create` to either `true` or `false`. ##
## For backwards compatibility a service account will be created. ##
#############################################################################################
查看安装结果
# helm release 信息
helm ls --all-namespaces
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
jh-gitlab-runner jh-gitlab-runner 1 2024-09-11 06:50:17.139514892 +0000 UTC deployed gitlab-runner-0.68.0# namespace,pod 信息
kubectl get ns jh-gitlab-runner
NAME STATUS AGE
jh-gitlab-runner Active 2m22skubectl -n jh-gitlab-runner get pods
NAME READY STATUS RESTARTS AGE
jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm 1/1 Running 0 2m21s
可以看到 pod 已经处于 running状态。在 runner 的界面上同样可以看到 runner 的状态是 running:

点击运行中的 Runner 就会看到对应的版本信息:

Runner 测试
在极狐GitLab 实例上新建一个项目,在项目中创建 .gitlab-ci.yml文件,即可启用 CI/CD 流水线。例如可以直接在项目的页面上创建 .gitlab-ci.yml文件,然后选择一个 bash 模版:

点击提交更改就会触发 CI/CD 流水线:

点击作业查看构建日志,就可以看到使用的是上面创建的 Runner 在构建作业!

相关文章:
如何用 Helm Chart 安装指定版本的 GitLab Runner?
本分分享如何使用 Helm 来在 Kubernetes 集群上安装极狐GitLab Runner。整体步骤分为:Helm 的安装、vaules.yaml 文件的配置、Runner 的安装、Runner 的测试。 极狐GitLab 为 GitLab 在中国的发行版,中文版本对中国用户更友好。极狐GitLab 支持一键私有…...
el-table使用合计和固定列时,滚动条被覆盖区域无法拖拽问题
pointer-events文档 解决思路为通过pointer-events实现事件穿透,不响应固定列的拖拽,而是响应其子元素的拖拽事件 /deep/.el-table__fixed, /deep/.el-table__fixed-right {pointer-events: none; } /deep/.el-table__fixed *, /deep/.el-table__fixed-…...
【疑难杂症2024-005】docker-compose中设置容器的ip为固定ip后,服务无法启动
本文由Markdown语法编辑器编辑完成。 1.背景: 我们的产品是通过docker image的方式发布,并且编排在docker-compose.yml中发布。在同一个docker-compose.yml中的服务,相互之间,可以通过对方的服务名和端口,来直接访问…...
uView使用心得
说实话我不爱用这个库,感觉很鸡肋,坑很多,可能没用习惯 picker选择器 绑定默认值是通过设置index,并且这个index需要通过api设置进去,设置defalutindex绑定值无效(只有初始化可以,后面动态改变…...
RabbitMQ(高阶使用)死信队列
文章内容是学习过程中的知识总结,如有纰漏,欢迎指正 文章目录 一、什么是死信队列? 二、死信队列使用场景 三、死信队列如何使用 四、打车超时处理 1.打车超时实现 以下是本篇文章正文内容 一、什么是死信队列? 先从概念解释上搞…...
怎么安装docker-compose
使用下列命令下载docker-compose(可选择其他版本) wget https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 --no-check-certificate然后把该文件移动到/usr/local/bin/并重命名 mv docker-compose-linux-x86_…...
【机器学习】--- 自监督学习
1. 引言 机器学习近年来的发展迅猛,许多领域都在不断产生新的突破。在监督学习和无监督学习之外,自监督学习(Self-Supervised Learning, SSL)作为一种新兴的学习范式,逐渐成为机器学习研究的热门话题之一。自监督学习…...
【Linux修行路】网络套接字编程——UDP
目录 ⛳️推荐 前言 六、Udp Server 端代码 6.1 socket——创建套接字 6.2 bind——将套接字与一个 IP 和端口号进行绑定 6.3 recvfrom——从服务器的套接字里读取数据 6.4 sendto——向指定套接字中发送数据 6.5 绑定 ip 和端口号时的注意事项 6.5.1 云服务器禁止直接…...
哈希表数据结构学习
哈希表数据结构学习 哈希表基本概念哈希方法单值哈希与多值哈希哈希冲突1. 开放寻址法(Open Addressing)2. 链地址法(Chaining)3. 再哈希法(Rehashing)4. 建立公共溢出区(Overflow Area…...
数据结构——“二叉搜索树”
二叉搜索树是一个很重要的数据结构,它的特殊结构可以在很短的时间复杂度找到我们想要的数据。最坏情况下的时间复杂度是O(n),最好是O(logn)。接下来看一看它的接口函数的实现。 为了使用方便,这里采用模版的方式: 一、节点 temp…...
Java零基础-Java对象详解
哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互…...
从Prompt到创造:解锁AI的无限潜能
文章目录 🍊AI内容创作核心:提示词Prompt1 什么是提示词工程?1.1 提示词的原理是什么?1.2 提示词工程师:百万年薪的职业?1.3 谁都能成为提示词工程师吗? 2 提示词书写的基本技巧3 常见的提示词框架3.1 CO-…...
sqlgun靶场攻略
打开界面 1.输入框测试回显点 -1union select 1,2,3#出现回显点 2.查看数据库名 -1union select 1,2,database()# 3.查看表名 -1union select 1,2,group_concat(table_name) from information_schema.tables where table_schemasqlgunnews# 4.查看admin表中列名 -1union se…...
《网络协议 - HTTP传输协议及状态码解析》
文章目录 一、HTTP协议结构图二、HTTP状态码解读1xx: 信息响应类2xx: 成功响应类3xx: 重定向类4xx: 客户端错误类5xx: 服务器错误类 一、HTTP协议结构图 二、HTTP状态码解读 HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传…...
9.11 QT ( Day 4)
一、作业 1.Widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> //定时器类 #include <QTime> #include <QtTextToSpeech> //文本转语音类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEcl…...
利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(四)
简介 随着生成式人工智能的兴起,传统的 BI 报表功能已经无法满足用户对于自动化和智能化的需求,今天我们将介绍亚马逊云科技平台上的AI驱动数据可视化神器 – Quicksight,利用生成式AI的能力来加速业务决策,从而提高业务生产力。…...
2024.9最新:CUDA安装,pytorch库安装
目录 一、CUDA安装 1.查看自己电脑适配的CUDA的最高版本 2.安装CUDA 3.检查环境变量是否配置,安装是否成功 二、pytorch库安装 1.pytorch库下载 2.选择合适的版本 3.查看版本 一、CUDA安装 1.查看自己电脑适配的CUDA的最高版本 在命令提示符里输入nvidia-…...
Vue3.0组合式API:setup()函数
1、什么是组合式API Vue 3.0 中新增了组合式 API 的功能,它是一组附加的、基于函数的 API,可以更加灵活地组织组件代码。通过组合式 API 可以使用函数而不是声明选项的方式来编写 Vue 组件。因此,使用组合式 API 可以将组件代码编写为多个函…...
利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(三)
简介 随着生成式人工智能的兴起,传统的 BI 报表功能已经无法满足用户对于自动化和智能化的需求,今天我们将介绍亚马逊云科技平台上的AI驱动数据可视化神器 – Quicksight,利用生成式AI的能力来加速业务决策,从而提高业务生产力。…...
2022高教社杯全国大学生数学建模竞赛C题 问题一(1) Python代码演示
目录 问题 11.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析数据探索 -- 单个分类变量的绘图树形图条形图扇形图雷达图Cramer’s V 相关分析统计检验列联表分析卡方检验Fisher检验绘图堆积条形图分组条形图分类模型Logistic回归随机森林import matplotlib…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...
