Azure Batch 拒绝 运行 docker 支持节点上的 docker 任务
Azure Batch refuses to run docker tasks on docker supporting nodes
我有一个 Azure Batch 池,其节点支持 Docker。
即 OS 报价为 MicrosoftWindowsServer WindowsServer 2016-Datacenter-with-Containers.
我创建了一个任务 recommended:
private static CloudTask CreateTask(string id, string commandLine)
{
var autoUserSpec = new AutoUserSpecification(elevationLevel: ElevationLevel.Admin);
var containerSettings = new TaskContainerSettings(_imageName);
var task = new CloudTask(id, commandLine)
{
UserIdentity = new UserIdentity(autoUserSpec),
ContainerSettings = containerSettings,
};
return task;
}
当任务为 运行 时,它完成时出现错误 ContainerPoolNotSupported、The compute node does not support container feature
。
这没有意义。当我连接到节点时,我在那里看到 docker,图像已预安装,因此我什至可以立即 运行 容器。该任务几乎立即完成,因此 Azure Batch 可能只是注意到容器设置并出于某种原因抛出。
有什么解决方法吗? Google 为错误名称提供 0 个引用。
有用的是完全忽略 TaskContainerSettings
,即模仿一个普通的 CloudTask
还没有 docker 运行 在任务命令行中:
private static CloudTask CreateTask(string id, string commandLine)
{
var autoUserSpec = new AutoUserSpecification(elevationLevel: ElevationLevel.Admin);
var task = new CloudTask(id, $"docker run {_imageName} {commandLine}")
{
UserIdentity = new UserIdentity(autoUserSpec),
};
return task;
}
因此,在 Azure 对容器的支持变得更加稳定之前,这确实是一种解决方法。
没有您创建池的上下文,这个答案不是确定的。但很可能您没有指定 ContainerConfiguration on VirtualMachineConfiguration of the CloudPool 对象。
请参阅此 guide 以获取有关 Azure Batch 上 运行 容器工作负载的教程。
我有一个 Azure Batch 池,其节点支持 Docker。 即 OS 报价为 MicrosoftWindowsServer WindowsServer 2016-Datacenter-with-Containers.
我创建了一个任务 recommended:
private static CloudTask CreateTask(string id, string commandLine)
{
var autoUserSpec = new AutoUserSpecification(elevationLevel: ElevationLevel.Admin);
var containerSettings = new TaskContainerSettings(_imageName);
var task = new CloudTask(id, commandLine)
{
UserIdentity = new UserIdentity(autoUserSpec),
ContainerSettings = containerSettings,
};
return task;
}
当任务为 运行 时,它完成时出现错误 ContainerPoolNotSupported、The compute node does not support container feature
。
这没有意义。当我连接到节点时,我在那里看到 docker,图像已预安装,因此我什至可以立即 运行 容器。该任务几乎立即完成,因此 Azure Batch 可能只是注意到容器设置并出于某种原因抛出。
有什么解决方法吗? Google 为错误名称提供 0 个引用。
有用的是完全忽略 TaskContainerSettings
,即模仿一个普通的 CloudTask
还没有 docker 运行 在任务命令行中:
private static CloudTask CreateTask(string id, string commandLine)
{
var autoUserSpec = new AutoUserSpecification(elevationLevel: ElevationLevel.Admin);
var task = new CloudTask(id, $"docker run {_imageName} {commandLine}")
{
UserIdentity = new UserIdentity(autoUserSpec),
};
return task;
}
因此,在 Azure 对容器的支持变得更加稳定之前,这确实是一种解决方法。
没有您创建池的上下文,这个答案不是确定的。但很可能您没有指定 ContainerConfiguration on VirtualMachineConfiguration of the CloudPool 对象。
请参阅此 guide 以获取有关 Azure Batch 上 运行 容器工作负载的教程。