Mapa konfiguracji to właściwość, której można użyć do stosowania konfiguracji kontenerów, podobnie jak zmienne środowiskowe i tajne woluminy. Proces różni się od użycia zmiennych środowiskowych lub woluminów zawierających sekrety, gdzie należy ponownie uruchomić pod, aby zastosować ustawienia. Użycie mapy konfiguracji w celu zastosowania ustawień nie wymaga ponownego uruchomienia zmian, aby zmiany zaczęły obowiązywać.
Za pomocą usługi Azure Container Instances można tworzyć wystąpienia kontenerów z mapami konfiguracji lub bez nich. Można je również zaktualizować w dowolnym momencie po utworzeniu przy użyciu map konfiguracji. Aktualizowanie map konfiguracji w istniejącej działającej grupie kontenerów to zadanie, które można wykonać szybko bez naruszania czasu pracy kontenera.
Jak to działa
Możesz dołączyć mapę konfiguracji we właściwościach kontenera lub w profilu grupy kontenerów. Utworzenie profilu grupy kontenerów przy użyciu ustawień mapy konfiguracji sprawia, że stosowanie tych ustawień jest proste i łatwe do zautomatyzowania.
Tworzenie profilu grupy kontenerów przy użyciu ustawień mapy konfiguracji
Utwórz profil grupy kontenerów z ustawieniami mapy konfiguracji przy użyciu polecenia az container-group-profile create.
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 \
--config-map key1=value1 key2=value2
Utwórz profil grupy kontenerów z ustawieniami mapy konfiguracji przy użyciu polecenia New-AzContainerInstanceContainerGroupProfile.
$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) -ConfigMapKeyValuePair @{"key1"="value1"}
New-AzContainerInstanceContainerGroupProfile `
-ResourceGroupName myResourceGroup `
-Name myContainerGroupProfile `
-Location WestCentralUS `
-Container $container `
-OsType Linux `
-RestartPolicy "Never" `
-IpAddressType Public
Utwórz profil grupy kontenerów z ustawieniami mapy konfiguracji, wdrażając szablon za pomocą polecenia az deployment group create lub New-AzResourceGroupDeployment.
{
"$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": "myContainer",
"properties": {
"image": "[parameters('containerImage')]",
"ports": [
{
"port": 8000
}
],
"resources": {
"requests": {
"cpu": 1,
"memoryInGB": 1.5
}
},
"command": [],
"configMap": {
"keyValuePairs": {
"key1": "value1",
"key2": "value2"
}
"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 used"
}
}
}
}
Utwórz profil grupy kontenerów z ustawieniami mapy konfiguracji przy użyciu polecenia Utwórz lub Aktualizuj.
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":[],
"configMap": {
"keyValuePairs": {
"key1": "value1",
"key2": "value2"
}
},
"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"
}
}
Zastosuj ustawienia mapy konfiguracji przy użyciu profilu grupy kontenerów
Zastosowanie ustawień mapy konfiguracji przechowywanych w profilu grupy kontenerów wymaga zaktualizowania kontenera. Należy również określić profil grupy kontenerów, który powinien być skojarzony z aktualizacją.
Zastosuj ustawienia mapy konfiguracji przechowywane w profilu grupy kontenerów przy użyciu polecenia az container create.
az container create
--resource-group myResourceGroup \
--name myContainer \
--location WestCentralUS \
--container-group-profile-id "/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/myContainerGroupProfile" \
--container-group-profile-revision 1
Zastosuj ustawienia mapy konfiguracji przechowywane w profilu grupy kontenerów przy użyciu polecenia New-AzContainerGroup.
$container = New-AzContainerInstancenoDefaultObject -Name myContainer
New-AzContainerGroup `
-ResourceGroupName myResourceGroup `
-Name myContainer`
-Container $container `
-Location WestCentralUS `
-ContainerGroupProfileId "/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/myContainerGroupProfile" `
-ContainerGroupProfileRevision 1
Zastosuj ustawienia mapy konfiguracji przechowywane w profilu grupy kontenerów przy użyciu polecenia az deployment group create lub New-AzResourceGroupDeployment.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string",
"metadata": {
"description": "The subscription ID."
}
},
"resourceGroup": {
"type": "string",
"metadata": {
"description": "The name of the resource group."
}
},
"location": {
"type": "string",
"metadata": {
"description": "Location for the resource."
},
"defaultValue": "West Central US"
},
"containerGroupName": {
"type": "string",
"metadata": {
"description": "The name of the container group."
}
},
},
"containerGroupProfileName": {
"type": "string",
"metadata": {
"description": "The name of the container group profile."
}
},
"newKey": {
"type": "string",
"metadata": {
"description": "The new key for the config map."
}
},
"newValue": {
"type": "string",
"metadata": {
"description": "The new value for the config map."
}
},
"revisionNumber": {
"type": "int",
"metadata": {
"description": "The revision number for the container group profile."
}
}
},
"resources": [
{
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2024-05-01-preview",
"name": "[parameters('containerGroupName')]",
"location": "[parameters('location')]",
"properties": {
"containerGroupProfile": {
"id": "[concat('/subscriptions/', parameters('subscriptionId'), '/resourceGroups/', parameters('resourceGroup'), '/providers/Microsoft.ContainerInstance/containerGroupProfiles/', parameters('containerGroupProfileName'))]",
"revision": "[parameters('revisionNumber')]"
},
"containers": [
{
"name": "[parameters('myContainerProfile')]",
"properties": {
"configMap": {
"keyValuePairs": {
"[parameters('newKey')]": "[parameters('newValue')]"
}
}
}
}
]
}
}
],
"outputs": {
"containerGroupId": {
"type": "string",
"value": "[resourceId('Microsoft.ContainerInstance/containerGroups', parameters('containerGroupName'))]"
}
}
}
Zastosuj ustawienia mapy konfiguracji przechowywane w profilu grupy kontenerów przy użyciu polecenia Utwórz lub Aktualizuj.
PUT
https://management.azure.com/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroups/myContainerGroup?api-version=2024-05-01-preview
Request Body
{
"location": "{location}",
"properties": {
"containerGroupProfile": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/myContainerGroupProfile",
"revision": {revisionNumber}
},
"containers": [
{
"name": "{myContainerGroupProfile}",
"properties": {
}
}
]
}
}
Zastosuj ustawienia mapy konfiguracji bez profilu grupy kontenerów
Możesz również zastosować ustawienia mapy konfiguracji bezpośrednio do wystąpienia, określając ustawienia mapy konfiguracji w poleceniach tworzenia.
Zastosuj ustawienia mapy konfiguracji przy użyciu polecenia az container create.
az container create \
--resource-group myResourceGroup \
--name myContainer \
--location WestCentralUS \
--config-map key1=value1 key2=value2
Zastosuj ustawienia mapy konfiguracji przy użyciu polecenia New-AzContainerGroup.
$container = New-AzContainerInstancenoDefaultObject -Name myContainer -ConfigMapKeyValuePair @{"key1"="value1"}
New-AzContainerGroup `
-ResourceGroupName myResourceGroup `
-Name myContainerGroup `
-Container $container `
-Location WestCentralUS
Zastosuj ustawienia mapy konfiguracji przy użyciu polecenia az deployment group create lub New-AzResourceGroupDeployment.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string",
"metadata": {
"description": "The subscription ID."
}
},
"resourceGroup": {
"type": "string",
"metadata": {
"description": "The name of the resource group."
}
},
"location": {
"type": "string",
"metadata": {
"description": "Location for the resource."
},
"defaultValue": "West Central US"
},
"containerGroupName": {
"type": "string",
"metadata": {
"description": "The name of the container group."
}
},
"myContainerProfile": {
"type": "string",
"metadata": {
"description": "The name of the container profile."
}
},
"newKey": {
"type": "string",
"metadata": {
"description": "The new key for the config map."
}
},
"newValue": {
"type": "string",
"metadata": {
"description": "The new value for the config map."
}
},
},
"resources": [
{
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2024-05-01-preview",
"name": "[parameters('containerGroupName')]",
"location": "[parameters('location')]",
"properties": {
"containers": [
{
"name": "[parameters('myContainerProfile')]",
"properties": {
"configMap": {
"keyValuePairs": {
"[parameters('newKey')]": "[parameters('newValue')]"
}
}
}
}
]
}
}
],
"outputs": {
"containerGroupId": {
"type": "string",
"value": "[resourceId('Microsoft.ContainerInstance/containerGroups', parameters('containerGroupName'))]"
}
}
}
Zastosuj ustawienia mapy konfiguracji przy użyciu polecenia Utwórz lub Aktualizuj.
PUT
https://management.azure.com/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroups/myContainerGroup?api-version=2024-05-01-preview
Request Body
{
"location": "{location}",
"properties": {
"containers": [
{
"name": "{myContainerGroupProfile}",
"properties": {
"configMap": {
"keyValuePairs": {
"{newKey}": "{newValue}"
}
}
}
}
]
}
}
Mapy konfiguracji w kontenerach systemu Linux
Po zastosowaniu aktualizacji do istniejącego kontenera zostaną wyświetlone wartości zainstalowane w kontenerze systemu Linux bez konieczności ponownego uruchamiania.
/mnt/configmap/<containername>/key1 with value as "value1"
/mnt/configmap/<containername>/key2 with value as "value2"
Mapy konfiguracji w kontenerach systemu Windows
Po zastosowaniu aktualizacji do istniejącego kontenera można w kontenerze systemu Windows pobrać pary klucz/wartość z map konfiguracji, wykonując następujące wywołanie, bez konieczności ponownego uruchamiania. Te wartości nie są instalowane w żadnym miejscu dla kontenerów systemu Windows, podobnie jak w przypadku systemu Linux.
Invoke-Expression "$Env:ConfigMapURI"
Treści powiązane