2024广东省职业技能大赛云计算赛项实战——集群部署GitLab Runner

集群部署GitLab Runner

前言

题目如下:

部署GitLab Runner
将GitLab Runner部署到gitlab-ci命名空间下,Release名称为gitlab-runner,为GitLab Runner创建持久化构建缓存目录/home/gitlab-runner/ci-build-cache以加速构建速度,并将其注册到GitLab中。

GitLab Runner是GitLab CI/CD架构中的一个组件,用于运行作业(Jobs)并与 GitLab 交互。它可以在不同的操作系统上执行任务,并将结果反馈给 GitLab。

使用的环境是之前搭建的容器云平台:2024广东省职业技能大赛云计算赛项实战——容器云平台搭建-CSDN博客,只有master节点,使用的IP是192.168.200.15/24
并且根据这篇文章的操作部署了GitLab:2024广东省职业技能大赛云计算赛项实战——集群部署GitLab-CSDN博客

操作过程

我们在gitlab的web界面里,点击"Settings"→"CI/CD",找到Runners,点击右边"Expend"展开,查看注册的Token并复制

在这里插入图片描述

回到宿主机

#回到gitlab-ci目录
[root@k8s-master-node1 demo-2048]# cd ../
#解压gitlab-runner压缩包
[root@k8s-master-node1 gitlab-ci]# tar -zxf gitlab-runner-0.43.0.tgz 
[root@k8s-master-node1 gitlab-ci]# ls gitlab-runner/
CHANGELOG.md  Chart.yaml  CONTRIBUTING.md  LICENSE  Makefile  NOTICE  README.md  templates  values.yaml
#修改values.yaml文件
[root@k8s-master-node1 gitlab-ci]# vi gitlab-runner/values.yaml
#修改前:
[root@k8s-master-node1 gitlab-cicd]# awk '!/^[[:space:]]*#/ && !/^([[:space:]]*)?$/' gitlab-runner/values.yaml 
image:registry: registry.gitlab.comimage: gitlab-org/gitlab-runner
imagePullPolicy: IfNotPresent
terminationGracePeriodSeconds: 3600
concurrent: 10
checkInterval: 30
sessionServer:enabled: false
rbac:create: falserules: []clusterWideAccess: falsepodSecurityPolicy:enabled: falseresourceNames:- gitlab-runner
metrics:enabled: falseportName: metricsport: 9252serviceMonitor:enabled: false
service:enabled: falsetype: ClusterIP
runners:config: |[[runners]][runners.kubernetes]namespace = "{{.Release.Namespace}}"image = "ubuntu:16.04"cache: {}builds: {}services: {}helpers: {}
securityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: falserunAsNonRoot: trueprivileged: falsecapabilities:drop: ["ALL"]
podSecurityContext:runAsUser: 100fsGroup: 65533
resources: {}
affinity: {}
nodeSelector: {}
tolerations: []
hostAliases: []
podAnnotations: {}
podLabels: {}
priorityClassName: ""
secrets: []
configMaps: {}
volumeMounts: []
volumes: []
#修改的配置项:
#添加gitlab的地址和注册的token
# gitlabUrl: http://gitlab.your-domain.com/		修改为:
gitlabUrl: "http://192.168.200.15:30880/"
# runnerRegistrationToken: ""	修改为:
runnerRegistrationToken: "GR1348941X_zjBBFn4JzPtDPwdR-8"
# unregisterRunners: true		修改为:
unregisterRunners: true
#启用RBAC,这样才有权限
rbac:create: false		#修改为:create: true
#启用metrics,监控GitLab Runner的性能  
metrics:enabled: false	#修改为enabled: true
#根据题目要求,设置缓存目录  
runners:		#添加配置:cachePath: "/home/gitlab-runner/ci-build-cache"
#修改后:
[root@k8s-master-node1 gitlab-cicd]# awk '!/^[[:space:]]*#/ && !/^([[:space:]]*)?$/' gitlab-runner/values.yaml 
image:registry: registry.gitlab.comimage: gitlab-org/gitlab-runner
imagePullPolicy: IfNotPresent
gitlabUrl: "http://192.168.200.15:30880/"
runnerRegistrationToken: "GR1348941X_zjBBFn4JzPtDPwdR-8"
unregisterRunners: true
terminationGracePeriodSeconds: 3600
concurrent: 10
checkInterval: 30
sessionServer:enabled: false
rbac:create: truerules: []clusterWideAccess: falsepodSecurityPolicy:enabled: falseresourceNames:- gitlab-runner
metrics:enabled: trueportName: metricsport: 9252serviceMonitor:enabled: false
service:enabled: falsetype: ClusterIP
runners:config: |[[runners]][runners.kubernetes]namespace = "{{.Release.Namespace}}"image = "ubuntu:16.04"cachePath: "/home/gitlab-runner/ci-build-cache"cache: {}builds: {}services: {}helpers: {}
securityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: falserunAsNonRoot: trueprivileged: falsecapabilities:drop: ["ALL"]
podSecurityContext:runAsUser: 100fsGroup: 65533
resources: {}
affinity: {}
nodeSelector: {}
tolerations: []
hostAliases: []
podAnnotations: {}
podLabels: {}
priorityClassName: ""
secrets: []
configMaps: {}
volumeMounts: []
volumes: []

部署GitLab Runner

#这里使用helm部署,需要安装docker-compose,在我们先前搭建容器云平台时,添加Harbor仓库的步骤中就有安装了
[root@k8s-master-node1 gitlab-cicd]# helm install gitlab-runner gitlab-runner/ -n gitlab-ci
#检查是否部署成功
[root@k8s-master-node1 gitlab-cicd]# helm ls -A
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
gitlab-runner   gitlab-ci       2               2024-06-25 16:32:45.061864768 +0800 CST deployed        gitlab-runner-0.1.37
#查看是否运行
[root@k8s-master-node1 gitlab-cicd]# kubectl get -n gitlab-ci all
NAME                                               READY   STATUS    RESTARTS      AGE
pod/gitlab-59dc9fc7b4-sl4vt                        1/1     Running   1 (55m ago)   77m
pod/gitlab-runner-gitlab-runner-6f846767bf-69rxc   1/1     Running   0             3m11sNAME             TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/gitlab   NodePort   10.96.125.173   <none>        80:30880/TCP   76mNAME                                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/gitlab                        1/1     1            1           77m
deployment.apps/gitlab-runner-gitlab-runner   1/1     1            1           8m49sNAME                                                     DESIRED   CURRENT   READY   AGE
replicaset.apps/gitlab-59dc9fc7b4                        1         1         1       77m
replicaset.apps/gitlab-runner-gitlab-runner-6f846767bf   1         1         1       3m11s

回到gitlab的web界面,刷新页面,可以看到成功注册了

在这里插入图片描述

后语

至此,这道题目的要求全部满足,可以做下道题——部署GitLab-Agent了。不过据我了解,Agent就是Runner,下道题的要求,实际上是将k8s集群连接到gitlab里。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法与数据结构】【字符串篇】【String的常见函数】

系列文章 本人系列文章-CSDN博客https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5502 1.string基本概念 string是C风格的字符串&#xff0c;而string本质上是一个类。 string和char * 区别&#xff1a; char * 是一个指针 string是一…

Linux操作系统:从入门到精通

前言 Linux操作系统是当今计算机世界中的重要一环。它不仅在服务器和企业级应用中广泛使用&#xff0c;同时也是许多开发者和技术爱好者的首选。本文将带你全面了解Linux操作系统的基础知识、常用命令及其在不同领域的应用。 一、Linux简介 1.1 什么是Linux&#xff1f; Li…

Java常用类2

StringBuffer和StringBuilder StringBuffer与StringBuilder类介绍 StringBuffer是String的对等类&#xff0c;提供了许多字符串功能。您可能知道&#xff0c;String表示长度固定、不可修改的字符序列。与之相对应&#xff0c;StringBuffer表示可增长、可写入的字符序列。Stri…

重写equals为什么要重写hashCode???

当你在Java中重写了equals()方法后&#xff0c;通常建议你也应该重写hashCode()方法。这是基于Java集合框架的设计原则&#xff0c;具体来说是基于Object类中的equals()和hashCode()方法之间的约定。以下是为什么需要这样做的一些关键原因&#xff1a; 一致性原则&#xff1a;…

[Redis]缓存常见问题解决(缓存穿透、击穿、雪崩一文解决!通俗易懂、代码实战!手把手教你解决缓存问题三兄弟!)

Redis常见问题解决 要求 只用一种缓存技术&#xff0c;从实验点中挑一些试验进行试验原理。 1.缓存原理 目标&#xff1a;理解缓存的基本原理和工作机制。 实验步骤&#xff1a; 阅读各缓存技术机制的文档和官方资料。实现一个简单的应用程序&#xff0c;模拟数据的读写和…

音视频入门基础:H.264专题(4)——NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type简介

音视频入门基础&#xff1a;H.264专题系列文章&#xff1a; 音视频入门基础&#xff1a;H.264专题&#xff08;1&#xff09;——H.264官方文档下载 音视频入门基础&#xff1a;H.264专题&#xff08;2&#xff09;——使用FFmpeg命令生成H.264裸流文件 音视频入门基础&…

试析C#编程语言的特点及功能

行步骤&#xff0c;而不必创建新方法。其声明方法是在实例化委托基础上&#xff0c;加一对花括号以代表执行范围&#xff0c;再加一个分号终止语句。 2.3.3 工作原理 C#编译器在“匿名”委托时会自动把执行代码转换成惟一命名类里的惟一命名函数。再对存储代码块的委托进行设…

【C语言】16 位的值,通过几种不同的方式将其拆分为高 8 位和低 8 位

当我们想要将一个16位的 Register_Value 拆分成高8位和低8位&#xff0c;并存储到 Send_Data_Uart5 数组中时&#xff0c;有几种常见的方法可以实现。让我们逐一优化和详细分析每种方法&#xff1a; 方法 1: 使用位移和位掩码&#xff08;常用方法&#xff09; Send_Data_Uar…

Erlang 在处理高并发实时通信场景时,相比其他编程语言有哪些独特的优势和局限性?

Erlang 在处理高并发实时通信场景时具有以下独特的优势&#xff1a; 轻量级进程模型&#xff1a;Erlang 使用轻量级进程模型&#xff0c;每个 Erlang 进程占用非常少的内存&#xff0c;并且可以创建数百万个进程&#xff0c;使得系统可以支持大规模的并发连接。 纯函数式语言&…

最热门的智能猫砂盆好不好用?这期统统告诉你!

身为上班族的我们&#xff0c;常常被工作和出差填满日程。忘记给猫咪铲屎也不是一次两次了。但我们必须意识到&#xff0c;不及时清理猫砂盆不仅会让猫咪感到不适&#xff0c;还可能引发泌尿系统感染、皮肤疾病等健康问题。为了解决这个问题&#xff0c;越来越多的铲屎官开始将…

快速上手golang(持续更新)

由于项目需要&#xff0c;我不得不快速掌握go语言来帮助我进行项目的开发。时间紧迫到我来不及去了解语言的特性就直接项目上手了。我决定就先熟悉一个主流的go框架和go语言的一些日常用法&#xff0c;之后就得滑着这只破船摇摇晃晃上路了。 1 基础命令 就说几个用的多的&…

【Linux】使用信号进行进程间通信

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 ​ ​ 实现原理&a…

[机器学习]-2 经典机器学习算法

一 线性模型 线性模型是机器学习中最基本和最常用的一类模型&#xff0c;假设输出变量是输入变量的线性组合。线性模型在许多实际应用中表现良好&#xff0c;并且为更复杂的模型&#xff08;如非线性模型、深度学习模型&#xff09;奠定了理论基础&#xff1b;优点是简单易懂&…

江苏隆昌化工上线隆道平台 采购管理迎来全面升级

当前&#xff0c;传统产业与数字产业深度加速融合&#xff0c;大数据、云计算、人工智能等新技术推动产业深刻变革&#xff0c;能源化工行业迎来战略转型加速期。数字化转型已成为能源化工企业提升运营效率、控制运营成本、提高产品质量、打造竞争优势的强大引擎。为实现传统采…

在C#中使用事务

文章目录 一、概述1、事务ACID特性2、.NET开发者用到的5种事务机制:二、数据库事务1、不同数据库的事务规则2、数据库事务的优势和限制三、ADO.Net事务四、System.EnterpriseServices自动事务处理五、System.Transactions事务1、显式事务(Explicit Transaction)2、Transacti…

数据库管理-第213期 HaloDB-Oracle兼容性测试03(20240625)

数据库管理213期 2024-06-25 数据库管理-第213期 HaloDB-Oracle兼容性测试03&#xff08;20240625&#xff09;1 索引1.1 B-Tree索引1.2 Hash索引1.3 复合索引1.4 唯一索引1.5 表达式索引1.6 部分索引 2 视图3 表连接3.1 内连接3.2 左/右外连接3.3 全连接清理环境&#xff1a; …

Linux内核测试技术

Linux 内核是Linux操作系统的核心部分&#xff0c;负责管理硬件资源和提供系统调用接口。随着 Linux 内核的不断发展和更新&#xff0c;其复杂性和代码规模也在不断增加。因此&#xff0c;确保内核的稳定性和可靠性变得尤为重要。内核测试技术是实现这一目标的关键手段。本文将…

css中定义鼠标指针样式的属性cursor

在CSS中&#xff0c;cursor 属性用于定义鼠标指针在元素上移动时的样式。它允许你改变默认的鼠标指针样式&#xff0c;以提供关于用户可以进行哪些操作的视觉反馈。 以下是cursor属性的一些常见值和用法&#xff1a; 默认值&#xff1a;auto 这是大多数元素的默认设置。浏览器…

学懂C#编程:常用高级技术——学会C#多线程开发(一)

多线程基本概念 在C#中&#xff0c;多线程允许你同时执行多个代码路径。每个线程代表一个独立的执行流&#xff0c;操作系统可以在不同的处理器核心上并行执行这些线程&#xff0c;或者在单个核心上通过时间分片来模拟并行执行。 关键概念&#xff1a; Thread&#xff1a;代…