这是我们与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命令 . 所以,这就是为什么我们正在寻找一种更好的方法来实现它 .
在此先感谢您的时间 ;)