如何用 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…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...