【问题标题】:How does gitlab-ci works internally with gitlab runner?gitlab-ci 如何在内部与 gitlab runner 一起工作?
【发布时间】:2019-11-03 10:09:27
【问题描述】:

我有一些关于gitlab-cirunner 的具体问题:

  1. 如果我的特定运行器是在 kubernetes 集群中配置的,那么代码镜像如何从 Gitlab 代码存储库中发生到运行器中

  2. 在 Kubernetes 集群中配置运行器时,构建如何在运行器中进行?

  3. 在我的 .gitlab-ci.yml 中使用任何 docker 镜像时,运行程序如何拉取这些镜像以及“script”标签中提到的命令如何执行到这些 docker 容器中? runner 是否使用 .gitlab-ci.yml 中提到的镜像在 kubernetes 集群(配置 runner)中创建 pod,并在这些容器中执行命令?

  4. 非常感谢任何关于 Gitlab runner 如何在内部工作的学习材料的额外解释或参考。

【问题讨论】:

    标签: docker kubernetes gitlab-ci gitlab-ci-runner


    【解决方案1】:

    我假设当您说 GitLab Runner 是在 Kubernetes 中配置时,您的意思是您正在使用 Kubernetes 执行程序。我标记了与您的问题相关的部分。

    (1) GitLab CI 从存储库中提取代码(如果公开,这不是问题,但您也可以使用private registry)。基本上,辅助映像用于克隆存储库并将任何工件下载到容器中。

    Kubernetes 执行器允许您使用现有的 Kubernetes 集群来执行管道/构建步骤,方法是调用 Kubernetes 集群 API 并创建一个新 Pod,每个作业都包含构建和服务容器。 (3)

    A more detailed view of the steps Runner 带走:

    • 准备:针对 Kubernetes 集群创建 Pod。这将创建构建和服务运行所需的容器。
    • 预构建:克隆、恢复缓存和下载之前阶段的工件。这是作为 Pod 的一部分在特殊容器上运行的。 (2)
    • 构建:用户构建。
    • 构建后:创建缓存,将工件上传到 GitLab。这也将特殊容器用作 Pod 的一部分。

    GitLab repository for the runners 可能对您来说也很有趣。

    【讨论】:

    • 非常感谢您的更新,让我阅读您分享的所有内容/链接,如果我有任何困惑,我会尽快回复您。
    • 同时请您帮我解决我在stackoverflow上发布的以下问题stackoverflow.com/questions/58670831/…
    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多