Grupos de contentores no Azure Container InstancesContainer groups in Azure Container Instances

O recurso de alto nível em Instâncias de Contentores Azure é o grupo de contentores.The top-level resource in Azure Container Instances is the container group. Este artigo descreve quais são os grupos de contentores e os tipos de cenários que permitem.This article describes what container groups are and the types of scenarios they enable.

O que é um grupo de contentores?What is a container group?

Um grupo de contentores é uma coleção de contentores que são programados na mesma máquina hospedeira.A container group is a collection of containers that get scheduled on the same host machine. Os contentores de um grupo de contentores partilham um ciclo de vida, recursos, rede local e volumes de armazenamento.The containers in a container group share a lifecycle, resources, local network, and storage volumes. É semelhante em conceito a um casulo em Kubernetes.It's similar in concept to a pod in Kubernetes.

O diagrama a seguir mostra um exemplo de um grupo de contentores que inclui vários contentores:The following diagram shows an example of a container group that includes multiple containers:

Diagrama de grupos de contentores

Este grupo de contentores exemplo:This example container group:

  • Está programado numa única máquina hospedeira.Is scheduled on a single host machine.
  • É atribuída uma etiqueta de nome DNS.Is assigned a DNS name label.
  • Expõe um único endereço IP público, com uma porta exposta.Exposes a single public IP address, with one exposed port.
  • É composto por dois contentores.Consists of two containers. Um contentor ouve no porto 80, enquanto o outro ouve no porto 5000.One container listens on port 80, while the other listens on port 5000.
  • Inclui duas ações de ficheiroS Azure como suportes de volume, e cada recipiente monta uma das ações localmente.Includes two Azure file shares as volume mounts, and each container mounts one of the shares locally.

Nota

Atualmente, os grupos multi-contentores suportam apenas contentores Linux.Multi-container groups currently support only Linux containers. Para os recipientes do Windows, as instâncias do contentor Azure suportam apenas a colocação de uma única instância de contentor.For Windows containers, Azure Container Instances only supports deployment of a single container instance. Enquanto estamos a trabalhar para trazer todas as funcionalidades para os contentores do Windows, pode encontrar as diferenças atuais da plataforma na Visão Geraldo serviço.While we are working to bring all features to Windows containers, you can find current platform differences in the service Overview.

ImplementaçãoDeployment

Aqui estão duas formas comuns de implantar um grupo multi-contentor: use um modelo de Gestor de Recursos ou um ficheiro YAML.Here are two common ways to deploy a multi-container group: use a Resource Manager template or a YAML file. Recomenda-se um modelo de Gestor de Recursos quando é necessário implementar recursos adicionais de serviço Azure (por exemplo, uma partilha de Ficheiros Azure) quando implementar as instâncias do contentor.A Resource Manager template is recommended when you need to deploy additional Azure service resources (for example, an Azure Files share) when you deploy the container instances. Devido à natureza mais concisa do formato YAML, recomenda-se um ficheiro YAML quando a sua implantação inclui apenas casos de contentores.Due to the YAML format's more concise nature, a YAML file is recommended when your deployment includes only container instances. Para obter detalhes sobre as propriedades que pode definir, consulte a referência do modelo do Gestor de Recursos ou a documentação de referência YAML.For details on properties you can set, see the Resource Manager template reference or YAML reference documentation.

Para preservar a configuração de um grupo de contentores, pode exportar a configuração para um ficheiro YAML utilizando a exportação de contentoresAzure CLI .To preserve a container group's configuration, you can export the configuration to a YAML file by using the Azure CLI command az container export. A exportação permite-lhe armazenar as configurações do grupo de contentores no controlo de versão para "configuração como código".Export allows you to store your container group configurations in version control for "configuration as code." Ou, utilize o ficheiro exportado como ponto de partida ao desenvolver uma nova configuração em YAML.Or, use the exported file as a starting point when developing a new configuration in YAML.

Alocação de recursosResource allocation

A Azure Container Instances atribui recursos como CPUs, memória e GPUs opcionalmente (pré-visualização) a um grupo multi-contentores, adicionando os pedidos de recursos das instâncias no grupo.Azure Container Instances allocates resources such as CPUs, memory, and optionally GPUs (preview) to a multi-container group by adding the resource requests of the instances in the group. Tomando os recursos da CPU como exemplo, se criarmos um grupo de contentores com duas instâncias de contentores, cada um solicitando 1 CPU, então o grupo de contentores é atribuído 2 CPUs.Taking CPU resources as an example, if you create a container group with two container instances, each requesting 1 CPU, then the container group is allocated 2 CPUs.

Utilização de recursos por instâncias de contentoresResource usage by container instances

Cada instância de contentor num grupo é atribuída aos recursos especificados no seu pedido de recursos.Each container instance in a group is allocated the resources specified in its resource request. No entanto, os recursos máximos utilizados por uma instância de contentor num grupo podem ser diferentes se configurar a sua propriedade de limite de recursos opcional.However, the maximum resources used by a container instance in a group could be different if you configure its optional resource limit property. O limite de recursos de uma instância de contentor deve ser superior ou igual ao imóvel obrigatório de pedido de recursos.The resource limit of a container instance must be greater than or equal to the mandatory resource request property.

  • Se não especificar um limite de recursos, o uso máximo de recursos da instância do recipiente é o mesmo que o seu pedido de recursos.If you don't specify a resource limit, the container instance's maximum resource usage is the same as its resource request.

  • Se especificar um limite para uma instância de contentor, a utilização máxima da instância pode ser maior do que o pedido, até ao limite definido.If you specify a limit for a container instance, the instance's maximum usage could be greater than the request, up to the limit you set. Consequentemente, a utilização de recursos por outras instâncias de contentores no grupo pode diminuir.Correspondingly, resource usage by other container instances in the group could decrease. O limite máximo de recursos que pode definir para uma instância de contentor é o total de recursos atribuídos ao grupo.The maximum resource limit you can set for a container instance is the total resources allocated to the group.

Por exemplo, num grupo com duas instâncias de contentores cada um solicitando 1 CPU, um dos seus recipientes pode executar uma carga de trabalho que requer mais CPUs para executar do que o outro.For example, in a group with two container instances each requesting 1 CPU, one of your containers might run a workload that requires more CPUs to run than the other.

Neste cenário, pode estabelecer um limite de recursos de até 2 CPUs para a instância do contentor.In this scenario, you could set a resource limit of up to 2 CPUs for the container instance. Esta configuração permite que a instância do recipiente utilize até 2 CPUs se disponível.This configuration allows the container instance to use up to 2 CPUs if available.

Nota

Uma pequena quantidade de recursos de um grupo de contentores é utilizada pela infraestrutura subjacente do serviço.A small amount of a container group's resources is used by the service's underlying infrastructure. Os seus contentores poderão aceder à maioria, mas não a todos os recursos atribuídos ao grupo.Your containers will be able to access most but not all of the resources allocated to the group. Por esta razão, planeie um pequeno tampão de recursos ao solicitar recursos para contentores no grupo.For this reason, plan a small resource buffer when requesting resources for containers in the group.

Atribuição mínima e máximaMinimum and maximum allocation

  • Aloque um mínimo de 1 CPU e 1 GB de memória a um grupo de contentores.Allocate a minimum of 1 CPU and 1 GB of memory to a container group. As instâncias individuais de contentores dentro de um grupo podem ser a provisionadas com menos de 1 CPU e 1 GB de memória.Individual container instances within a group can be provisioned with less than 1 CPU and 1 GB of memory.

  • Para obter os recursos máximos de um grupo de contentores, consulte a disponibilidade de recursos para instâncias de contentores Azure na região de implantação.For the maximum resources in a container group, see the resource availability for Azure Container Instances in the deployment region.

RedeNetworking

Os grupos de contentores podem partilhar um endereço IP virado para o exterior, uma ou mais portas nesse endereço IP e uma etiqueta DNS com um nome de domínio totalmente qualificado (FQDN).Container groups can share an external-facing IP address, one or more ports on that IP address, and a DNS label with a fully qualified domain name (FQDN). Para permitir que clientes externos cheguem a um contentor dentro do grupo, deve expor a porta no endereço IP e a partir do contentor.To enable external clients to reach a container within the group, you must expose the port on the IP address and from the container. O endereço IP de um grupo de contentores e fQDN são libertados quando o grupo de contentores é eliminado.A container group's IP address and FQDN are released when the container group is deleted.

Dentro de um grupo de contentores, as instâncias de contentores podem chegar entre si através de uma localidade em qualquer porto, mesmo que essas portas não estejam expostas externamente no endereço IP do grupo ou a partir do contentor.Within a container group, container instances can reach each other via localhost on any port, even if those ports aren't exposed externally on the group's IP address or from the container.

Opcionalmente, coloque grupos de contentores numa rede virtual Azure para permitir que os contentores se comuniquem de forma segura com outros recursos na rede virtual.Optionally deploy container groups into an Azure virtual network to allow containers to communicate securely with other resources in the virtual network.

ArmazenamentoStorage

Pode especificar volumes externos para montar dentro de um grupo de contentores.You can specify external volumes to mount within a container group. Os volumes suportados incluem:Supported volumes include:

Pode mapear esses volumes em caminhos específicos dentro dos contentores individuais de um grupo.You can map those volumes into specific paths within the individual containers in a group.

Cenários comunsCommon scenarios

Os grupos multi-contentores são úteis nos casos em que se pretende dividir uma única tarefa funcional num pequeno número de imagens de contentores.Multi-container groups are useful in cases where you want to divide a single functional task into a small number of container images. Estas imagens podem então ser entregues por diferentes equipas e têm requisitos de recursos separados.These images can then be delivered by different teams and have separate resource requirements.

O uso de exemplos pode incluir:Example usage could include:

  • Um recipiente que serve uma aplicação web e um recipiente que retira o conteúdo mais recente do controlo de origem.A container serving a web application and a container pulling the latest content from source control.
  • Um recipiente de aplicação e um contentor de madeira.An application container and a logging container. O contentor de madeira recolhe os registos e métricas de saída pela aplicação principal e escreve-os para armazenamento a longo prazo.The logging container collects the logs and metrics output by the main application and writes them to long-term storage.
  • Um recipiente de aplicação e um recipiente de monitorização.An application container and a monitoring container. O recipiente de monitorização faz periodicamente um pedido à aplicação para garantir que está a funcionar e a responder corretamente, e levanta um alerta se não estiver.The monitoring container periodically makes a request to the application to ensure that it's running and responding correctly, and raises an alert if it's not.
  • Um recipiente frontal e um recipiente de back-end.A front-end container and a back-end container. A parte frontal pode servir uma aplicação web, com a parte de trás a executar um serviço para recuperar dados.The front end might serve a web application, with the back end running a service to retrieve data.

Passos seguintesNext steps

Saiba como implantar um grupo de contentores multi-contentores com um modelo de Gestor de Recursos Azure:Learn how to deploy a multi-container container group with an Azure Resource Manager template: