Serviço de Contêiner do Azure (ACS) é uma solução de hospedagem de contêiner otimizada para ferramentas de orquestrador de contêiner de código aberto comumente usadas. As ferramentas de orquestrador de contêiner com suporte são DC/OS baseado em Mesos, Kubernetes e Docker Swarm. Ou, o mecanismo autônomo do Docker pode ser usado. O Serviço de Contêiner do Azure expõe os pontos de extremidade da API para um mecanismo de orquestração selecionado, para que ferramentas de código aberto para vários casos de uso, incluindo monitoramento, integração contínua e ferramentas de linha de comando, possam acessar o serviço de contêiner.
O que é um ACS Docker Swarm?
Um Enxame de Docker é uma coleção/cluster de máquinas virtuais (VMs) executando o Docker Engine e inclui outros recursos, como Load Balancers, VM Scale Sets ou Availability Sets, Storage e Network. Um Docker Swarm no Serviço de Contêiner do Azure consiste em nós Swarm Master e Swarm Agent (VMs). Um Swarm Master pode ser conectado diretamente usando uma chave SSH RSA. Um Agente Swarm não pode ser conectado diretamente usando uma chave SSH RSA.
O cluster do Docker Swarm do Serviço de Contêiner do Azure não é um cluster do modo Docker Swarm. O modo Docker Swarm deve ser inicializado em um mestre ACS Swarm. Quando um Docker Swarm Cluster é criado em um Portal do Azure, todos os recursos necessários (VMs, conjuntos de dimensionamento, balanceadores de carga) são criados automaticamente.
Este artigo tem as seguintes seções:
- Definindo o ambiente
- Iniciando o Azure Cloud Shell
- Criando um par de chaves SSH RSA
- Criando um enxame do Docker do Serviço de Contêiner do Azure
- Explorando os recursos do cluster do Docker Swarm
- Conectando-se a um Swarm Master
- Conclusão
Definindo o ambiente
Uma conta do Azure é o único pré-requisito. Uma conta do Azure pode ser criada em https://azure.microsoft.com/.
Iniciando o Azure Cloud Shell
O Azure fornece uma interface de cliente para se conectar à ferramenta do Azure chamada Cloud Shell. Cloud Shell é um shell de administrador baseado em navegador para se conectar ao Azure. O Cloud Shell oferece suporte a ferramentas de cliente para seleção, incluindo módulos do PowerShell, ferramentas do Azure, ferramentas de contêiner, ferramentas de banco de dados, interpretadores de shell do Linux, controle de origem e ferramentas de compilação. O Cloud Shell também oferece suporte a várias linguagens de programação, incluindo .NET e Node.js. Para iniciar o Cloud Shell, clique em >_ ícone, como mostrado na Figura 1.
Figura 1: Iniciando o Cloud Shell
Criando um par de chaves SSH RSA
Para criar uma solução hospedada baseada no Azure Container Service, é necessária uma chave SSH RSA. Crie uma chave SSH RSA do Cloud Shell com o seguinte comando:
ssh-keygen -t rsa -b 2048
Um prompt de comando para especificar o arquivo no qual salvar a chave é exibido, conforme mostrado na Figura 2. Clique em Enter para selecionar o arquivo padrão.
Figura 2: Gerando uma chave SSH RSA
Outro prompt de comando para especificar a senha é exibido. Clique em Enter para não usar uma senha. Independentemente de uma senha ser selecionada ou não, um prompt de comando de confirmação é exibido para especificar a senha novamente. Clique em Enter novamente se nenhuma senha for usada. Um par de chaves pública/privada é gerado e salvo. A saída completa do comando ssh-keygen está listada a seguir:
[email protected]:~$ ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (/home/deepak/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/deepak/.ssh/id_rsa. Your public key has been saved in /home/deepak/.ssh/id_rsa.pub. The key fingerprint is: SHA256:+YArpP5Eri/JENp0b3CKVbOz3qFPveivTHr1vyaHv/o [email protected] The key's randomart image is: +---[RSA 2048]----+ | | | o | | . o | |. . + +. . | |.+ +o=.oS | |o o=. +..+. | | o..+o.oooo. . | | .+o .o=o. .+ o | | o+o .+*oo .OEo | +----[SHA256]-----+
As permissões padrão definidas na chave SSH RSA são muito abertas e não podem ser usadas com ACS. Modifique as permissões para 400 (somente leitura pelo proprietário):
[email protected]:~$ chmod 400 /home/deepak/.ssh/id_rsa
Usaremos a chave SSH RSA quando criarmos um Docker Swarm. Abra o arquivo de chave pública em um editor vi:
[email protected]:~$ vi /home/deepak/.ssh/id_rsa.pub
E, selecione tudo e copie o conteúdo do id_rsa.pub arquivo e armazenar em um arquivo de texto para ser usado posteriormente.
Criando um Azure Container Service Docker Swarm
Para criar um Docker Swarm baseado no Serviço de Contêiner do Azure, clique em Novo no portal do Azure, conforme mostrado na Figura 3.
Figura 3: Portal do Azure>Novo
No Novo assistente, vários aplicativos do Azure Marketplace são exibidos para escolha, conforme mostrado na Figura 4.
Figura 4: Novo assistente
Selecione o Serviço de Contêiner do Azure, conforme mostrado na Figura 5.
Figura 5: Selecionando o Serviço de Contêiner do Azure
O assistente Criar Serviço de Contêiner do Azure é iniciado, conforme mostrado na Figura 6, com o Básico caixa de diálogo para definir as configurações básicas exibidas.
Figura 6: Criar Serviço de Contêiner do Azure>Noções Básicas
Especifique um serviço de contêiner Nome (hello-world-docker) e selecione uma Assinatura . Para Grupo de recursos, selecione Usar existente e selecione um grupo de recursos, conforme mostrado na Figura 7. Como alternativa, selecione Criar novo opção.
Figura 7: Criar Serviço de Contêiner do Azure>Noções Básicas
Selecione um Local e clique em OK, conforme mostrado na Figura 8.
Figura 8: Definindo configurações básicas para um serviço de contêiner do Azure
Na configuração do mestre, forneça as informações do mestre, conforme mostrado na Figura 9.
Figura 9: Configuração principal
Selecione Orquestrador como Enxame , como mostrado na Figura 10.
Figura 10: Selecionando o Orchestrator como Docker Swarm
Especifique um prefixo de nome DNS (“docker” – um nome arbitrário) e especifique um Nome de usuário , que também é um nome arbitrário. No campo de chave pública SSH, coloque a chave pública SSH RSA que foi armazenada anteriormente em um arquivo de texto, conforme discutido na seção Criando um par de chaves SSH RSA . Selecione Contagem principal (1, 3 ou 5), conforme mostrado na Figura 11. Um número ímpar de nós mestres é provisionado para requisitos de alta disponibilidade.
Figura 11: Fornecendo informações mestre
Clique em OK (veja a Figura 12).
Figura 12: Concluindo a configuração mestre
Em configuração do agente , especifique a Contagem de agentes , selecione o Tamanho da máquina virtual do agente e clique em OK, conforme mostrado na Figura 13.
Figura 13: Configuração do agente
Em Resumo , a configuração do Swarm é validada e uma mensagem de “Validação aprovada” deve ser exibida, conforme mostrado na Figura 14. Clique em OK.
Figura 14: Resumo do enxame
A implantação do Swarm é iniciada, conforme mostrado na Figura 15.
Figura 15: Implantando o Serviço de Contêiner do Azure
Quando a implantação for concluída, a mensagem "Implantação bem-sucedida" será exibida (consulte a Figura 16).
Figura 16: Implantação bem-sucedida
Explorando os recursos do cluster do Docker Swarm
Os recursos para o Swarm são exibidos, conforme mostrado na Figura 17. Clique em Ver mais para exibir a lista completa de recursos gerados.
Figura 17: Recursos
Todos os recursos do Swarm são exibidos, conforme mostrado na Figura 18. O tipo de recurso do Swarm é indicado em TYPE coluna e inclui máquinas virtuais, conjuntos de dimensionamento de máquinas virtuais, endereços IP públicos, conjuntos de disponibilidade, balanceadores de carga e interfaces de rede.
Figura 18: Recursos de enxame
Conectando a um Swarm Master
Para se conectar a um Swarm master, clique em uma máquina virtual Swarm master, conforme mostrado na Figura 18. Copie o Endereço IP Público da página de detalhes do Swarm master (veja a Figura 19).
Figura 19: Endereço IP público do Swarm Master
Clique para copiar o endereço IP público do Swarm master, conforme mostrado na Figura 20.
Figura 20: Copiando o endereço IP público do Swarm Master
Usando a chave privada SSH, porta SSH (2200), nome de usuário e endereço IP público, conecte-se à VM mestre do Swarm:
[email protected]:~$ ssh -i /home/deepak/.ssh/id_rsa -p 2200 [email protected]
No prompt de comando “Tem certeza de que deseja continuar conectando (sim/não)?”, especifique “yes” e uma conexão será estabelecida com o Swarm master, conforme mostrado na Figura 21. O Swarm master é indicado para executar o Ubuntu SO.
Figura 21: Conectando ao Swarm Master
Uma VM mestre do Swarm executa o mecanismo do Docker por padrão.
Conclusão
Neste artigo, criamos um cluster do Docker Swarm no Azure Container Service (ACS). Um ACS Docker Swarm não é um cluster do modo Docker Swarm, que deve ser inicializado como em qualquer host Docker executando a versão 1.12 ou posterior. As outras opções (além do Docker Swarm) são criar um DC/OS baseado em Mesos ou um cluster Kubernetes. Um ACS Docker Swarm é um cluster de máquinas virtuais que executam o Docker. O Serviço de Contêiner do Azure provisiona todos os recursos, incluindo máquinas virtuais, endereços IP públicos, conjuntos de dimensionamento de máquinas virtuais, balanceadores de carga e interfaces de rede. Nos conectamos a um Swarm master usando uma chave privada SSH RSA, nome de usuário e endereço IP público do Swarm master.