【问题标题】:How To Set Azure Container Instance Restart Policy With .Net Fluent SDK如何使用 .Net Fluent SDK 设置 Azure 容器实例重启策略
【发布时间】:2018-06-03 01:18:25
【问题描述】:

使用 .Net Fluent Management SDK 创建 Azure 容器实例时如何配置重启策略?我是否遗漏了一些明显的东西,或者 SDK 是否落后于该功能?

                _azure.ContainerGroups.Define(containerGroupName)
                    .WithRegion(Region.USEast)
                    .WithExistingResourceGroup("my-resource-group")
                    .WithLinux()
                    .WithPrivateImageRegistry("myreg.azurecr.io", "registry", "XXXXXXXXXXXXX")
                    .WithoutVolume()
                    .DefineContainerInstance(containerGroupName)
                        .WithImage("my-image/tag")
                        .WithoutPorts()
                        .WithCpuCoreCount(4)
                        .WithMemorySizeInGB(0.5)
                        .WithEnvironmentVariable("containerGroup", containerGroupName)
                        .Attach()
                    .Create();

谢谢

【问题讨论】:

    标签: azure azure-sdk-.net azure-container-instances


    【解决方案1】:

    使用 .Net Fluent Management SDK 创建 Azure 容器实例时如何配置重启策略?

    根据 Fluent SDK 我发现我们可以使用以下代码设置重启策略

    containerGroup.Inner.RestartPolicy = ContainerRestartPolicy.Always;
    

    演示代码:

    var containerGroup = _azure.ContainerGroups.Define(containerGroupName)
                    .WithRegion(Region.USEast)
                    .WithExistingResourceGroup("my-resource-group")
                    .WithLinux()
                    .WithPrivateImageRegistry("myreg.azurecr.io", "registry", "XXXXXXXXXXXXX")
                    .WithoutVolume()
                    .DefineContainerInstance(containerGroupName)
                    .WithImage("my-image/tag")
                    .WithoutPorts()
                    .WithCpuCoreCount(4)
                    .WithMemorySizeInGB(0.5)
                    .WithEnvironmentVariable("containerGroup", containerGroupName)
                    .Attach()
                    .Create();
    
     containerGroup.Inner.RestartPolicy = ContainerRestartPolicy.Always;
    

    注意:我发现 ContainerRestartPolicy 只有一个默认值always,我不测试它。我不确定其他值是否 Never 和 OnFailure 有效

    如果 ContainerInstanceManagementClient 是可能的,我们可以使用 ContainerInstanceManagementClient 创建 Azure 容器实例

    ContainerInstanceManagementClient client = new ContainerInstanceManagementClient(new TokenCredentials(token));
    
      var containerGroup = new ContainerGroupInner
                {
                    Location = "xx",
                    Containers = new List<Container>(),
                    ImageRegistryCredentials = new List<ImageRegistryCredential>(),
                    RestartPolicy = "xxx"
    
                };
    
    var groupInner = client.ContainerGroups.CreateOrUpdateAsync("resourceGroup", "containerGroupName", containerGroupInner).Result;
    

    【讨论】:

    • 在您的第一个解决方案中,是否仅通过设置属性将其发送到 Azure?
    • 你是正确的,默认的 restartProperty 是“Always”。您可以参考 ACI API,它表示 restartPolicy 的选项,包括“从不”和“OnFailure”:docs.microsoft.com/en-us/rest/api/container-instances/…
    【解决方案2】:

    根据documentation,在启动容器时设置重启策略。 在下面的示例中,我将策略设置为“从不”,.WithRestartPolicy(ContainerGroupRestartPolicy.Never)

    _azure.ContainerGroups.Define(containerGroupName)
                        .WithRegion(Region.USEast)
                        .WithExistingResourceGroup("my-resource-group")
                        .WithLinux()
                        .WithPrivateImageRegistry("myreg.azurecr.io", "registry", "XXXXXXXXXXXXX")
                        .WithoutVolume()
                        .DefineContainerInstance(containerGroupName)
                            .WithImage("my-image/tag")
                            .WithoutPorts()
                            .WithCpuCoreCount(4)
                            .WithMemorySizeInGB(0.5)
                            .WithEnvironmentVariable("containerGroup", containerGroupName)
                    .WithRestartPolicy(ContainerGroupRestartPolicy.Never)
    
                            .Attach()
                        .Create();
    

    来自文档:

    如何指定重启策略取决于您如何创建 容器实例,例如使用 Azure CLI、Azure PowerShell cmdlet,或在 Azure 门户中。在 Azure CLI 中,指定 调用 az container create 时的 --restart-policy 参数。

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      相关资源
      最近更新 更多