目录

k3d

k3d 的安装

k3d 的使用

极狐GitLab Runner

用 k3d 运行极狐GitLab Runner

Helm 的安装

极狐GitLab Runner 的安装

极狐GitLab CI/CD

k3d

k3d是一个轻量级的包装器,主要用于在 docker 中运行 k3s(k3s 是 Rancher Lab 发行的一个轻量级的 Kubernetes 发行版)。借助 k3d 可以很方便的快速创建一个单节点或多节点的 k3s集群,方便在本地的 Kubernetes 集群上进行开发。

k3d 的安装

k3d 的安装非常简单,在其官网上有非常详细的安装教程。本文使用脚本的方式来安装最新版本,执行如下命令即可:

$ curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash

可以用 --version--help 来查看安装是否成功:

$  k3d --version
k3d version v5.4.1
k3s version v1.22.7-k3s1 (default)

k3d 的使用

  • 前提

k3d 的使用前提是要有 dockerkubectl 环境,安装两者的官网指导安装即可

  • 使用

使用 k3d 快速创建一个 Kubernetes 集群:

$ k3d cluster create devops-is-shit
INFO[0000] Prep: Network
INFO[0000] Created network 'k3d-devops-is-shit'
INFO[0000] Created image volume k3d-devops-is-shit-images
INFO[0000] Starting new tools node...
INFO[0001] Creating node 'k3d-devops-is-shit-server-0'
INFO[0002] Pulling image 'ghcr.io/k3d-io/k3d-tools:5.4.1'
INFO[0010] Pulling image 'docker.io/rancher/k3s:v1.22.7-k3s1'
INFO[0089] Creating LoadBalancer 'k3d-devops-is-shit-serverlb'
INFO[0091] Pulling image 'ghcr.io/k3d-io/k3d-proxy:5.4.1'
INFO[0134] Starting Node 'k3d-devops-is-shit-tools'
INFO[0338] Using the k3d-tools node to gather environment information
INFO[0338] HostIP: using network gateway 172.18.0.1 address
INFO[0338] Starting cluster 'devops-is-shit'
INFO[0338] Starting servers...
INFO[0338] Starting Node 'k3d-devops-is-shit-server-0'
INFO[0343] All agents already running.
INFO[0343] Starting helpers...
INFO[0343] Starting Node 'k3d-devops-is-shit-serverlb'
INFO[0350] Injecting records for hostAliases (incl. host.k3d.internal) and for 2 network members into CoreDNS configmap...
INFO[0352] Cluster 'devops-is-shit' created successfully!
INFO[0352] You can now use it like this:
kubectl cluster-info

可以查看创建集群的信息:

$ kubectl cluster-info
Kubernetes control plane is running at https://0.0.0.0:33237
CoreDNS is running at https://0.0.0.0:33237/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Metrics-server is running at https://0.0.0.0:33237/api/v1/namespaces/kube-system/services/https:metrics-server:https/proxyTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.$ kubectl get nodes
NAME                          STATUS   ROLES                  AGE   VERSION
k3d-devops-is-shit-server-0   Ready    control-plane,master   13m   v1.22.7+k3s1

接下来就可以体验这个集群了。

极狐GitLab Runner

极狐GitLab Runner 是极狐GitLab 实现 CI/CD 的执行器,每当有 CI/CD Pipeline 需要构建时,就会根据调度来选择一个 Runner 执行此次 CI/CD Pipeline 的构建。可以选择极狐GitLab默认的 Runner,但是很多都是共享 Runner,在使用高峰期会碰到排队的情况,需要等待。通过自建 Runner 来解决这个问题,而且自建 Runner 可以自己随意嚯嚯。下面就给大家演示一下如何在 k3d 环境上安装和运行极狐GitLab Runner。

用 k3d 运行极狐GitLab Runner

Helm 的安装

在 k3d 上安装极狐GitLab Runner 本质上就是在 Kubernetes 集群上进行安装,所以 Helm 是很好的选择,必须要先安装 Helm。

可以根据Helm 官网的指导来完成 Helm 的安装,并进行确认:

$ helm version
version.BuildInfo{Version:"v3.7.1", GitCommit:"1d11fcb5d3f3bf00dbe6fe31b8412839a96b3dc4", GitTreeState:"clean", GoVersion:"go1.16.9"}

极狐GitLab Runner 的安装

  • 极狐GitLab Runner Helm Repo 的添加
$ helm repo add k3d-jh https://charts.gitlab.io
"k3d-jh" has been added to your repositories
  • 定制 values.yaml

通过修改 values.yaml 文件来制定安装极狐GitLab Runner 所必须的一些参数:

imagePullPolicy: IfNotPresent
gitlabUrl: "https://jihulab.com"
runnerRegistrationToken: "jh-runner-register-token"
concurrent: 10
checkInterval: 30
logLevel: inforbac:create: truemetrics:enabled: falserunners:config: |[[runners]][runners.kubernetes]namespace = "{{.Release.Namespace}}"image = "ubuntu:20.04"[[runners.kubernetes.volumes.host_path]]name = "docker"mount_path = "/var/run/docker.sock"host_path = "/var/run/docker.sock"privileged: "true"name: k3d-runnertags: "jh,k3d,runner"

重点是 gitlabUrlrunnerRegistrationToken 两个参数,分别对应极狐GitLab instance 以及 Runner 的注册 Token,这个可以通过 Porject --> Settings --> CI/CD --> Runner 来找到:

  • 安装极狐GitLab Runner

执行如下命令即可完成极狐GitLab Runner 的安装:

$ helm install --namespace k3d-jh-runner k3d-jh-runner --create-namespace -f values.yaml k3d-jh/gitlab-runner
NAME: k3d-jh-runner
LAST DEPLOYED: Thu Apr 21 15:04:25 2022
NAMESPACE: k3d-jh-runner
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Your GitLab Runner should now be registered against the GitLab instance reachable at: "https://jihulab.com"Runner namespace "k3d-jh-runner" was found in runners.config template.

可以在 k3d-jh-runner 这个 namespace 下面查看 pod:

$ kubectl -n k3d-jh-runner get pods -w
NAME                                           READY   STATUS     RESTARTS   AGE
k3d-jh-runner-gitlab-runner-5f59b8d4c7-p6vn6   0/1     Init:0/1   0          17s
k3d-jh-runner-gitlab-runner-5f59b8d4c7-p6vn6   0/1     PodInitializing   0          26s
k3d-jh-runner-gitlab-runner-5f59b8d4c7-p6vn6   0/1     Running           0          27s
k3d-jh-runner-gitlab-runner-5f59b8d4c7-p6vn6   1/1     Running           0          40s

当 pod 的状态是 Running 时,就可以在极狐GitLab Runner 界面查看新安装的 Runner。依旧在 Project --> Settings --> CI/CD --> Runner 界面:

可以看到 ID 为 1575,名称为 k3d-runner,tag 为 k3d、jh、runner 的 Runner 正在运行,说明 Runner 安装成功。接下来就可以使用了。

极狐GitLab CI/CD

在项目中添加一个 .gitlab-ci.yml 文件即可开启极狐GitLab CI/CD,在初次添加的时候,可以选择一个模版:

添加的时候,注意在每个 stage 中添加如下内容:

tags:- k3d 

添加上面的内容就会使用前面用 k3d 安装的 Kubernetes 上的 Runner 来执行此次 CI/CD 构建了(原因是匹配到了 Runner 的 tag)。可以通过查看 CI/CD 构建日志来确认:

使用 k3d 来运行极狐GitLab Runner相关推荐

  1. 在 Kubernetes 上安装和运行极狐GitLab实例

    目录 写在前面 极狐GitLab 在 Kubernetes 上的安装 前提条件 Chart 准备 values.yaml 定制 Helm 安装 在前面的文章中分别演示了如何用安装包. docker 在 ...

  2. 极狐GitLab CI/CD关键词(一):脚本script,前置脚本before_script,后置脚本after_script

    简介 本篇文章详细介绍了极狐GitLab CI/CD中script,before_script,与after_script三个关键词. 对于一个作业script内容是必填项(trigger 作业除外) ...

  3. 极狐(GitLab)发布首款“GitNative”DevOps云一体化解决方案

    2022年1月5日,极狐(GitLab)正式宣布推出业界首款"GitNative"--"Git原生" DevOps 云一体化解决方案(以下简称"Git ...

  4. 使用 KubeSphere 和极狐GitLab 打造云原生持续交付系统

    KubeSphere 简介 Kubernetes 是一个非常复杂的容器编排平台,学习成本非常高,KubeSphere 所做的事情就是高度产品化和抽象了底层 Kubernetes,是一个面向云原生的操作 ...

  5. 版本更新 | 极狐 GitLab 15.2 发布飞书通知机器人、多层史诗调整至专业版、实时 Wiki 图表预览和全新设计的合并请求报告

    沿袭我们28日发布的传统,今天带来了极狐GitLab 15.2 版本,新功能包括 极狐版专享 - 飞书通知机器人,极狐版专享 - 多层史诗调整至专业版,实时 Wiki 图表预览.事件(Incident ...

  6. 极狐GitLab 15.3 | issues 中建任务、许可证合规分析,超 30 项更新全面来袭!

    沿袭我们月度发布的传统,今天带来了极狐GitLab 15.3 版本,新功能包括议题中的任务.免费的 GitOps 功能.SAML 群组链接的 API 维护.高级密码复杂度要求等. 这些只是该版本中 6 ...

  7. 实战:从 0 到 1 极狐GitLab CI/CD 前端持续部署

    文章目录 写在前面 服务器配置 环境安装 安装 Docker 安装 极狐GitLab 测试 极狐GitLab 极狐GitLab Runner 前端项目 CI/CD 流程的设计 正式开始编写 .gitl ...

  8. DevSecOps | 极狐GitLab 动态应用程序安全测试(DAST)使用指南

    DAST 是 Dynamic Application Security Testing 的缩写,也即动态应用程序安全测试,属于应用程序安全测试的一种,与 SAST 相对应,属于黑盒测试. DAST 的 ...

  9. 极狐GitLab 和 ArgoCD 的集成实践

    极狐GitLab ArgoCD 和 GitOps 概述 ArgoCD 是一款开源且主要针对 Kubernetes 来做 GitOps 的持续交付工具.现在是 CNCF 的孵化项目.其整体架构图如下: ...

  10. 90%企业在探索的敏捷开发怎么做?极狐GitLab总结了这些逻辑与流程

    本文来自: 彭亮 极狐(GitLab) 高级产品经理 毛超 极狐(GitLab) 研发工程师 极狐(GitLab) 市场部内容团队 "敏捷" 是指能够驾驭变化,保持组织竞争优势的一 ...

最新文章

  1. 市值达 58 亿美元,吴恩达的在线教育平台 Coursera 正式上市
  2. 第十四课.马尔科夫链
  3. 想进入系统CMD?请输入密码
  4. _​_​i​n​t​6​4​ ​与​l​o​n​g​ ​l​o​n​g​ ​i​n​t
  5. dell笔记本电脑驱动_笔记本电脑摄像头打不开,怎么办?总结经验(基于摄像头本身是完好的)...
  6. 深度学习---英文名称简写大全
  7. 阿里巴巴26个前端开源项目
  8. C#中的多文档的使用
  9. linux php mysql安装包下载_在linux下手动安装 apache, php, mysql--终极版
  10. 4固定在底部_有线鼠标之灵魂伴侣,火线竞技4号RGB鼠标线夹
  11. C语言封顶,我们的大屋顶|阳光方舟2.0--C-HOUSE正式封顶
  12. 统计学习方法读书笔记10-决策树
  13. MAC中已有的虚拟环境在pycharm 中进行调用
  14. 扇贝有道每日一句180904
  15. unity3d 挂载脚本_Unity3D加载资源的四种方式
  16. Ardunio程序设计基础 一
  17. 《聪明人用方格笔记本》读书笔记
  18. 小程序 报错 errcode: 40029, errmsg: invalid code, hints: [ req_id: HQd79a0747th31 ]
  19. 这笔投资你算过吗?―写给二本院校的苦逼青年
  20. 微信公众号实现跟关注用户进行消息的交互功能(2)实现交互功能

热门文章

  1. wireshark win7无响应
  2. python期权定价公式_一揽子欧洲期权蒙特卡洛定价(python)(一)
  3. Screenie for Mac(Mac截图工具)
  4. 720P、1080P、4K是什么意思?
  5. php如何发送短信,PHP发送短信功能
  6. Windows中如何对电脑硬盘进行分区
  7. 在美国租房子需要考虑什么问题?
  8. 用python画滑稽表情_Python-画一个滑稽
  9. foxmail超大附件密码不对的解决办法
  10. 定义复数java_自定义数据类型 复数的Java实现