这是我们与Gitlab和Gitlab-runner一起使用的持续集成模型:

  • Gitlab-ci作业从Gitlab(gitlab-ci.yml)传递到gitlab-runner

  • 然后,gitlab-runner将作业推送到可用的"slave runner"(在boot2docker上运行的VMware ESX上的虚拟机,之前通过gitlab-runner Docker机器执行程序创建)

  • 最后,作业在gitlab-ci.yml中指定的Docker容器中执行

+-+--+  +----+  +----+   +----+  +-+--+  +----+   
                                                           Docker containers  |    |  |    |  |    |   |    |  |    |  |    |   
                                                                              |    |  |    |  |    |   |    |  |    |  |    |   
                                                                              +--+-+  +--+-+  +-+--+   +----+  +-+--+  +-+--+
                                                                                 ^       ^      ^           |    ^       ^
                                                                                 |       |      |           |    |       |
                                                                              +--+-------+--+ +-+-----------+ +--+-------+--+   
                                                            Virtual machines  |    Slave    | |    Slave    | |    Slave    |  
                                                            using boot2docker |    Runner   | |    Runner   | |    Runner   |          
                                                                              +------+------+ +------+------+ +------+------+
        +------------+                +------------+                                 ^               ^               ^
        |            |                |Bastion     |                                 |               |               |
        |            |                |            |                          +------+---------------+---------------+------+
        |  GitLab    |                |  GitLab    |                          |                                             |
        |  (server)  | +------------> |  (runner)  | +--------------------->  |                 ESX VMware                  |
        |            |  gitlab-ci.yml |            |   docker+machine         |                                             |
        |            |                |            |                          |                                             |
        +------------+                +------------+                          +---------------------------------------------+

我们想监控我们的管道:

  • gitlab-runner提供关于自身的Prometheus指标(但不包括奴隶跑者)

  • 在每个奴隶跑步者上运行的CAdvisor将帮助我们公开关于所有容器和奴隶跑步者本身的普罗米修斯指标

我们的问题:

  • 是否可以在创建它时在从属运行器上自动部署CAdvisor容器(知道每个从属运行器被销毁并在每n个构建中重新创建)?

我们通过gitlab-ci.yml成功部署了CAdvisor . 但这迫使我们在所有项目的每个作业之前声明docker run命令 . 所以,这就是为什么我们正在寻找一种更好的方法来实现它 .

在此先感谢您的时间 ;)