O vSphere with Tanzu oferece uma funcionalidade de serviço de VM que permite que os engenheiros de DevOps implantem e executem VMs, além de contêineres, em um ambiente Kubernetes comum e compartilhado. Você pode usar o Serviço de VM para gerenciar o ciclo de vida de máquinas virtuais em um vSphere Namespace. O Serviço de VM gerencia VMs autônomas e VMs que compõem os clusters do Tanzu Kubernetes.

Geralmente, suas necessidades e objetivos de negócios ditam sua decisão de executar cargas de trabalho em uma VM em vez de em um contêiner. Para obter informações sobre quando executar uma VM, consulte Usando máquinas virtuais no vSphere with Tanzu.

Conceitos de serviço de VM

Para descrever o estado de uma VM a ser implantada em um vSphere Namespace, use parâmetros como uma classe de VM, uma imagem de VM e uma classe de armazenamento. O Serviço de VM reúne essas especificações para criar VMs autônomas ou que oferecem suporte a clusters de Tanzu Kubernetes.

Serviço de VM
O Serviço de VM é um componente do vSphere with Tanzu que fornece uma API declarativa de estilo Kubernetes para o gerenciamento de VMs e recursos associados do vSphere. O Serviço de VM permite que os administradores do vSphere forneçam recursos e forneçam modelos, como classes de VM e imagens de VM, para o Kubernetes. Os engenheiros de DevOps podem usar esses recursos para descrever o estado desejado de uma VM. Depois que os engenheiros de DevOps especificam o estado da VM, o Serviço de VM converte o estado desejado em um estado realizado em relação aos recursos de infraestrutura de suporte.

Uma VM criada por meio do Serviço de VM pode ser gerenciada apenas a partir do namespace Kubernetes com os comandos kubectl. Os administradores do vSphere não podem gerenciar a VM do vSphere Client, mas podem exibir seus detalhes e monitorar os recursos que ela usa. Para obter informações, consulte Monitoramento de máquinas virtuais disponíveis em vSphere with Tanzu.

Classe de VM
A classe de VM é uma especificação de VM que pode ser usada para solicitar um conjunto de recursos para uma VM. A classe de VM é controlada e gerenciada por um administrador do vSphere e define parâmetros como o número de CPUs virtuais, capacidade de memória e configurações de reserva. Os parâmetros definidos são apoiados e garantidos pelos recursos de infraestrutura subjacentes de um Cluster de Supervisor.

Um administrador do vSphere pode criar classes de VM personalizadas.

Além disso, o Gerenciamento de Carga de Trabalho oferece várias classes de VM padrão. Geralmente, cada tipo de classe padrão vem em duas edições: garantido e melhor esforço. Uma edição garantida reserva totalmente os recursos que uma especificação de VM solicita. Uma edição de classe de melhor esforço não permite que os recursos sejam sobrecarregados. Normalmente, um tipo garantido é usado em um ambiente de produção.

Exemplos de classes de VM padrão incluem o seguinte.

Classe CPU Memória (GB) CPU e memória reservadas
guaranteed-large 4 16 Sim
best-effort-large 4 16 Não
guaranteed-small 2 4 Sim
best-effort-small 2 4 Não

O administrador do vSphere pode atribuir qualquer número de classes de VM existentes para disponibilizá-las aos engenheiros de DevOps em um namespace específico.

A classe de VM fornece uma experiência simplificada para os engenheiros de DevOps. O DevOps não precisa entender a configuração completa de cada VM que eles planejam criar. Em vez disso, eles podem selecionar uma classe de VM entre as opções disponíveis e o Serviço de VM gerencia a configuração da VM.

No lado do Kubernetes, as classes de VM aparecem como recursos VirtualMachineClass e VirtualMachineClassBinding.

Imagem da VM
Uma imagem de VM é um modelo que contém uma configuração de software, incluindo um sistema operacional, aplicativos e dados.

Quando os engenheiros de DevOps criam VMs, eles podem selecionar imagens da biblioteca de conteúdo associada ao namespace. Para o DevOps, as imagens são expostas como objetos VirtualMachineImage.

O Serviço de VM oferece suporte a um número limitado de imagens de VM e sistemas operacionais convidados. Imagens de VM compatíveis aparecem no VMware Marketplace como OVFs. Certifique-se de usar apenas as imagens de VM que são compatíveis com o Serviço de VM. Para encontrar imagens compatíveis, procure por VM Service image no site VMware Cloud Marketplace . Veja um exemplo da imagem do Serviço de VM para CentOS em Imagem de Serviço de VM para CentOS .

Fonte de conteúdo
Um engenheiro de DevOps usa uma biblioteca de conteúdo como fonte de imagens para criar uma VM. Semelhante às classes de VM, um administrador do vSphere pode atribuir bibliotecas de conteúdo existentes a um namespace para disponibilizá-las aos engenheiros de DevOps.
Classe de armazenamento
O Serviço de VM usa classes de armazenamento para colocar discos virtuais e anexar volumes persistentes dinamicamente. Para obter mais informações sobre classes de armazenamento, consulte Usando o armazenamento persistente no vSphere with Tanzu.
Especificação de VM
Os engenheiros de DevOps descrevem o estado desejado de uma VM em um arquivo YAML que reúne a imagem da VM, a classe de VM e a classe de armazenamento.
Rede
O Serviço de VM não tem requisitos específicos e depende da configuração de rede disponível em vSphere with Tanzu. O Serviço de VM oferece suporte a ambos os tipos de rede, a rede vSphere ou o NSX-T. Quando as VMs são implantadas, um provedor de rede disponível aloca endereços IP estáticos para as VMs. Para obter informações, consulte Rede para vSphere with Tanzu.

Fluxo de trabalho do administrador do vSphere para provisionar uma VM

Como administrador do vSphere, você define proteções para a política e a governança das VMs e fornece recursos de VM, como classes de VM e modelos de VM para engenheiros de DevOps. Depois que uma VM é implantada, você pode monitorá-la usando o vSphere Client.

Etapa Descrição Instruções
1 Crie e gerencie classes de VM.
2 Associe um conjunto de classes de VM a um namespace. Associar uma classe de VM a um namespace no vSphere with Tanzu
3 Crie e gerencie bibliotecas de conteúdo.
4 Associe uma biblioteca de conteúdo a um namespace.
5 Associe classes de armazenamento a um namespace. Criar e configurar um vSphere Namespace
6 Monitore as VMs implantadas. Monitoramento de máquinas virtuais disponíveis em vSphere with Tanzu

Fluxo de trabalho do engenheiro de DevOps para provisionar uma VM

Os engenheiros de DevOps com permissões podem revisar os recursos de VM disponíveis e implantar VMs no namespace. Eles usam o comando kubectl para realizar as seguintes tarefas.

Etapa Descrição Instruções
1 Liste classes de VM, imagens e outros recursos associados ao namespace. Exibir recursos de VM disponíveis em um namespace no vSphere with Tanzu
2 Crie uma VM.