Proxmox VE – Criando Contêineres a partir de Templates Prontos

Em continuidade a série de artigos sobre o Proxmox VE, hoje irei escrever sobre a criação de Contêineres no Proxmox utilizando os templates prontos, disponíveis no próprio repositório do Proxmox. Também irei abordar alguns dos aspectos que diferenciam a criação de máquina virtual e contêiner, e quais as vantagens que a rápida implantação de um template pronto podem trazer na rotina diária de um SysAdmin. 

Antes de entrarmos em detalhes técnicos, vou tentar resumir brevemente o conceito do uso de Imagens (templates) e  Containeres. No aspecto de virtualização, 

No aspecto de virtualização podemos definir um Template como uma imagem criada de um sistema e seus arquivos modificados para rodar um determinado aplicativo ou serviços. Em outras palavras, é como se criasse uma imagem de um computador funcionando com todos os programas instalados e salva para reutilizá-la na implantação de novos computadores iguais. 

Leia Mais:

Como melhorar o desempenho do seu PC através da BIOS e encontrar possíveis problemas
11 Comandos de rede que todo administrador Windows deveria utilizar
Como Reiniciar Windows Server via CMD e Powershell
Como desabilitar o update automático do Windows 10
Código-fonte do Windows XP e Windows Server 2003 foram vazados

Os Contêineres podem ser interpretados como uma espécie de Sandbox criadas a partir de uma imagem (template), com todas as suas dependências empacotadas para rodar as aplicações e o sistema próprio, fornecendo uma camada de abstração de virtualização a nível de sistema operacional aproveitando a infraestrutura do Kernel do sistema operacional do Host. 

O que diferencia o uso de Containers (templates) de máquinas virtuais, em poucas palavras, é que não é preciso realizar a instalação de um sistema operacional por completo para executar programas e serviços, mas sim apenas executar a imagem (template) que contém os arquivos e dependências necessárias para a execução dos programas. Desta forma, há um desempenho muito melhor de hosts que são executados sob contêineres comparados aos que estão em hospedados em máquinas virtuais. Esse “reaproveitamento” dos recursos do host hospedeiro, traz uma enorme vantagem na economia de recursos de hardware permitindo com que um servidor hospedeiro possa suportar um número ainda maior de serviços.

Agora que já revisamos o conceito sobre o que são contêineres e sabemos qual a diferença entre um contêiner e uma máquina virtual, vamos ao que interessa!

O Proxmox VE possui uma biblioteca nativa de templates open-source que podem ser baixadas para a execução de novos hosts virtuais. Para visualizar esta lista e baixar um template, o administrador do sistema deverá acessar a Storage de Armazenamento e em seguida ir até aba Content e depois em Templates como na imagem a seguir:

Ao clicar sobre o botão Templates, será exibida esta tela com as coleções de Templates prontos do repositório do Proxmox:

Para realizar o download de um Template, basta selecionar a imagem desejada e em seguida clicar sobre o botão Download no canto inferior direito desta mesma tela. 

Quando o download for concluído, a saída desta tela será algo como:

A imagem baixada poderá ser visualizada dentro da Storage e já estará disponível para a criação do primeiro Contêiner.

No Proxmox, para criar um Contêiner se assemelha muito ao processo da criação de uma máquina virtual. Para isso, podemos clicar com o botão direito do mouse sob o nome do nó Pve neste caso e indo até a opção “Create CT” ou até mesmo, clicando no botão Create CT no canto superior direito da interface de gerenciamento Web:

1ª ETAPA

Na primeira tela General devem ser informados os dados como o Hostname (nome de identificação para o contêiner) e Password (senha utilizada para acesso ao contêiner através do Console). 

Há a possibilidade de carregar um arquivo contendo uma chave SSH para acesso ao contêiner por um host confiável do administrador, utilizando o botão Load SSH Key File. Este recurso exige um conhecimento um pouco mais avançado sobre o uso de chaves SSH que não abordarei neste artigo, então vamos seguir utilizando o método da senha. O item “Unprivileged Containers” ou em português “Contêineres sem privilégios” deixaremos desmarcado nesta demonstração. Estes tipos de contêineres usam um novo recurso de kernel denominado namespaces de usuário, onde caso haja algum problema de segurança como a invasão por um intruso, e o invasor conseguir “sair da caixa” onde o Contêiner está hospedado, se deparará com um usuário comum qualquer e com privilégios extremamente limitados. Existem algumas abordagens técnicas mais aprofundadas sobre o uso ou não de Contêineres privilegiados, mas não as abordaremos neste estudo.

#DicaProfissa: Faça um curso profissionalizante!
Garanta um curso certificado na área de TI e Software pela plataforma de estudos online Udemy.
Clique aqui e confira todos os cursos mais recentes em tecnologia!

Então, após preenchido os campos de HostName e Password vamos clicar em Next.

2ª ETAPA

Na aba Template deverá ser selecionada a Storage onde nosso template está armazenado, e logo no campo abaixo Template, deverá ser selecionado qual o Template que utilizaremos para criar o nosso contêiner:

Após selecionadas as informações nos dois campos, vamos partir para a próxima etapa clicando em Next.

3ª ETAPA

Na aba Root Disk iremos selecionar qual a Storage e o tamanho limite em GB onde o nosso contêiner irá realizar a gravação e armazenamento dos dados:

Definidas estas informações, vamos clicar em Next para irmos até a próxima etapa.

4ª ETAPA

Na aba CPU nós iremos informar a quantidade de Cores do processador a serem alocados para este Contêiner. O limite de Cores é definido de acordo com o tipo de processador utilizado no host hospedeiro:

Realizada a configuração desta etapa, vamos clicar em Next.

5ª ETAPA

Na aba Memory iremos definir a quantidade de memória RAM que será alocada do Host hospedeiro para a execução deste contêiner, como também definiremos o espaço em disco  que poderá ser utilizado para criação de memória Swap:

Após ajustados os valores nos dois campos, vamos clicar em Next.

6ª ETAPA

Na aba Network serão definidas as configurações para a conexão de rede do contêiner. Aqui é possível escolhermos através de qual interface de rede nosso contêiner irá se conectar e definirmos manualmente um endereçamento IPV4 (IP de rede Local) ou deixá-lo em IP Dinâmico (DHCP) para que o mesmo obtenha um endereço automático do servidor DHCP da rede local:

A opção Firewall serve para habilitar o gerenciamento das regras de Firewall do servidor do Proxmox, controlando estritamente o acesso a portas permitidas do contêiner. É uma boa prática utilizar este recurso ativo se bem gerenciado, pois aumenta um nível de segurança importante. Entretanto, para que ele funcione corretamente torna-se necessário o conhecimento mínimo de regras de firewall como a liberação de portas e protocolos.

#DicaProfissa: Faça um curso profissionalizante!
Garanta um curso certificado na área de TI e Software pela plataforma de estudos online Udemy.
Clique aqui e confira todos os cursos mais recentes em tecnologia!

Após definidas as configurações nesta aba, vamos clicar em Next.

7ª ETAPA

Na aba DNS serão informados os endereços IP dos servidores DNS que o contêiner irá utilizar para a resolução de nomes na Internet ou rede local. Em nosso exemplo, utilizaremos o DNS da Google e da CloudFlare:

Preenchidos estes campos, vamos para a etapa final que é a confirmação de todos os dados. Clique em Next.

8ª ETAPA

Na aba Confirm teremos um breve resumo das configurações que foram definidas em todas as etapas para conferência antes da criação do contêiner:

Se tudo está correto, chegou a hora de finalizarmos o processo de criação e iniciarmos nosso host. Caso queira modificar algo em etapas anteriores, você poderá utilizar o botão Back ou na parte superior da janela, clicar na etapa em que deseja-se alterar.

Outra dica que facilita o processo, é marcar a CheckBox “Start after created”. Isto significa que o Proxmox automaticamente irá iniciar o contêiner após a sua criação, não sendo necessário realizar esta ação manualmente.

Depois de revisar todos estes itens, finalmente iremos clicar em Finish.

Será aberta uma nova tela exibindo os detalhes do processo de criação do novo contêiner, e ao finalizar, a saída como o resultado será algo semelhante á esta:

Após o sucesso na criação do nosso contêiner demonstração, podemos gerenciá-lo selecionando o mesmo no menu principal do Nó pve.

Em Summary, são apresentadas as informações sobre o consumo de recursos do contêiner em percentuais e também em modo gráfico, onde o administrador pode acompanhar com mais detalhes o uso dos recursos.

Em Console é exibida a interface de interação onde poderemos efetuar o login na instância do nosso contêiner e manipulá-lo como um sistema operacional:

O usuário padrão para realizar o login no contêiner do Proxmox é o root. A senha para login, é a senha que definimos na primeira etapa de criação do contêiner.

No item Resources, é possível realizar a alteração dos recursos alocados para a execução do contêiner e também adicionar um novo ponto de montagem de disco. Isto se aplica para uso de um disco que esteja conectado ao host hospedeiro do Proxmox. Há também a possibilidade de mover o disco da instância (do Contêiner) para outra Storage que esteja conectada ao Proxmox, selecionando a linha Root Disk e em seguida, clicando em Move Volume:

Em Network é exibido as conexões de rede do Contêiner. Nesta mesma tela ainda é possível adicionar novas interfaces de comunicação ou alterar as informações da interface atual:

No menu DNS são exibidos os endereços IP dos servidores DNS que estão em utilização pelo contêiner juntamente com o hostname do contêiner. Aqui é possível realizar a modificação dos endereços IP dos servidores DNS e a alteração do hostname do contêiner:

Na guia Options estão disponíveis outras opções de configuração para o contêiner selecionado como a possibilidade de iniciar sua execução automaticamente no boot do sistema operacional do host hospedeiro.

No menu Task History são apresentadas as tarefas que foram executadas no contêiner juntamente com o Status de cada uma delas. Ao selecionar uma tarefa em específico onde se deseja obter os detalhes, podemos utilizar o botão View:

No menu Backup pode-se realizar uma cópia de segurança do contêiner em seu atual estado de execução, a fins de arquivamento para uma possível recuperação de desastre ou migração de servidor hospedeiro:

O menu Replications é utilizado para configurar a replicação dos dados deste contêiner para os demais nós do Proxmox, nos casos de utilização de um Cluster. Neste artigo, iremos pular os detalhes desta etapa.

#DicaProfissa: Faça um curso profissionalizante!
Garanta um curso certificado na área de TI e Software pela plataforma de estudos online Udemy.
Clique aqui e confira todos os cursos mais recentes em tecnologia!

O menu Snapshots permite criar pontos de restauração para o contêiner atual. Isto pode ser utilizado pelo administrador antes de se modificar uma configuração ou de se instalar um novo programa, pois caso algo dê errado, há a possibilidade RollBack e voltar ao ponto anterior:

O menu Firewall serve para criar as regras de Firewall para acesso a serviços ou portas específicas do contêiner. Para uso deste menu como mencionei em um trecho anterior deste artigo, é necessário que o administrador possua um conhecimento básico sobre o funcionamento das regras de firewall. Nesta etapa, irei pular os detalhes sobre este item.

O menu Permissions serve para delimitar os níveis de acesso de outros usuários da plataforma Proxmox á este contêiner. Através deste menu, é possível controlar quais os usuários terão acesso ao contêiner e o que eles poderão fazer.

Algumas outras funcionalidades que ainda não mencionei, são os recursos a nível de gerenciamento dos contêineres a partir da interface do Proxmox, como a parada manual ou forçada da execução, o início automático e a conversão de um modelo de template baixado para um novo template.

Ao clicar com o botão direito do mouse sobre o contêiner em execução, o Proxmox exibe as opções:

  • Shutdown – executa o shutdown(desligamento) do sistema operacional do host selecionado, enviando um comando de desligamento do sistema.
  • Stop – força a parada da execução do host selecionado e interrompe a execução do serviço, como se “puxasse o computador ligado da tomada”.
  • Reboot – executa o comando de reinício do sistema do host selecionado, enviando um comando de desligamento e após um novo comando de início do sistema operacional. 
  • Clone – cria uma cópia fiel do host selecionado com todas as informações iguais.
  • Convert to Template –  converte o host selecionado para um Template, ou seja, uma imagem que poderá ser utilizada como base para a criação de vários outros contêineres. 

Ao converter um Contêiner para Template (modelo de imagem), o mesmo automaticamente mudará a imagem e o status para Stopped. Após convertido, não será possível recuperar o mesmo host para seu estado original. 

Um host após ser convertido para Template (modelo de imagem), servirá como base para a criação de vários outros contêineres. Para criar um novo contêiner a partir de um template que nós mesmos criamos neste artigo, vamos clicar com o botão direito do mouse sobre o Contêiner que foi convertido para Template e ir até a opção Clone:

Será aberta uma nova tela pedindo para inserirmos um Hostname para o novo Host que estará sendo criado:

Em Mode temos a opção de escolher:

  • Linked Clone – em português Clone Vinculado, significa que será executado um novo contêiner como um “filho” do nosso modelo, ocupando menos espaço em disco pois se é aproveitado alguns recursos da imagem modelo (Template). Este modo não pode ser executado sem acesso ao modelo de base.
  • Full Clone – em português Clone Completo, significa que será realizada uma cópia completa do modelo original e será criado um novo contêiner independente, ocupando o mesmo espaço em disco que o modelo.

#DicaProfissa: Faça um curso profissionalizante!
Garanta um curso certificado na área de TI e Software pela plataforma de estudos online Udemy.
Clique aqui e confira todos os cursos mais recentes em tecnologia!

Após as definições de todos os campos preenchidas, iremos clicar no botão Clone.

Após a execução do processo de Clone, será exibida uma saída semelhante a esta. Note também que no menu do nó pve, aparecerá um novo Container que foi o resultado obtido no processo de clonagem do nosso template.

Por hoje é só pessoal, espero que vocês tenham gostado do conteúdo deste artigo e que ele possa levar o conhecimento desta incrível solução open-source que é o Proxmox VE á muitas pessoas.

Este artigo foi produzido exclusivamente para o site dicasdeinfra.com.br por mim, João Paulo Scopel. Sua reprodução está autorizada desde que mantidos os direitos autorais ao criador e ao site dicasdeinfra.com.br.

Atuo como Consultor de Soluções Open Source, caso precisem de algum trabalho, mentoria ou consultoria, através dos canais de contato do Blog ou minhas Redes Sociais estarei á disposição.

Referências: http://pve.proxmox.com/

Este artigo foi útil?

Para manter um padrão de qualidade para vocês, investimos em um ótimo plano de hospedagem, CDN Pago, Plugins de Otimização para o Site, etc…

Ajude-nos a manter o projeto ativo! 

Acompanhe as novidades em tempo real. Siga nosso perfil no Instagram..

João Paulo Scopel
João Paulo Scopel é graduado em Sistemas de Informação e profissional de Tecnologia da Informação há 10 anos. Atua como Analista de Tecnologia e Infraestrutura com ênfase em soluções Linux, é Consultor de Soluções Open-Source para empresas e é Colunista do Dicas de Infra.
pt_BRPortuguese

ATÉ 90% DE DESCONTO

DECOLE SUA CARREIRA!!

Quer dar um upgrade na sua carreira? 

Invista em você e saia na frente! Conquiste aquele emprego dos sonhos em 2022!