Cannot change agent VM count

3/24/2017

I have an ACS Kubernetes cluster that was created with an agent count of 1. I went to the portal to increase the agent count to 2 and received a generic error saying the provisioning of resource(s) for container service failed.

error!

Looking at the activity logs, there is a bit more information.

Write ContainerServices - PreconditionFailed - Provisioning of resource(s) for container service 'xxxxxxx' in resource group 'xxxxxxxx' failed.


Validate - InvalidTemplate - Deployment template validation failed: 'The resource 'Microsoft.Network/networkSecurityGroups/k8s-master-3E4D5818-nsg' is not defined in the template. Please see https://aka.ms/arm-template for usage details.'.

Trying to change it via the Azure CLI 2.0 also returns the same error.


Update: The cluster was stood up using an ARM template with a single container service resource based on the sample in the quickstart templates repo.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "dnsNamePrefix": {
      "type": "string",
      "metadata": {
        "description": "Sets the Domain name prefix for the cluster.  The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
      }
    },
    "agentCount": {
      "type": "int",
      "defaultValue": 1,
      "metadata": {
        "description": "The number of agents for the cluster.  This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
      },
      "minValue":1,
      "maxValue":100
    },
    "agentVMSize": {
      "type": "string",
      "defaultValue": "Standard_D2_v2",
      "allowedValues": [
            "Standard_A0", "Standard_A1", "Standard_A2", "Standard_A3", "Standard_A4", "Standard_A5",
            "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A9", "Standard_A10", "Standard_A11",
            "Standard_D1", "Standard_D2", "Standard_D3", "Standard_D4",
            "Standard_D11", "Standard_D12", "Standard_D13", "Standard_D14",
            "Standard_D1_v2", "Standard_D2_v2", "Standard_D3_v2", "Standard_D4_v2", "Standard_D5_v2",
            "Standard_D11_v2", "Standard_D12_v2", "Standard_D13_v2", "Standard_D14_v2",
            "Standard_G1", "Standard_G2", "Standard_G3", "Standard_G4", "Standard_G5",
            "Standard_DS1", "Standard_DS2", "Standard_DS3", "Standard_DS4",
            "Standard_DS11", "Standard_DS12", "Standard_DS13", "Standard_DS14",
            "Standard_GS1", "Standard_GS2", "Standard_GS3", "Standard_GS4", "Standard_GS5"
      ],
      "metadata": {
        "description": "The size of the Virtual Machine."
      }
    },
    "linuxAdminUsername": {
      "type": "string",
      "defaultValue": "azureuser",
      "metadata": {
        "description": "User name for the Linux Virtual Machines."
      }
    },
    "orchestratorType": {
      "type": "string",
      "defaultValue": "Kubernetes",
      "allowedValues": [
        "Kubernetes",
        "DCOS",
        "Swarm"
      ],
      "metadata": {
        "description": "The type of orchestrator used to manage the applications on the cluster."
      }
    },
    "masterCount": {
      "type": "int",
      "defaultValue": 1,
      "allowedValues": [
        1
      ],
      "metadata": {
        "description": "The number of Kubernetes masters for the cluster."
      }
    },
    "sshRSAPublicKey": {
      "type": "string",
      "metadata": {
        "description": "Configure all linux machines with the SSH RSA public key string.  Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
      }
    },
    "servicePrincipalClientId": {
      "metadata": {
        "description": "Client ID (used by cloudprovider)"
      },
      "type": "securestring",
      "defaultValue": "n/a"
    },
    "servicePrincipalClientSecret": {
      "metadata": {
        "description": "The Service Principal Client Secret."
      },
      "type": "securestring",
      "defaultValue": "n/a"
    }
  },
  "variables": {
    "adminUsername":"[parameters('linuxAdminUsername')]",
    "agentCount":"[parameters('agentCount')]",
    "agentsEndpointDNSNamePrefix":"[concat(parameters('dnsNamePrefix'),'agents')]",
    "agentVMSize":"[parameters('agentVMSize')]",
    "masterCount":"[parameters('masterCount')]",
    "mastersEndpointDNSNamePrefix":"[concat(parameters('dnsNamePrefix'),'mgmt')]",
    "orchestratorType":"[parameters('orchestratorType')]",
    "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
    "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
    "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
    "useServicePrincipalDictionary": {
      "DCOS": 0,
      "Swarm": 0,
      "Kubernetes": 1
    },
    "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
    "servicePrincipalFields": [
      null,
      {
        "ClientId": "[parameters('servicePrincipalClientId')]",
        "Secret": "[parameters('servicePrincipalClientSecret')]"
      }
    ]
  },
  "resources": [
    {
      "apiVersion": "2016-09-30",
      "type": "Microsoft.ContainerService/containerServices",
      "location": "[resourceGroup().location]",
      "name":"[resourceGroup().name]",
      "properties": {
        "orchestratorProfile": {
          "orchestratorType": "[variables('orchestratorType')]"
        },
        "masterProfile": {
          "count": "[variables('masterCount')]",
          "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]"
        },
        "agentPoolProfiles": [
          {
            "name": "agentpools",
            "count": "[variables('agentCount')]",
            "vmSize": "[variables('agentVMSize')]",
            "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]"
          }
        ],
        "linuxProfile": {
          "adminUsername": "[variables('adminUsername')]",
          "ssh": {
            "publicKeys": [
              {
                "keyData": "[variables('sshRSAPublicKey')]"
              }
            ]
          }
        },
        "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
      }
    }
  ],
  "outputs": {
    "masterFQDN": {
      "type": "string",
      "value": "[reference(concat('Microsoft.ContainerService/containerServices/', resourceGroup().name)).masterProfile.fqdn]"
    },
    "sshMaster0": {
      "type": "string",
      "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', resourceGroup().name)).masterProfile.fqdn, ' -A -p 22')]"
    },
    "agentFQDN": {
      "type": "string",
      "value": "[reference(concat('Microsoft.ContainerService/containerServices/', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
    }
  }
}
-- Anthony Chu
azure
azure-container-service
kubernetes

2 Answers

3/27/2017

I had test in my lab with this template, but I can't reproduce your error. please try to use azure resource explorer to edit the count of agent pool:

enter image description here

-- Jason Ye
Source: StackOverflow

4/5/2017

This is a known service issue for old clusters. A fix is currently rolling out and is being tracked in this github issue, https://github.com/Azure/ACS/issues/16

Jack (a dev on the ACS team)

-- Jack Quincy
Source: StackOverflow