Compartilhar via


Pools em espera para Instâncias de Contêiner do Azure

Importante

Para que os pools de espera criem e gerenciem recursos com êxito, eles requerem acesso aos recursos associados em sua assinatura. Verifique se as permissões corretas são atribuídas ao provedor de recursos do pool em espera para que ele funcione corretamente. Para obter instruções detalhadas, consulte configurar permissões de função para pools em espera.

Os pools em espera para Instâncias de Contêiner do Azure permitem que você crie um pool de grupos de contêineres pré-provisionados que podem ser usados em resposta ao tráfego de entrada. Os grupos de contêineres no pool são totalmente provisionados, inicializados e prontos para receber trabalho.

Diagrama do fluxo de trabalho da criação de um contêiner usando o caminho tradicional versus o caminho do pool em espera.

Limitações

A criação e o gerenciamento de um pool em espera para Instâncias de Contêiner do Azure ainda não estão disponíveis no portal do Azure.

Pré-requisitos

Registro do provedor

Registre o provedor de recursos do pool em espera com sua assinatura usando o Azure Cloud Shell. O registro pode levar até 30 minutos para aparecer como registrado com sucesso. É possível executar novamente os comandos abaixo para determinar quando o recurso foi registrado com sucesso.

Register-AzResourceProvider -ProviderNamespace Microsoft.StandbyPool

Configurar permissões de controle de acesso baseadas em função

Para permitir que os pools em espera criem e gerenciem instâncias de contêineres na sua assinatura, atribua as permissões apropriadas ao provedor de recursos do pool em espera. Para obter etapas e informações mais detalhadas, consulte configurar permissões de função para os pools em espera nas Instâncias de Contêiner do Azure.

Usando um contêiner do pool em espera

Quando você precisar de um novo grupo de contêineres, poderá extrair imediatamente um do pool de espera provisionado e em execução.

Os pools em espera só fornecem grupos de contêineres do pool totalmente provisionados e prontos para receber trabalho. Por exemplo, quando as instâncias no pool ainda estão sendo inicializadas, elas não estão no estado em execução e não são fornecidas quando um contêiner é solicitado. Se nenhuma instância no pool estiver disponível, as Instâncias de Contêiner do Azure retornarão à criação de um novo grupo de contêineres.

Tamanho do pool em espera

O número de grupos de contêineres em um pool de espera é determinado definindo o parâmetro maxReadyCapacity. Quando um grupo de contêineres é consumido do pool, o pool de espera começa automaticamente a recarregar, garantindo que o pool de espera mantenha a capacidade máxima pronta definida.

Atualmente, a única política de recarga disponível para pools em espera em instâncias de Contêiner do Azure é Always.

Configuração Descrição
maxReadyCapacity O número máximo de grupos de contêineres que você deseja implantar no pool.
política de reabastecimento Informa ao pool de espera para repor imediatamente os grupos de contêineres para manter o maxReadyCapacity.

Perfil do grupo de contêineres

Um perfil de grupo de contêineres informa ao pool em espera como configurar os contêineres no pool. Se você fizer alterações no perfil do grupo de contêineres, também precisará atualizar o pool de espera para garantir que as atualizações sejam aplicadas às instâncias no pool.

{
    "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"
            }
        }


Mapas de configuração

Um mapa de configuração é uma propriedade que pode ser associada a um perfil de grupo de contêineres e ser usada para aplicar configurações de contêiner semelhantes a variáveis de ambiente e volumes secretos. No entanto, ao usar variáveis de ambiente ou volumes secretos, é necessário reiniciar o pod para que as alterações entrem em vigor. Usando mapas de configuração, as configurações podem ser aplicadas sem reiniciar o contêiner. Isso habilita atualizações fora da banda para que os contêineres possam ler os novos valores sem reiniciar.

As Instâncias de Contêiner do Azure podem ser criadas com ou sem mapas de configuração e podem ser atualizadas a qualquer momento após a criação usando mapas de configuração. A atualização mapas de configuração em um grupo de contêineres em execução existente pode ser realizado rapidamente sem comprometer o tempo de atividade do contêiner.

Para obter mais informações, consulte Como usar mapas de configuração.

{
    "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}"
}

Contêineres confidenciais

Os pools em espera para instâncias de contêiner do Azure dão suporte a contêineres confidenciais. Para utilizar contêineres confidenciais, atualize o tipo sku para Confidential no perfil do grupo de contêineres.

Importante

Os valores passados usando mapas de configuração não são incluídos na política de segurança ou validados pelo runtime antes que a montagem do arquivo seja disponibilizada para o contêiner. Quaisquer valores que possam ter um impacto nos dados ou na segurança do aplicativo não podem ser confiáveis pelo aplicativo durante a execução e, em vez disso, devem ser disponibilizados para o contêiner usando variáveis de ambiente.

{
    "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"
            }
        }


Zonas de disponibilidade

Os pools em espera para Instâncias de Contêiner do Azure dão suporte à criação e solicitação de contêineres entre zonas de disponibilidade. Para criar um pool em espera com instâncias em zonas específicas, especifique o zones parâmetro na solicitação de criação do pool em espera.

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"

Próximas etapas

Criar um pool em espera para Instâncias de Contêiner do Azure.