orquestradores de Azure Container Instances e contentores

Devido ao tamanho pequeno e à orientação da aplicação, os contentores são adequados para ambientes de entrega ágil e arquiteturas baseadas em microsserviços. A tarefa de automatizar e gerir um grande número de contentores e como interagem é conhecida como orquestração. Os orquestradores de contentores populares incluem o Kubernetes, DC/OS e Docker Swarm.

Azure Container Instances fornece algumas das funcionalidades básicas de agendamento de plataformas de orquestração. E apesar de não abranger os serviços de valor mais elevado que essas plataformas fornecem, Azure Container Instances podem ser complementares aos mesmos. Este artigo descreve o âmbito do que Azure Container Instances processa e como os orquestradores de contentores completos podem interagir com o mesmo.

Orquestração tradicional

A definição padrão de orquestração inclui as seguintes tarefas:

  • Agendamento: com base numa imagem de contentor e num pedido de recurso, localize um computador adequado para executar o contentor.
  • Afinidade/Antifinidade: especifique que um conjunto de contentores deve ser executado nas proximidades (para desempenho) ou suficientemente distantes (para disponibilidade).
  • Monitorização do estado de funcionamento: tenha em atenção as falhas do contentor e reagende-as automaticamente.
  • Ativação pós-falha: controle o que está em execução em cada máquina e reagende os contentores de máquinas com falhas para nós em bom estado de funcionamento.
  • Dimensionamento: adicione ou remova instâncias de contentor para corresponder à procura, manual ou automaticamente.
  • Rede: forneça uma rede de sobreposição para coordenar contentores para comunicar entre vários computadores anfitriões.
  • Deteção de serviços: permita que os contentores se localizem automaticamente, mesmo que se movam entre máquinas anfitriãs e alterem endereços IP.
  • Atualizações coordenadas da aplicação: faça a gestão das atualizações de contentores para evitar períodos de indisponibilidade da aplicação e ative a reversão se algo correr mal.

Orquestração com Azure Container Instances: uma abordagem em camadas

Azure Container Instances permite uma abordagem em camadas à orquestração, fornecendo todas as capacidades de agendamento e gestão necessárias para executar um único contentor, ao mesmo tempo que permite que as plataformas do orchestrator façam a gestão de tarefas com vários contentores.

Uma vez que a infraestrutura subjacente para instâncias de contentor é gerida pelo Azure, uma plataforma de orquestrador não precisa de se preocupar com a localização de um computador anfitrião adequado para executar um único contentor. A elasticidade da cloud garante que uma está sempre disponível. Em vez disso, o orquestrador pode focar-se nas tarefas que simplificam o desenvolvimento de arquiteturas de vários contentores, incluindo dimensionamento e atualizações coordenadas.

Cenários

Embora a integração do orquestrador com Azure Container Instances ainda esteja em ascensão, prevemos que surjam alguns ambientes diferentes:

Orquestração exclusiva de instâncias de contentor

Uma vez que começam rapidamente e faturam pela segunda vez, um ambiente baseado exclusivamente no Azure Container Instances oferece a forma mais rápida de começar e lidar com cargas de trabalho altamente variáveis.

Combinação de instâncias de contentor e contentores no Máquinas Virtuais

Para cargas de trabalho estáveis e de execução prolongada, orquestrar contentores num cluster de máquinas virtuais dedicadas é normalmente mais barato do que executar os mesmos contentores com Azure Container Instances. No entanto, as instâncias de contentor oferecem uma ótima solução para expandir e contrair rapidamente a sua capacidade global para lidar com picos inesperados ou de curta duração na utilização.

Em vez de aumentar horizontalmente o número de máquinas virtuais no cluster e, em seguida, implementar contentores adicionais nessas máquinas, o orquestrador pode simplesmente agendar os contentores adicionais no Azure Container Instances e eliminá-los quando já não forem necessários.

Implementação de exemplo: nós virtuais para Azure Kubernetes Service (AKS)

Para dimensionar rapidamente cargas de trabalho de aplicações num cluster de Azure Kubernetes Service (AKS), pode utilizar nós virtuais criados dinamicamente no Azure Container Instances. Os nós virtuais permitem a comunicação de rede entre pods que são executados no ACI e no cluster do AKS.

Atualmente, os nós virtuais suportam instâncias de contentor do Linux. Introdução aos nós virtuais com a CLI do Azure ou portal do Azure.

Os nós virtuais utilizam o open source Kubelet Virtual para imitar o kubelet do Kubernetes ao registarem-se como um nó com capacidade ilimitada. O Kubelet Virtual distribui a criação de pods como grupos de contentores no Azure Container Instances.

Veja o projeto Do Kubelet Virtual para obter exemplos adicionais de expansão da API do Kubernetes para plataformas de contentores sem servidor.

Passos seguintes

Crie o seu primeiro contentor com Azure Container Instances com o guia de início rápido.