You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitLab CI/CD流水线中运行Kind集群?

在GitLab CI/CD流水线中运行Kind集群的可行方案

核心前提

Kind依赖Docker特权权限创建Kubernetes节点(本质是Docker容器),因此必须让GitLab Runner以特权模式运行,才能在流水线内搭建Kind集群。

具体实现步骤

1. 配置GitLab Runner为特权模式

修改Runner配置文件(通常路径为/etc/gitlab-runner/config.toml),在目标Runner的[[runners]]块中添加:

privileged = true

完成后重启Runner生效:

gitlab-runner restart

2. 编写.gitlab-ci.yml流水线配置

以下是完整的流水线示例,包含依赖安装、集群创建、测试执行的流程:

stages:
  - cluster-test

kind-integration-test:
  stage: cluster-test
  image: docker:latest
  services:
    - docker:dind
  variables:
    DOCKER_HOST: tcp://docker:2376
    DOCKER_TLS_CERTDIR: "/certs"
    KIND_VERSION: v0.20.0
    KUBECTL_VERSION: v1.27.3
  before_script:
    # 安装基础工具与kubectl
    - apk add --no-cache curl
    - curl -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl"
    - chmod +x kubectl && mv kubectl /usr/local/bin/
    # 安装Kind
    - curl -Lo ./kind https://kind.sigs.k8s.io/dl/${KIND_VERSION}/kind-linux-amd64
    - chmod +x ./kind && mv ./kind /usr/local/bin/
  script:
    # 创建Kind测试集群
    - kind create cluster --name test-cluster
    # 验证集群可用性
    - kubectl cluster-info --context kind-test-cluster
    # 执行依赖集群的单元/集成测试
    - echo "运行需Kubernetes环境的测试用例..."
    # 可选:清理集群(流水线结束后容器会自动销毁,此步骤可省略)
    - kind delete cluster --name test-cluster

3. 关键注意事项

  • 资源配额:Kind集群需要足够CPU和内存,需确保Runner所在机器或GitLab托管的Runner配置了充足资源,避免集群启动失败。
  • 版本兼容性:Kind与kubectl版本需匹配,建议选用官方推荐的版本组合,避免兼容性问题。
  • Docker-in-Docker(dind):流水线依赖docker:dind服务提供Docker环境,确保Kind能正常创建容器节点。

内容的提问来源于stack exchange,提问作者Kenny Cason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 17:42:07