使用 k3d 来运行极狐GitLab Runner

K3S+K3D=K8S 开发利器快速入门 最近在做服务私有化建设这块,对于物理机能轻量化进行容器资源管理和对服务运维,k3s还是比较合适的。对于新鲜事物,作为非运维的我还是迫切想解并搞个demo出来尝尝鲜。 阅读详情

目录

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/proxy

To 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: info

rbac:
  create: true

metrics:
  enabled: false

runners:
  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-runner
  tags: "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 构建日志来确认:


 

 

 

 

CI_CD 部署流程docker+gitlab+runner+k3s;包含rancher安装管理集群 一、安装 GitLab。 阅读详情

相关推荐

在Claude Code里跑DeepSeek-V4-Pro?真相与可行替代方案

大模型本地部署与工具集成是当前开发者的核心能力,涉及模型运行环境、推理引擎兼容性及量化部署等基础概念。其技术原理在于宿主平台是否提供可扩展的执行沙箱(如API接入、插件机制或模型加载接口),而SaaS类AI工具通常采用黑盒服务架构,不开放底层控制权。这种限制凸显了对模型可移植性、格式标准化(GGUF/AWQ)和轻量级运行时(Ollama/llama.cpp)的技术价值。典型应用场景包括VS Code代码补全、CI/CD自动化生成及跨平台本地推理——当闭源服务不可定制,掌握DeepSeek-Coder-V2等

weixin_30460489的博客 438

gitlab-ci 集成 k3s 部署spring boot 应用

gitlab-ci 集成 k3s 部署spring boot 应用

1992

免费申请IBM LinuxONE服务器:从架构差异到实战部署全指南

在云计算与服务器架构领域,理解不同硬件平台的特性和兼容性是开发者必备的技能。x86架构虽占据主流,但以高可靠性和安全性著称的IBM Z架构(s390x)在企业核心系统中扮演关键角色。其技术价值在于为关键负载提供极致的稳定性和纵向扩展能力,尤其适用于金融、交易等对数据一致性要求极高的场景。随着云原生和容器化技术的普及,跨平台部署成为常态,开发者需要掌握在异构架构上适配软件生态的方法。本文聚焦于如何免费申请并配置IBM LinuxONE云实例,这是一个基于Z架构但原生运行Linux的服务器平台。通过实操演示,你

weixin_33801856的博客 345

k3s x GitLab Runner Operator,GitLab CI 云原生构建新体验

k3s x GitLab Runner Operator,GitLab CI 云原生构建新体验

DevOps008的博客 1700

DeepSeek-Coder-V2本地部署实战:Ollama+Python代码生成全链路指南

代码生成模型正从云端API走向本地可执行的工程现实。其核心原理在于MoE(专家混合)架构与Q4_0量化技术的协同优化——前者通过动态路由激活少量专家实现高推理密度,后者在4-bit精度下最大限度保全代码逻辑正确性。这种轻量高能的技术组合,显著降低了大模型对GPU显存与网络连接的依赖,使消费级硬件(如RTX 4070)也能稳定运行16B级专业代码模型。典型应用场景包括VS Code离线补全、企业私有代码库协同开发、Python零基础实时教学等。本文聚焦ollama部署全流程,覆盖镜像加速、FIM模板配置、VS

weixin_30876945的博客 397

Ubuntu 22.04服务器初始化:Ansible安全加固实战指南

服务器初始化是将裸机转化为可审计、可复现、可漂移的基础设施单元的关键过程。其核心原理在于操作系统启动后第一时间完成身份认证、权限锁定、网络边界定义与服务注册四重锚定,而非简单安装系统。技术价值体现在消除人工操作导致的配置漂移、权限失控与安全遗漏,显著降低运维风险与重复成本。典型应用场景包括云服务器批量部署、混合环境(AWS/VMware)统一纳管、CI/CD流水线自动化交付。本文聚焦Ubuntu 22.04 LTS(Jammy Jellyfish)这一广泛使用的长期支持版本,深度结合Ansible Play

weixin_30572613的博客 431

【亲测免费】 K-3D: 一款强大的3D建模和可视化工具

K-3D: 一款强大的3D建模和可视化工具 K-3D是一款开源的3D建模和可视化工具,可以帮助用户创建、编辑和展示三维模型。它的功能强大,易用性高,支持多种插件和脚本语言,使用户能够轻松地实现复杂的3D场景设计。 功能与用途 K-3D提供了丰富的建模工具,包括基本几何体生成、变形、布尔运算等,可让用户快速创建出所需的3D模型。此外,它还支持多种渲染模式,如光线跟踪、阴影、反射等,让用户可以对3D模...

gitblog_00033的博客 1126

Qwen3.6-Plus实操指南:从零部署到生产级AI工作流

大语言模型的实用化核心在于‘可靠交付’而非参数堆砌。Qwen3.6-Plus通过语义感知型补全、任务导向型生成与闭环式执行反馈三层能力栈,显著提升代码生成准确率与可部署性;其100万Token长上下文并非数字噱头,而是依托分块注意力锚定技术实现跨页信息保真,大幅降低幻觉率。在文档解析、多模态结构化提取、视觉意图理解等真实场景中已验证工业级鲁棒性。本文聚焦免GPU、免Docker的轻量接入路径,覆盖OpenRouter快速试用与阿里云百炼企业级部署双方案,并提供Cherry Studio与openclaw客户

weixin_34406086的博客 321

用 K3s 来运行安装和极狐 GitLab Runner

使用 K3s 来安装和运行极狐GitLab Runner。

GitLab 中国发行版 1765

使用 k3d 在Windows上安装 k3s

记述了windowns 下使用k3d安装 k3s 的方法,以便学习

小子宝丁的博客 3919

【信息科学与工程学】计算机科学与自动化—第十五篇 云计算 11 算法篇02

但若第一个应用需求40GB/s,第二个10GB/s,总需求50GB/s>40GB/s,第一个得32GB/s,第二个得8GB/s,不公平。但若分区负载不均(分区1-2各有100任务/s,分区3-4各有50任务/s),A负责1-2(200/s),B负责3-4(100/s),仍均衡。任务 τi​ 的计算需求 Wi​(CPU周期),在频率 f 下执行时间 Ti​=Wi​/f,能耗 Ei​=Pdyn​⋅Ti​=Ceff​⋅V2⋅f⋅(Wi​/f)=Ceff​⋅V2⋅Wi​。若 Mneed​>Mi​,需使用远程显存。

weixin_49199313的博客 110

Kubernetes

habor,master,node1,node2都要做“1.安装docker” 1.安装docker 2.在harbor上生成key 3.编辑harbor配置文件 4.启动并验证 2.构建部署kubernetes所需主机 主机名 ip 配置 角色 harbor.timinglee.org 172.25.254.254 cpu1、mem 1G harbor仓库 master-node 172.25.254.100 cpu4、mem>4G master,k8s集群控制节点 node1 1

2301_81717288的博客 521

【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04

编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017)

weixin_49199313的博客 413

AI智能体安全:从能力溢出到防御策略的工程实践

在人工智能技术快速发展的背景下,AI智能体作为能够自主规划、执行复杂任务的系统,其安全风险日益凸显。这类系统通常基于大语言模型构建,通过工具调用和环境交互实现目标,其核心原理在于将高级任务分解为可执行步骤。然而,这种自主性带来了新的安全挑战,即“能力溢出”风险——智能体可能在执行预设任务时,利用合法工具组合出开发者未预期的行为序列,例如建立隐蔽通信通道、进行横向移动或长期潜伏。从技术价值看,理解并管理这种风险对于保护代码仓库、API密钥和模型资产至关重要。在实际应用场景中,开发者日常使用的GitHub、Hu

weixin_30315723的博客 843

Cadence Allegro16.6怎么导出器件引脚信息的报告

当我们需要用到器件的引脚相关信息时,可以利用allegro中的reports这个功能导出器件的相关信息。下面是具体的操作步骤。

suyucheng66的博客 5775

Scratch(四十一):升级版垃圾分类

哈喽,大家好!之前给大家展示过“Scratch(二十四):垃圾分类”。今天呢,给大家展示的Scratch是`升级版垃圾分类`。接下来,我们一起看一下效果吧。

我可以很大侠的博客 6871

树莓派AI集群构建:3000美元投入的性价比反思与替代方案

分布式计算系统通过将计算任务分解到多个节点协同处理,旨在提升整体处理能力和资源利用率。其核心原理在于任务调度、节点间通信与数据同步机制。在AI和高性能计算领域,分布式架构能有效应对大规模模型训练与复杂科学计算需求。然而,硬件选型与架构设计直接影响系统效能,尤其在边缘计算和轻量级部署场景中,ARM架构设备常被考虑。本文基于树莓派Compute Module 5集群的构建实践,深入剖析了在AI推理和HPC场景下,ARM集群面临的性能瓶颈、通信开销与软件生态挑战,并与x86平台进行了对比,为技术选型提供参考。

djph26741的博客 764

边缘智能新篇章:RK3588上YOLOv8姿态估计的轻量化部署与性能优化实战

本文详细介绍了在RK3588平台上部署和优化YOLOv8姿态估计模型的完整流程。通过模型转换、ONNX中间表示和性能优化策略,实现在边缘设备上的高效实时推理,为嵌入式AI应用提供可行的轻量化解决方案。

ik6789012的博客 154

别啃晦涩官方文档!吃透 K8s 权限、可视化面板、动态 PV、有状态应用全流程笔记!

本文完整讲解K8sRBAC之ClusterRole/ClusterRoleBinding、ServiceAccount服务账号原理与实操;演示Kuboard、Kubernetes‑Dashboard两大Web可视化面板部署登录;详解StorageClass动态存储制备,实战Local‑Path、NFS‑Provisioner自动创建 PV;深入StatefulSet有状态控制器,对比Deployment,Headless Service原理,完整部署Nginx、ETCD、Redis 集群。

Augustsky12138的博客 495

多标签分类怎么做?(Python)

首先简单介绍下,多标签分类与多分类、多任务学习的关系: 多分类学习(Multi-class):分类器去划分的类别是多个的,但对于每一个样本只能有一个类别,类别间是互斥的。例如:分类器判断这只动物是猫、狗、猪,每个样本只能有一种类别,就是一个三分类任务。常用的做法是OVR、softmax多分类

y1282037271的博客 1360

PyQtWebEngine安装避坑指南:快速解决ModuleNotFoundError

本文详细解析了PyQt5开发中常见的ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'错误。核心原因是PyQt5 5.11版本后,网页引擎组件被独立为PyQtWebEngine包。文章对比了退回旧版本、独立安装及使用Conda等多种解决方案,并提供了针对Windows、macOS和Linux不同平台的实战安装指南与验证方法,帮助开发者快速解决依赖问题。

weixin_29056101的博客 428

为你的 GitLab 项目使用 k3s 集群

开篇点题k3s 是一个轻量级的 Kubernetes 发行版(小于 40 MB),它非常容易安装,仅需要 512 MB 的 RAM。对 IoT 设备、边缘计算以及运行 CI 任务来说均是...

Jenkins中文社区 1266

Qt C++ bridge模式(桥)

Bridge模式使得抽象和实现能够相对独立。 bridge.h #pragma once #include class CImplementor { public: virtual void operateImp() = 0; }; class CRectImplementor : public CImplementor { public: CR

thinkme2010的专栏 1894

极狐Gitlab使用(1)

极狐(JiHu)GitLab 是一个基于 GitLab 的定制版本,专门针对中国用户进行了优化和定制。它通常包含了一些适应中国特殊网络环境的调整,比如加速访问和稳定性优化等。使用极狐 GitLab 与标准 GitLab 的主要区别在于性能和网络访问方面的改进。

Lzcsfg的博客 2944

CTP Python API及Demo(利用Swig 封装)Windows版(6.6.1traderapi)

环境:visual studio2015、python3.9、 参考的是景色大神的教程自己制作,因为直接用它编译好的无法使用,遂自己编译。 从CTP官网上下载CTP API点击下载。这里用的版本是v6.6.1_P1_tradeapi,想使用不同的版本下载即可: 安装Swig软件,本文中所用的Swig是swigwin-4.0.2版本,点击下载。下载后解压,将swig路径添加到环境变量中。 安装python,注意要安装64位版本,将环境变量配置好。本文所用的是3.9版本。 通过Swig得到pyth.

ProgramVAE的博客 2544

基于Python的房地产评估数据抓取与分析 —— 房价走势与市场报告

在房地产行业中,了解和分析房产价格的变化趋势、各个地区的房价差异以及市场评价报告,可以帮助投资者、购房者以及政策制定者做出更加明智的决策。本文介绍了如何使用Python爬虫技术抓取房地产平台上的房产评估报告、价格走势等数据,并对抓取的数据进行分析。通过这些技术,您可以自动化抓取房地产平台的数据,分析房价走势,获取市场报告,为房地产投资决策提供数据支持。假设我们要从链家网抓取某个房产的价格、房产描述以及历史成交价格,首先需要获取目标房产页面的URL,并发送HTTP请求。伪装为常见浏览器,避免被识别为爬虫。

2201_76125261的博客 848
上一篇: 利用极狐GitLab DevSecOps 功能检测 log4j 的多种方式
下一篇: 用 Tekton 来构建镜像并推送到极狐GitLab 私有仓库
DevOps008
博客等级 码龄8年 75粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值