Поделиться через


Резервные пулы для Экземпляров контейнеров Azure

Это важно

Для успешного создания резервных пулов и управления ими требуется доступ к связанным ресурсам в подписке. Убедитесь, что правильные разрешения назначены поставщику ресурсов резервного пула, чтобы резервный пул правильно функционировал. Подробные инструкции см. в разделе "Настройка разрешений роли для резервных пулов".

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

Схема рабочего процесса создания контейнера с использованием традиционного пути и пути резервного пула.

Ограничения

Создание резервного пула для экземпляров контейнеров Azure и управление ими еще не доступно на портале Azure.

Предпосылки

Регистрация поставщика

Зарегистрируйте поставщика ресурсов резервного пула в подписке с помощью Azure Cloud Shell. Регистрация может занять до 30 минут, чтобы успешно отображаться как зарегистрированная. Чтобы определить, успешно ли зарегистрирована функция, можно повторно выполнить приведенные ниже команды.

Register-AzResourceProvider -ProviderNamespace Microsoft.StandbyPool

Настройка разрешений управления доступом на основе ролей

Чтобы разрешить резервным пулам создавать экземпляры контейнеров в подписке и управлять ими, назначьте соответствующие разрешения поставщику ресурсов резервного пула. Для получения более подробных сведений и инструкций см. статью о настройке разрешений ролей для резервных пулов в экземплярах контейнеров Azure.

Использование контейнера из резервного пула

Когда вам требуется новая группа контейнеров, вы можете незамедлительно извлечь её из резервного пула, который уже подготовлен и работает.

Резервные пулы предоставляют только группы контейнеров из пула, которые полностью подготовлены и готовы к выполнению задач. Например, когда экземпляры в пуле всё ещё инициализируются, они не находятся в состоянии запуска и не предоставляются при запросе контейнера. Если экземпляры в пуле недоступны, контейнерные экземпляры Azure по умолчанию создают совершенно новую группу контейнеров.

Размер резервного пула

Количество групп контейнеров в резервном пуле определяется путем задания maxReadyCapacity параметра. Когда группа контейнеров используется из пула, резервный пул автоматически начинает заполняться, гарантируя, что ваш резервный пул сохраняет максимальную емкость в режиме ожидания.

В настоящее время единственной доступной политикой повторного заполнения резервных пулов в экземплярах контейнеров Azure является Always.

Настройки Описание
максимальная готовая емкость Максимальное количество групп контейнеров, которые требуется развернуть в пуле.
политика пополнения Дает команду резервному пулу оперативно пополнить группы контейнеров для поддержания maxReadyCapacity.

Профиль группы контейнеров

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

{
    "location":"{location}",
    "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"
            }
        }


Карты конфигурации

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

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

Дополнительные сведения см. в статье об использовании карт конфигурации.

{
    "properties": {
        "containers": [
            {
                "name": "{mycontainergroupprofile}",
                "properties": {
                    "image": "mcr.microsoft.com/azuredocs/aci-helloworld",
                    "ports": [
                        {
                            "port": 80,
                            "protocol": "TCP"
                        }
                    ],
                    "resources": {
                        "requests": {
                            "memoryInGB": 0.5,
                            "cpu": 0.5
                        }
                    },
                    "configMap": {
                        "keyValuePairs": {
                            "key1": "value1",
                            "key2": "value2"
                        }
                    }
                }
            }
        ],
        "osType": "Linux",
        "ipAddress": {
            "type": "Public",
            "ports": [
                {
                    "protocol": "tcp",
                    "port": 80
                }
            ]
        }
    },
    "location": "{location}"
}

Конфиденциальные контейнеры

Резервные пулы для экземпляров контейнеров Azure поддерживают конфиденциальные контейнеры. Чтобы использовать конфиденциальные контейнеры, измените тип на sku в профиле группы контейнеров.

Это важно

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

{
    "location":"{location}",
    "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":"Confidential"
            }
        }


Зоны доступности

Резервные пулы для экземпляров контейнеров Azure поддерживают создание и запрос контейнеров в зонах доступности. Чтобы создать резервный пул с экземплярами в определенных зонах, укажите zones параметр в запросе на создание резервного пула.

az standby-container-group-pool create \
   --resource-group myResourceGroup \
   --location WestCentralUS \
   --name myStandbyPool \
   --max-ready-capacity 20 \
   --refill-policy always \
   --zones 1,2,3 \
   --container-profile-id "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/mycontainergroupprofile"

Дальнейшие шаги

Создайте резервный пул для экземпляров контейнеров Azure.