Create a standby pool for Azure Container Instances (Preview)
Artikkeli 11/19/2024
1 avustaja
Palaute
Tässä artikkelissa
Important
Standby pools for Azure Container Instances is currently in preview. Previews are made available to you on the condition that you agree to the supplemental terms of use . Some aspects of this feature may change prior to general availability (GA).
This article steps through creating a container group profile and using that profile to configure a standby pool for Azure Container Instances.
Prerequisites
Before utilizing standby pools, complete the feature registration and configure role based access controls listed in the Standby Pools for Azure Container Instances overview page.
Create a container group profile
The container group profile tells the standby pool how to configure the containers in the pool. If you make changes to the container group profile, you also need to update your standby pool to ensure the updates are applied to the instances in the pool.
Note
To use confidential containers update the sku
type to Confidential
when creating your container group profile.
Create a container group profile using az container container-group-profile create . You can optionally include config map details in the container group profile. For more information on config maps, see use config maps .
az container container-group-profile create \
--resource-group myResourceGroup \
--name mycontainergroupprofile \
--location WestCentralUS \
--image nginx \
--os-type Linux \
--ip-address Public \
--ports 8000 \
--cpu 1 \
--memory 1.5 \
--restart-policy Never
Create a container group profile using New-AzContainerInstanceContainerGroupProfile . You can optionally include config map details in the container group profile. For more information on config maps, see use config maps .
$port1 = New-AzContainerInstancePortObject -Port 8000 -Protocol TCP
$port2 = New-AzContainerInstancePortObject -Port 8001 -Protocol TCP
$container = New-AzContainerInstanceObject -Name mycontainer -Image nginx -RequestCpu 1 -RequestMemoryInGb 1.5 -Port @($port1, $port2)
New-AzContainerInstanceContainerGroupProfile `
-ResourceGroupName myResourceGroup `
-Name mycontainergroupprofile `
-Location WestCentralUS `
-Container $container `
-OsType Linux `
-RestartPolicy "Never" `
-IpAddressType Public
Create a container group profile and save the template file. Deploy the template using az deployment group create or New-AzResourceGroupDeployment . You can optionally include config map details in the container group profile. For more information on config maps, see use config maps .
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2024-05-01-preview",
"name": "[parameters('profileName')]",
"location": "[parameters('location')]",
"properties": {
"containers": [
{
"name": "mycontainergroupprofile",
"properties": {
"image": "[parameters('containerImage')]",
"ports": [
{
"port": 8000
}
],
"resources": {
"requests": {
"cpu": 1,
"memoryInGB": 1.5
}
},
"command": [],
"environmentVariables": []
}
}
],
"osType": "Linux",
"ipAddress": {
"type": "Public",
"ports": [
{
"protocol": "TCP",
"port": 8000
}
]
},
"imageRegistryCredentials": [],
"sku": "Standard"
}
}
],
"parameters": {
"profileName": {
"type": "string",
"defaultValue": "mycontainergroupprofile",
"metadata": {
"description": "Name of the container profile"
}
},
"location": {
"type": "string",
"defaultValue": "West Central US",
"metadata": {
"description": "Location for the resource"
}
},
"containerImage": {
"type": "string",
"defaultValue": "mcr.microsoft.com/azuredocs/aci-helloworld:latest",
"metadata": {
"description": "The container image to use"
}
}
}
}
Create a container group profile using Create or Update . You can optionally include config map details in the container group profile. For more information on config maps, see use config maps .
PUT https://management.azure.com/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/myContainerGroupProfile?api-version=2024-05-01-preview
Request Body
{
"location": "West Central US",
"properties":{
"containers": [
{
"name":"mycontainergroupprofile",
"properties": {
"command":[],
"environmentVariables":[],
"image":"mcr.microsoft.com/azuredocs/aci-helloworld:latest",
"ports":[
{
"port":8000
}
],
"resources": {
"requests": {
"cpu":1,
"memoryInGB":1.5
}
}
}
}
],
"imageRegistryCredentials":[],
"ipAddress":{
"ports":[
{
"protocol":"TCP",
"port":8000
}
],
"type":"Public"
},
"osType":"Linux",
"sku":"Standard"
}
}
Create a standby pool
Create a standby pool and associate it with a container group profile using az standby-container-group-pool create .
az standby-container-group-pool create \
--resource-group myResourceGroup
--location WestCentralUS \
--name myStandbyPool \
--max-ready-capacity 20 \
--refill-policy always \
--container-profile-id "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/myContainerGroupProfile"
Create a standby pool and associate it with a container group profile using New-AzStandbyContainerGroupPool .
New-AzStandbyContainerGroupPool `
-ResourceGroup myResourceGroup `
-Location "WestCentralUS" `
-Name myStandbyPool `
-MaxReadyCapacity 20 `
-RefillPolicy always `
-ContainerProfileId "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/mycontainergroupprofile"
Create a standby pool and associate it with a container group profile. Create a template and deploy it using az deployment group create or New-AzResourceGroupDeployment .
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "West Central US"
},
"name": {
"type": "string",
"defaultValue": "myStandbyPool"
},
"maxReadyCapacity" : {
"type": "int",
"defaultValue": 10
},
"refillPolicy" : {
"type": "string",
"defaultValue": "always"
},
"containerGroupProfile" : {
"type": "string",
"defaultValue": "/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/mycontainergroupprofile"
}
},
"resources": [
{
"type": "Microsoft.StandbyPool/standbyContainerGroupPools",
"apiVersion": "2024-03-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"properties": {
"elasticityProfile": {
"maxReadyCapacity": "[parameters('maxReadyCapacity')]",
"refillPolicy": "[parameters('refillPolicy')]"
},
"containerGroupProfile": "[parameters('containerGroupProfile')]"
}
}
]
}
Create a standby pool and associate it with a container group profile using Create or Update .
PUT https://management.azure.com/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.StandbyPool/standbyContainerGroupPools/myStandbyPool?api-version=2024-03-01
Request Body
{
"properties": {
"elasticityProfile": {
"maxReadyCapacity": 20,
"refillPolicy": "always"
},
"containerGroupProperties": {
"containerGroupProfile": {
"id": "/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/mycontainergroupprofile",
"revision": 1
}
}
},
"location": "West Central US"
}
Next steps
Request a container from the standby pool .