首页 > 其他分享 >如何用 Helm 安装指定版本的 GitLab Runner?

如何用 Helm 安装指定版本的 GitLab Runner?

时间:2024-09-11 15:25:49浏览次数:8  
标签:gitlab 极狐 Runner GitLab runner jh Helm

本分分享如何使用 Helm 来在 Kubernetes 集群上安装极狐GitLab Runner。整体步骤分为:Helm 的安装、vaules.yaml 文件的配置、Runner 的安装、Runner 的测试。

极狐GitLab 为 GitLab 在中国的发行版,中文版本对中国用户更友好。极狐GitLab 支持一键私有化部署,可以在 ubuntu、centos、Debian、Docker、Kubernetes 上灵活安装。安装详情可以查看官方网站

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 配置:

file

选择新建项目 runner

file

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

file

这时候就能看到 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: info

rbac:
  create: true

metrics:
  enabled: false

runners:
  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-runner
  tags: "kubernetes,runner"

securityContext:
  runAsUser: 100
  fsGroup: 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   2m22s

kubectl  -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:

file

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

file

Runner 测试

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

file

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

file

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

file

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

标签:gitlab,极狐,Runner,GitLab,runner,jh,Helm
From: https://www.cnblogs.com/jihugitlab/p/18408305

相关文章

  • 极狐GitLab 新一代容器镜像仓库正式上线啦!
    从极狐GitLab17.3开始,私有化部署实例也可以使用新一代容器镜像仓库啦!新一代容器镜像仓库具有更高效的零宕机垃圾收集功能和其他优势。从去年开始,极狐GitLab就启动了重构容器镜像仓库的计划,用以构建具有更强功能的镜像仓库,比如零宕机垃圾收集。自从将此功能成功迁移到极狐GitL......
  • helm工作原理是什么
    Helm是Kubernetes的包管理工具,类似于Linux的APT或YUM。它允许用户定义、安装和升级应用程序在Kubernetes上的部署。以下是Helm的工作原理和核心概念:1.ChartsChart:Helm中的基本单位,是一个包含Kubernetes资源定义的打包格式。每个Chart都包含一个Chart.yaml......
  • helm chart rollback实现过程是什么?
    HelmChart的回滚(rollback)功能允许用户将应用程序恢复到先前的版本。这一过程涉及多个步骤和关键组件。以下是HelmChart回滚的实现过程:1.Release版本管理每次安装或升级Chart时,Helm会为该Release创建一个新的版本,并将其状态保存在Kubernetes集群中。每个版本包含:......
  • Helm Deploy Online Rancher v2.9.1
    文章目录准备安装查看下载准备$kubectlgetnodeNAMESTATUSROLESAGEVERSIONkube-master01Readycontrol-plane19dv1.29.5kube-node01Ready<none>19dv1.29.5kube-node02Ready<none>19......
  • Gitlab-ce upgrade 16.0.1 to 17.3.1【Gitlab-ce 16.0.1 升级 17.3.1】
    文章目录背景gitlab-ce16.0.1升级17.3.1失败gitlab-ce16.0.1升级16.11.8失败gitlab-ce16.0.1升级16.7.9失败gitlab-ce16.0.1升级16.3.8成功gitlab-ce16.3.8升级16.11.8失败gitlab-ce16.3.8升级16.7.9成功gitlab-ce16.7.9升级16.11.8成功gitlab-ce16.......
  • GitLab管理之迁移GitLab群组
    迁移GitLab群组一、适用对象:迁移极狐GitLab群组包括以下类型:从私有化部署版极狐GitLab迁移到JihuLab.com。从JihuLab.com迁移到私有化部署版极狐GitLab。从一个私有化部署版极狐GitLab实例迁移到另一个。同一极狐GitLab实例中的群组之间的迁移。源实例必须运行1......
  • 如何将 SSH Key 添加到极狐GitLab 中?
    本文分享如何生成SSHKey并添加到极狐GitLab中,然后用SSHKey进行代码拉取。SSHKey对于通过ssh来进行极狐GitLab代码拉取是重要的,完成整个流程一般分为三步:SSHKey的生成添加SSHKey到极狐GitLab中使用ssh克隆代码第一步:生成SSHKey使用ssh-keygen命令来生成SSH......
  • unittest+request+htmltestrunner为什么强于pytest+request+allure?
    关于接口自动化框架python的实现方案,主流的就unittest/pytest+request+htmltestrunner/allure。而unittest库相比于pytest在网上被各个博主喷的体无完肤,没有mark标记共功能,没有用例重跑机制、测试报告不如allure好看功能不如allure强大等等。但是我们深度思考后能否给自己提个......
  • 如何在极狐GitLab中添加 SSH Key?
    本文分享如何生成SSHKey并添加到极狐GitLab中,然后用SSHKey进行代码拉取。**极狐GitLab是GitLab在中国的发行版,可以一键私有化部署,对于中国开发者更友好。详细安装步骤可以查看官网https://dl.gitlab.cn/xed81vsc**。SSHKey对于通过ssh来进行极狐GitLab代码拉取......
  • Q2财报发布|盘后大涨16%!GitLab凭什么?
    9月3日,GitLabInc.(NASDAQ:GTLB)发布第二季度财报,报告显示GitLab第二季度营收同比增长31%,超出预期600万美元左右,GAAP营业利润率同比改善17%!GitLab财报一经发出,盘后股价暴涨16%!这并不是GitLab第一次有如此强劲的表现。GitLab自2021年10月在纳斯达克上市以来,从其对外公开披露的......