您可以指定一个自己build的image来运行pipeline中的作业,但不管是用哪个image来运行作业,runner都只会在运行这个作业的时候才会使用这个image来启动一个容器环境,作业执行结束了容器就会被销毁掉。
这里面有几个概念比较容易混淆,需要先了解清楚:
1)runner是一个运行器,它会根据excutor(执行器)的类型来创建 运行作业的环境 ,比如SHELL类型就会创建一个shell会话;如果是docker类型,就会按照相应镜像启动一个容器来运行作业。因此runner程序会一直运行,但不等同于作业的运行环境,可以把runner理解成一个调度器。
2)运行作业的环境,并不等同于您的部署环境。作业可以看成一系列的命令,比如您可以在一个作业中通过一系列kubectl命令来把应用部署到k8s中,而如果您使用docker类型的执行器来执行这个作业,那么这个作业(一系列的kubectl命令)将在这个docker容器里执行,但应用(比如您自己build的应用镜像)将被部署到k8s环境中。 |