使用 k3d 来运行极狐GitLab Runner
目录
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 的使用前提是要有 docker
和 kubectl
环境,安装两者的官网指导安装即可
- 使用
使用 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"
重点是 gitlabUrl
和 runnerRegistrationToken
两个参数,分别对应极狐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相关推荐
- 在 Kubernetes 上安装和运行极狐GitLab实例
目录 写在前面 极狐GitLab 在 Kubernetes 上的安装 前提条件 Chart 准备 values.yaml 定制 Helm 安装 在前面的文章中分别演示了如何用安装包. docker 在 ...
- 极狐GitLab CI/CD关键词(一):脚本script,前置脚本before_script,后置脚本after_script
简介 本篇文章详细介绍了极狐GitLab CI/CD中script,before_script,与after_script三个关键词. 对于一个作业script内容是必填项(trigger 作业除外) ...
- 极狐(GitLab)发布首款“GitNative”DevOps云一体化解决方案
2022年1月5日,极狐(GitLab)正式宣布推出业界首款"GitNative"--"Git原生" DevOps 云一体化解决方案(以下简称"Git ...
- 使用 KubeSphere 和极狐GitLab 打造云原生持续交付系统
KubeSphere 简介 Kubernetes 是一个非常复杂的容器编排平台,学习成本非常高,KubeSphere 所做的事情就是高度产品化和抽象了底层 Kubernetes,是一个面向云原生的操作 ...
- 版本更新 | 极狐 GitLab 15.2 发布飞书通知机器人、多层史诗调整至专业版、实时 Wiki 图表预览和全新设计的合并请求报告
沿袭我们28日发布的传统,今天带来了极狐GitLab 15.2 版本,新功能包括 极狐版专享 - 飞书通知机器人,极狐版专享 - 多层史诗调整至专业版,实时 Wiki 图表预览.事件(Incident ...
- 极狐GitLab 15.3 | issues 中建任务、许可证合规分析,超 30 项更新全面来袭!
沿袭我们月度发布的传统,今天带来了极狐GitLab 15.3 版本,新功能包括议题中的任务.免费的 GitOps 功能.SAML 群组链接的 API 维护.高级密码复杂度要求等. 这些只是该版本中 6 ...
- 实战:从 0 到 1 极狐GitLab CI/CD 前端持续部署
文章目录 写在前面 服务器配置 环境安装 安装 Docker 安装 极狐GitLab 测试 极狐GitLab 极狐GitLab Runner 前端项目 CI/CD 流程的设计 正式开始编写 .gitl ...
- DevSecOps | 极狐GitLab 动态应用程序安全测试(DAST)使用指南
DAST 是 Dynamic Application Security Testing 的缩写,也即动态应用程序安全测试,属于应用程序安全测试的一种,与 SAST 相对应,属于黑盒测试. DAST 的 ...
- 极狐GitLab 和 ArgoCD 的集成实践
极狐GitLab ArgoCD 和 GitOps 概述 ArgoCD 是一款开源且主要针对 Kubernetes 来做 GitOps 的持续交付工具.现在是 CNCF 的孵化项目.其整体架构图如下: ...
- 90%企业在探索的敏捷开发怎么做?极狐GitLab总结了这些逻辑与流程
本文来自: 彭亮 极狐(GitLab) 高级产品经理 毛超 极狐(GitLab) 研发工程师 极狐(GitLab) 市场部内容团队 "敏捷" 是指能够驾驭变化,保持组织竞争优势的一 ...
最新文章
- 市值达 58 亿美元,吴恩达的在线教育平台 Coursera 正式上市
- 第十四课.马尔科夫链
- 想进入系统CMD?请输入密码
- _​_​i​n​t​6​4​ ​与​l​o​n​g​ ​l​o​n​g​ ​i​n​t
- dell笔记本电脑驱动_笔记本电脑摄像头打不开,怎么办?总结经验(基于摄像头本身是完好的)...
- 深度学习---英文名称简写大全
- 阿里巴巴26个前端开源项目
- C#中的多文档的使用
- linux php mysql安装包下载_在linux下手动安装 apache, php, mysql--终极版
- 4固定在底部_有线鼠标之灵魂伴侣,火线竞技4号RGB鼠标线夹
- C语言封顶,我们的大屋顶|阳光方舟2.0--C-HOUSE正式封顶
- 统计学习方法读书笔记10-决策树
- MAC中已有的虚拟环境在pycharm 中进行调用
- 扇贝有道每日一句180904
- unity3d 挂载脚本_Unity3D加载资源的四种方式
- Ardunio程序设计基础 一
- 《聪明人用方格笔记本》读书笔记
- 小程序 报错 errcode: 40029, errmsg: invalid code, hints: [ req_id: HQd79a0747th31 ]
- 这笔投资你算过吗?―写给二本院校的苦逼青年
- 微信公众号实现跟关注用户进行消息的交互功能(2)实现交互功能