在与主机相同的Vnet上运行Jenkins Azure ACI Docker代理

时间:2019-04-12 13:12:04

标签: azure docker jenkins

问题

如何使用Azure Container Agents Jenkins插件指定运行Azure Docker实例(ACI)的虚拟网络(vnet)或子网?

假设

为了在Azure的两台计算机之间传输大量数据,这些计算机应位于同一vnet中。

可以使ACI在vnet的子网中运行以实现这种快速通信。

背景

我正在运行带有Jenkins的Azure VM。同一台VM上还安装了Nexus,用于代理/缓存第三方依赖性。我在Docker容器上运行我的构建,这些容器根据需要动态创建,然后销毁以节省成本。此ACI创建/销毁带来了一个问题,即本地.m2高速缓存无法在一次构建到另一次构建中生存。 Nexus通过促进对第三方依赖关系的快速访问来解决此问题。

但是,要使Nexus真正解决此问题,似乎ACI必须与Nexus位于同一vnet中。我还希望不需要打开世界端口的优点,但是可以在vnet内部传递数据,而不必打开从该vnet到互联网的端口。

我的问题是,我似乎无法控制我正在使用的插件(Azure容器代理插件)在ACI上运行哪个vnet或子网。

我已经找到了有关一般如何在ACI上指定子网的说明(link),但这对我没有帮助,因为我需要一个与我使用的Jenkins插件一起使用的解决方案。

但是此插件可能无法满足我的目的,因此我需要放弃该插件以使用其他方法。如果是这样,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

适用于Jenkins的AFAIK Azure容器代理插件目前不支持指定ACI运行在哪个虚拟网络(vnet)上。 我认为您应该提出一个问题here,以查看是否获得更好的答复。

是的,您可能需要放弃使用ACI Jenkins代理的这种方法,作为一种变通方法(目前),应该将VM作为Jenkins代理使用 或在Jenkins主服务器本身上运行Jenkins作业,以便本地.m2缓存可以在一个版本到另一个版本中生存。

相关参考文献:

https://docs.microsoft.com/en-us/azure/container-instances/container-instances-jenkins

https://docs.microsoft.com/en-us/azure/container-instances/container-instances-jenkins?toc=%2Fen-us%2Fazure%2Fjenkins%2Ftoc.json&bc=%2Fen-us%2Fazure%2Fbread%2Ftoc.json

希望这会有所帮助!

相关问题