轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
github/k8s-actions-runner
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

k8s-actions-runner Docker 镜像下载 - 轩辕镜像

k8s-actions-runner 镜像详细信息和使用指南

k8s-actions-runner 镜像标签列表和版本信息

k8s-actions-runner 镜像拉取命令和加速下载

k8s-actions-runner 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

k8s-actions-runner
github/k8s-actions-runner

k8s-actions-runner 镜像详细信息

k8s-actions-runner 镜像标签列表

k8s-actions-runner 镜像使用说明

k8s-actions-runner 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

用于在Kubernetes集群中部署自托管GitHub Actions运行器,支持自定义执行环境和集群化扩展的Docker镜像。
2 收藏0 次下载activegithub镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

k8s-actions-runner 镜像详细说明

k8s-actions-runner 使用指南

k8s-actions-runner 配置说明

k8s-actions-runner 官方文档

Self Hosted Actions Runner On K8s 技术文档

1. 概述

1.1 镜像概述

self-hosted-k8s-runner 是一个在 Kubernetes 集群中部署自托管 GitHub Actions Runner 的解决方案,旨在提供灵活、可扩展的工作流执行环境。该方案通过容器化方式运行 GitHub Actions Runner,结合 Kubernetes 的编排能力,实现 runners 的动态管理、自动扩缩容及生命周期控制,适用于需要自定义执行环境或对资源、网络有特定要求的场景。

2. 核心功能和特性

2.1 核心功能

  • 动态扩缩容:根据 GitHub Actions 工作流队列长度自动调整 runner 数量,优化资源利用率。
  • 自动注册/注销:runner 启动时自动向 GitHub 注册,停止时自动注销,避免无效 runner 残留。
  • 生命周期管理:支持一次性 runner(完成任务后销毁)或持久化 runner,满足不同工作流需求。
  • 环境隔离:通过 Kubernetes Pod 实现 runner 间的资源隔离,避免工作流相互干扰。

2.2 关键特性

  • GitHub 集成:支持组织、仓库或企业级别的 runner 注册,适配私有/公共仓库。
  • 资源控制:可配置 CPU、内存、GPU 等资源限制,适配计算密集型任务。
  • 安全增强:通过 Kubernetes Secret 管理敏感信息(如 GitHub Token),支持 RBAC 权限控制。
  • 配置灵活:支持自定义 runner 标签、工作目录、网络代理及环境变量注入。

3. 使用场景和适用范围

3.1 适用场景

  • 自定义执行环境:需预装特定工具(如 SDK、数据库、GPU 驱动)的工作流。
  • 资源密集型任务:如 CI/CD 构建、机器学***训练、大数据处理等需高 CPU/内存/GPU 的场景。
  • 网络隔离需求:工作流需访问内部私有服务(如数据库、API)或受防火墙限制的资源。
  • 成本优化:通过动态扩缩容减少闲置资源消耗,降低长期运行成本。

3.2 适用范围

  • GitHub 组织、企业或仓库管理员。
  • 拥有 Kubernetes 集群(v1.19+)的团队或个人。
  • 需要替代 GitHub 托管 runner 以满足自定义需求的用户。

4. 使用方法和配置说明

4.1 部署前准备

4.1.1 依赖环境

  • Kubernetes 集群(v1.19+,支持 CustomResourceDefinitions 和 HPA)。
  • Helm 3.0+(推荐,用于简化部署;或直接使用 kubectl 部署 YAML)。
  • GitHub 访问凭证:
    • 个人访问令牌(PAT):需包含 repo(仓库级)或 admin:org(组织级)权限,用于 runner 注册。
    • (可选)GitHub App 凭证:企业级场景下可使用 App 认证替代 PAT,提升安全性。

4.2 部署步骤

4.2.1 使用 Helm 部署(推荐)

  1. 添加 Helm 仓库

    helm repo add self-hosted-k8s-runner [***]
    helm repo update
    
  2. 创建配置文件
    创建 values.yaml 配置 runner 基本信息(示例内容见 4.4 节):

    github:
      owner: "<your-github-org-or-username>"  # 组织/用户名
      repository: "<your-repo-name>"          # 可选,指定仓库(不填则为组织级 runner)
      token: "<your-github-pat>"              # GitHub PAT(通过 Secret 注入更安全,见 4.3 节)
    runner:
      labels: ["k8s-runner", "custom-label"]  # 自定义标签
      resources:
        requests:
          cpu: "1"
          memory: "2Gi"
        limits:
          cpu: "2"
          memory: "4Gi"
    autoscaling:
      enabled: true
      minReplicas: 1
      maxReplicas: 5
    
  3. 部署 Helm Chart

    helm install my-runner self-hosted-k8s-runner/self-hosted-k8s-runner -f values.yaml --namespace github-runner --create-namespace
    

4.2.2 使用 kubectl 部署(手动配置)

  1. 创建 Secret 存储敏感信息

    # github-secret.yaml
    apiVersion: v1
    kind: Secret
    metadata:
      name: github-runner-secret
      namespace: github-runner
    type: Opaque
    data:
      GITHUB_TOKEN: <base64-encoded-pat>  # 替换为 PAT 的 Base64 编码值
    

    应用配置:

    kubectl apply -f github-secret.yaml -n github-runner
    
  2. 部署 Runner Deployment
    创建 runner-deployment.yaml(核心配置示例):

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: github-runner
      namespace: github-runner
    spec:
      replicas: 2  # 初始 runner 数量
      selector:
        matchLabels:
          app: github-runner
      template:
        metadata:
          labels:
            app: github-runner
        spec:
          containers:
          - name: runner
            image: machinelearningapps/self-hosted-k8s-runner:latest  # 官方镜像
            env:
            - name: GITHUB_OWNER
              value: "<your-github-org>"  # 组织名或用户名
            - name: GITHUB_REPOSITORY
              value: "<your-repo>"        # 可选,指定仓库(不填则为组织级)
            - name: GITHUB_TOKEN
              valueFrom:
                secretKeyRef:
                  name: github-runner-secret
                  key: GITHUB_TOKEN
            - name: RUNNER_LABELS
              value: "k8s,linux,x64"      # 自定义标签
            resources:
              requests:
                cpu: "1"
                memory: "2Gi"
              limits:
                cpu: "2"
                memory: "4Gi"
    

    应用部署:

    kubectl apply -f runner-deployment.yaml -n github-runner
    

4.3 动态扩缩容配置

通过 Kubernetes HPA(Horizontal Pod Autoscaler)实现基于工作流队列的自动扩缩容:

# hpa.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: github-runner-hpa
  namespace: github-runner
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: github-runner
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: External
    external:
      metric:
        name: github_actions_queue_length
        selector:
          matchLabels:
            owner: "<your-github-org>"
            repository: "<your-repo>"  # 可选
      target:
        type: Value
        value: 2  # 每个 runner 处理的队列长度阈值

应用 HPA 配置:

kubectl apply -f hpa.yaml -n github-runner

5. 配置参数详解

5.1 核心环境变量

环境变量名说明必填默认值
GITHUB_OWNERGitHub 组织名或用户名(如 my-org 或 my-user)是-
GITHUB_REPOSITORY目标仓库名(如 my-repo,仅仓库级 runner 需填)否-
GITHUB_TOKENGitHub 个人访问令牌(需 repo 或 admin:org 权限)是-
RUNNER_NAMERunner 名称(支持模板,如 runner-${POD_NAME})否runner-${RANDOM}
RUNNER_LABELS逗号分隔的 runner 标签(如 k8s,linux)否self-hosted
RUNNER_WORK_DIR工作目录路径否/home/runner/_work
RUNNER_EPHEMERAL是否为一次性 runner(完成任务后销毁,true/false)否false
HTTP_PROXY/HTTPS_PROXY网络代理地址(如 [***])否-

5.2 Helm 配置参数(values.yaml)

通过 Helm 部署时,可通过 values.yaml 自定义以下关键参数:

# 基础配置
github:
  owner: "my-org"               # 组织/用户名
  repository: "my-repo"         # 可选,仓库名
  token: ""                     # 建议通过 --set-file 或 Secret 注入

# Runner 配置
runner:
  name: "runner-{{ .Release.Name }}-{{ .Pod.Name }}"  # 名称模板
  labels: "k8s,helm"            # 标签
  ephemeral: false              # 一次性 runner
  workDir: "/home/runner/_work" # 工作目录

# 资源配置
resources:
  requests:
    cpu: "1"
    memory: "2Gi"
  limits:
    cpu: "2"
    memory: "4Gi"

# 扩缩容配置
autoscaling:
  enabled: true                 # 启用 HPA
  minReplicas: 1
  maxReplicas: 10
  targetQueueLength: 2          # 队列长度阈值

6. 部署示例

6.1 Helm 快速部署(组织级 runner)

helm install github-runner self-hosted-k8s-runner/self-hosted-k8s-runner \
  --namespace github-runner --create-namespace \
  --set github.owner=my-org \
  --set github.token=$(cat ./github-pat.txt) \  # 从文件读取 PAT
  --set runner.labels=k8s,org-runner \
  --set autoscaling.enabled=true

6.2 Kubernetes 单仓库 runner 部署 YAML

# 完整部署示例(仓库级 runner)
apiVersion: v1
kind: Namespace
metadata:
  name: github-runner
---
apiVersion: v1
kind: Secret
metadata:
  name: github-runner-secret
  namespace: github-runner
type: Opaque
data:
  GITHUB_TOKEN: <base64-encoded-pat>  # 替换为实际 PAT 的 Base64 编码
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: github-runner
  namespace: github-runner
spec:
  replicas: 2
  selector:
    matchLabels:
      app: github-runner
  template:
    metadata:
      labels:
        app: github-runner
    spec:
      containers:
      - name: runner
        image: machinelearningapps/self-hosted-k8s-runner:latest
        env:
        - name: GITHUB_OWNER
          value: "my-user"
        - name: GITHUB_REPOSITORY
          value: "my-repo"
        - name: GITHUB_TOKEN
          valueFrom:
            secretKeyRef:
              name: github-runner-secret
              key: GITHUB_TOKEN
        - name: RUNNER_LABELS
          value: "repo-runner,linux"
        - name: RUNNER_EPHEMERAL
          value: "true"
        resources:
          requests:
            cpu: "500m"
            memory: "1Gi"
          limits:
            cpu: "1"
            memory: "2Gi"

7. 常见问题

7.1 Runner 注册失败

  • 排查方向:检查 GITHUB_TOKEN 权限(需 repo 或 admin:org)、网络连通性(能否访问 api.github.com)。
  • 解决方法:重新生成 PAT 并确保权限正确,配置代理(若需)。

7.2 扩缩容不触发

  • 排查方向:检查 HPA 配置是否正确、外部指标(如队列长度)是否正常采集。
  • 解决方法:确认 github_actions_queue_length 指标是否可用,调整 HPA 目标阈值。

7.3 任务执行失败

  • 排查方向:查看 runner 容器日志(kubectl logs <pod-name>),检查工作流步骤与 runner 环境是否兼容。
  • 解决方法:通过 RUNNER_LABELS 匹配工作流标签,或自定义 runner 镜像预装依赖。

8. 参考链接

  • GitHub 仓库
  • GitHub Actions Runner 官方文档
  • Kubernetes HPA 文档
查看更多 k8s-actions-runner 相关镜像 →
airbyte/actions-runner logo
airbyte/actions-runner
by Airbyte
认证
暂无描述
10K+ pulls
上次更新:2 年前
circleci/runner logo
circleci/runner
by CircleCI
认证
CircleCI Runner 1.X(Launch Agent)镜像已不再支持CircleCI云,用户应改用circleci/runner-agent:machine-3镜像在Docker容器中运行runner机器作业。
55M+ pulls
上次更新:8 个月前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.