Partilhar via


Pools em espera para instâncias de contêiner do Azure (visualização)

Importante

Os pools em espera para Instâncias de Contêiner do Azure estão atualmente em visualização. As pré-visualizações são disponibilizadas a si na condição de concordar com os termos suplementares de utilização. Alguns aspetos desta funcionalidade podem alterar-se após a disponibilidade geral (GA).

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 de criação de um contêiner usando o caminho tradicional vs o caminho do pool em espera.

Limitações

Os pools em espera para Instâncias de Contêiner do Azure não estão disponíveis no portal do Azure.

Pré-requisitos

Registo de Funcionalidades

Registre o provedor de recursos do pool em espera e o recurso de visualização do pool em espera com sua assinatura usando o Azure Cloud Shell. O registro pode levar até 30 minutos para ser exibido com sucesso como registrado. Você pode executar novamente os comandos abaixo para determinar quando o recurso é registrado com êxito.

Register-AzResourceProvider -ProviderNameSpace Microsoft.ContainerInstance
Register-AzResourceProvider -ProviderNamespace Microsoft.StandbyPool
Register-AzProviderFeature -FeatureName StandbyContainerGroupPoolPreview -ProviderNamespace Microsoft.StandbyPool

Permissões de controle de acesso baseadas em função

Para permitir que pools em espera criem grupos de contêineres em sua assinatura, atribua as permissões apropriadas ao provedor de recursos do pool em espera.

  1. No portal do Azure, navegue para as subscrições.
  2. Selecione a subscrição que pretende ajustar as permissões.
  3. Selecione Controlo de Acesso (IAM).
  4. Selecione Adicionar e Adicionar atribuição de função.
  5. Na guia Função, procure por Colaborador do Pool de Contêineres em Espera e selecione-o.
  6. Vá para a guia Membros .
  7. Selecione + Selecionar membros.
  8. Procure por Provedor de Recursos do Pool em Espera e selecione-o.
  9. Vá para a guia Revisar + atribuir .
  10. Aplique as alterações.
  11. Repita as etapas acima também atribuindo a Função de Colaborador de Instâncias de Contêiner do Azure e o Colaborador de Rede ao Provedor de Recursos do Pool em Espera.

Para obter mais informações sobre como atribuir funções, consulte Atribuir funções do Azure usando o portal do Azure.

Usando um contêiner do pool de espera

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

Os pools em espera só distribuem grupos de contêineres do pool que estão totalmente provisionados e prontos para receber trabalho. Por exemplo, quando as instâncias em seu pool ainda estão sendo inicializadas, elas não estão no estado de execução e não são distribuídas quando um contêiner é solicitado. Se nenhuma instância no pool estiver disponível, as Instâncias de Contêiner do Azure voltarão por padrão para a criação de novo grupo de contêineres líquidos.

Tamanho da piscina em standby

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

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

Definição Descrição
maxReadyCapacidade O número máximo de grupos de contêineres que você deseja implantar no pool.
refilPolítica Diz ao pool de espera para reabastecer 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 seu pool em 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 permite atualizações fora de 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 de mapas de configuração em um grupo de contêineres em execução existente pode ser realizada rapidamente e sem causar a reinicialização do contêiner.

Para obter mais informações, consulte 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}"
}

Contentores confidenciais

Os pools de espera para instâncias de contêiner do Azure dão suporte a contêineres confidenciais. Para utilizar contêineres confidenciais, atualize o sku tipo 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 tempo de execução antes que a montagem do arquivo seja disponibilizada para o contêiner. Quaisquer valores que possam ter um impacto na segurança dos dados ou 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"
            }
        }


Identidade Gerida

Os pools de espera para Instâncias de Contêiner do Azure oferecem suporte à integração com a Identidade Gerenciada. A aplicação de uma identidade gerenciada é executada ao solicitar um contêiner do pool em espera e inclui os identity parâmetros e as configurações. A Identidade Gerenciada não é uma propriedade suportada diretamente no perfil do grupo de contêineres.

{
   "location": "{location}",
   "properties": {
       "standByPoolProfile":{
               "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.StandbyPool/standbyContainerGroupPools/{standbyPoolName}"
           },
           "containerGroupProfile": {
               "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ContainerInstance/containerGroupProfiles/{mycontainergroupprofile}",
               "revision": {revisionNumber}
           },
          },
          "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": {
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity}": {}
            },
           "containers": [
               {
                   "name": "{mycontainergroupprofile}",
                   "properties": {
                       "configMap": {
                           "keyValuePairs": {
                               "{newKey}": "{newValue}"
                           }
                       }
                   }
               }
           ]
   }
}

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 em zonas de disponibilidade. A criação de um pool zonal em espera está atualmente disponível apenas usando as APIs REST do pool de espera usando a versão 2024-08-01-preview e disponível apenas na região Índia Central.

Criar um pool zonal standby

PUT https://management.azure.com/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.StandbyPool/standbyContainerGroupPools/myStandbyPool?api-version=2024-08-01-preview
 
Request Body
{
    "properties": {
        "elasticityProfile": {
            "maxReadyCapacity": 20,
            "refillPolicy": "always"
        },
        "containerGroupProperties": {
            "containerGroupProfile": {
                "id": "/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/mycontainergroupprofile",
                "revision": 1
          },
          "subnetIds": [
            {
              "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNET/subnets/mySubnet"
            }
          ]
        },
        "zones": [
          "1",
          "2",
          "3"
        ]
      },

    "location": "West Central US"
}

Próximos passos

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