Конфигурационные карты для экземпляров контейнеров Azure

Карта конфигурации — это свойство, которое можно использовать для применения конфигураций контейнеров, аналогичных переменным среды и томам секретов. Процесс отличается от использования переменных среды или секретных томов, где необходимо перезапустить pod для применения настроек. Использование карты конфигурации для применения параметров не требует перезапуска, чтобы изменения вступили в силу.

Экземпляры контейнеров Azure можно использовать для создания экземпляров контейнеров с конфигурационными картами или без них. Их также можно обновить в любой момент после создания с помощью карт конфигурации. Обновление карт конфигурации в существующей работающей группе контейнеров — это задача, которую можно быстро выполнить без ущерба для времени простоя контейнера.

Принцип работы

Карту конфигурации можно включить в свойства контейнера или в профиль группы контейнеров. Создание профиля группы контейнеров с параметрами карты конфигурации упрощает применение этих параметров и упрощает автоматизацию.

Создание профиля группы контейнеров с параметрами карты конфигурации

Создайте профиль группы контейнеров с параметрами карты конфигурации с помощью 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

Применение параметров карты конфигурации с помощью профиля группы контейнеров

Применение параметров карты конфигурации, хранящихся в профиле группы контейнеров, требует обновления контейнера. Кроме того, необходимо указать профиль группы контейнеров, который должен быть связан с обновлением.

Примените параметры карты конфигурации, хранящиеся в профиле группы контейнеров, с помощью 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 

Применение параметров карты конфигурации без профиля группы контейнеров

Вы также можете применить параметры карты конфигурации непосредственно к экземпляру, указав параметры карты конфигурации в командах создания.

Примените параметры карты конфигурации с помощью az container create.

az container create \
    --resource-group myResourceGroup \ 
    --name myContainer \
    --location WestCentralUS \ 
    --config-map key1=value1 key2=value2 
        

Карты конфигурации в контейнерах Linux

После применения обновления к существующему контейнеру вы увидите значения, доступные в контейнере Linux, без необходимости перезагрузки.

/mnt/configmap/<containername>/key1 with value as "value1"

/mnt/configmap/<containername>/key2 with value as "value2"

Карты конфигурации в контейнерах Windows

После применения обновления к существующему контейнеру можно получить пары ключей и значений карты конфигурации в контейнере Windows, выполнив следующий вызов, не требуя перезапуска. Эти значения не подключены нигде для контейнеров Windows, как это происходит в случае Linux.

Invoke-Expression "$Env:ConfigMapURI"