Você pode usar vSphere with Tanzu para transformar vSphere em uma plataforma para executar cargas de trabalho do Kubernetes de forma nativa na camada do hipervisor. Quando ativado em clusters vSphere, o vSphere with Tanzu fornece a capacidade de executar cargas de trabalho Kubernetes diretamente em hosts ESXi e de criar clusters Kubernetes upstream em namespaces dedicados chamados vSphere Namespace.

Os desafios da pilha de aplicativos de hoje

Os sistemas distribuídos de hoje são construídos com vários microsserviços, geralmente executando um grande número de pods e VMs do Kubernetes. Uma pilha típica que não é baseada em vSphere with Tanzu consiste em um ambiente virtual subjacente, com a infraestrutura Kubernetes implantada dentro de VMs e, respectivamente, pods Kubernetes também em execução nessas VMs. Três funções separadas operam cada parte da pilha, que são desenvolvedores de aplicativos, administradores de cluster Kubernetes e administradores vSphere.

Figura 1. A pilha de aplicativos de hoje
Uma pilha com três camadas: carga de trabalho Kubernetes, cluster Kubernetes, ambiente virtual. Três funções os gerenciam: Desenvolvedor, Administrador de Cluster, Administrador vSphere.
As diferentes funções não têm visibilidade ou controle sobre os ambientes umas das outras:
  • Como desenvolvedor de aplicativos, você pode executar pods do Kubernetes e implantar e gerenciar aplicativos baseados em Kubernetes. Você não tem visibilidade de toda a pilha que está executando centenas de aplicativos.
  • Como engenheiro de DevOps ou administrador de cluster, você só tem controle sobre a infraestrutura do Kubernetes, sem as ferramentas para gerenciar ou monitorar o ambiente virtual e resolver quaisquer problemas relacionados a recursos e outros.
  • Como administrador do vSphere, você tem controle total sobre o ambiente virtual subjacente, mas não tem visibilidade sobre a infraestrutura do Kubernetes, o posicionamento dos diferentes objetos do Kubernetes no ambiente virtual e como eles consomem recursos.

As operações na pilha completa podem ser desafiadoras, pois exigem comunicação entre todas as três funções. A falta de integração entre as diferentes camadas da pilha também pode apresentar desafios. Por exemplo, o agendador do Kubernetes não tem visibilidade sobre o inventário vCenter Server e não pode colocar pods de forma inteligente.

Como o vSphere with Tanzu ajuda?

vSphere with Tanzu cria um plano de controle do Kubernetes diretamente na camada do hipervisor. Como administrador do vSphere, você habilita clusters vSphere existentes para vSphere with Tanzu, criando assim uma camada do Kubernetes nos hosts ESXi que fazem parte dos clusters. vSphere clusters ativados para vSphere with Tanzu são chamados de Supervisors.

Figura 2. vSphere with Tanzu

vSphere with Tanzu com cargas de trabalho está na parte superior, a pilha do Ambiente Virtual está na parte inferior. Duas funções os gerenciam, Desenvolvedor e vSphere Administrador.
Ter um plano de controle do Kubernetes na camada de hipervisor ativa os seguintes recursos em vSphere:
  • Como administrador do vSphere, você pode criar namespaces no Supervisor, chamados vSphere Namespaces, e configurá-los com a quantidade especificada de memória, CPU e armazenamento. Você fornece vSphere Namespaces para engenheiros de DevOps.
  • Como engenheiro de DevOps, você pode executar cargas de trabalho do Kubernetes na mesma plataforma com pools de recursos compartilhados em um vSphere Namespace. Você pode implantar e gerenciar vários clusters Kubernetes upstream criados usando Tanzu Kubernetes Grid. Você também pode implantar contêineres Kubernetes diretamente no Supervisor dentro de um tipo especial de VM chamado vSphere Pod. Você também pode implantar VMs normais.
  • Como administrador do vSphere, você pode gerenciar e monitorar clusters de vSphere Pods, VMs e Tanzu Kubernetes Grid usando o vSphere Client.
  • Como administrador do vSphere, você tem visibilidade total sobre vSphere Pods, VMs e clusters Tanzu Kubernetes Grid em execução em namespaces diferentes, seu posicionamento no ambiente e como eles consomem recursos.

Ter o Kubernetes em execução na camada do hipervisor também facilita a colaboração entre os vSphere administradores e as equipes de DevOps, porque ambas as funções estão trabalhando com os mesmos objetos.

O que é uma carga de trabalho?

Em vSphere with Tanzu, as cargas de trabalho são aplicativos implantados de uma das seguintes maneiras:

  • Aplicativos que consistem em contêineres em execução dentro de vSphere Pods.
  • Cargas de trabalho provisionadas por meio do serviço de VM.
  • Tanzu Kubernetes Grid clusters implantados usando Tanzu Kubernetes Grid.
  • Aplicativos que são executados dentro dos clusters Tanzu Kubernetes Grid.

O que são vSphere Zonas?

vSphere As zonas fornecem alta disponibilidade contra falhas no nível do cluster para cargas de trabalho implantadas em vSphere with Tanzu. Como administrador do vSphere, você cria zonas vSphere no vSphere Client e, em seguida, mapeia clusters vSphere para zonas. Use as zonas para implantar Supervisors em seu ambiente vSphere with Tanzu.

Você pode implantar um Supervisor em três zonas vSphere para alta disponibilidade no nível do cluster. Ou você pode implantar um Supervisor em um único cluster vSphere, o que criará uma zona vSphere automaticamente e mapeá-la para o cluster, ou você pode usar um cluster que já está mapeado para uma zona. Para obter mais informações, consulte Supervisor Arquitetura e Supervisor Implantações zonais e de cluster.

O que é um cluster Tanzu Kubernetes Grid?

Um cluster Tanzu Kubernetes Grid é uma distribuição completa do Kubernetes criada, assinada e compatível com o VMware. Você pode provisionar e operar clusters de upstream Tanzu Kubernetes Grid em Supervisors usando Tanzu Kubernetes Grid.

Um cluster Tanzu Kubernetes Grid provisionado por Tanzu Kubernetes Grid tem as seguintes características:
Características do cluster TKG, começando da esquerda para a direita: opinativo, bem integrado, pronto para produção, com suporte total, gerenciado pelo Kubernetes
  • Instalação com opinião do Kubernetes. Tanzu Kubernetes Grid fornece padrões bem pensados que são otimizados para que vSphere provisione clusters Tanzu Kubernetes Grid. Ao usar o Tanzu Kubernetes Grid, você pode reduzir a quantidade de tempo e o esforço que normalmente gasta para implantar e executar um cluster Kubernetes de nível empresarial
  • Integrado com a infraestrutura vSphere. Um cluster Tanzu Kubernetes Grid é integrado à pilha SDDC vSphere, incluindo armazenamento, rede e autenticação. Além disso, um cluster Tanzu Kubernetes Grid é criado em um Supervisor que mapeia para clusters vSphere. Devido à forte integração, a execução de um cluster Tanzu Kubernetes Grid é uma experiência unificada do produto.
  • Pronto para Produção. Tanzu Kubernetes Grid provisiona clusters Tanzu Kubernetes Grid prontos para produção. Você pode executar cargas de trabalho de produção sem a necessidade de realizar nenhuma configuração adicional. Além disso, você pode garantir a disponibilidade e permitir atualizações contínuas de software do Kubernetes e executar diferentes versões do Kubernetes em clusters separados.
  • Alta disponibilidade para cargas de trabalho do Kubernetes. Os clusters Tanzu Kubernetes Grid implantados em três zonas vSphere Supervisor estão protegidos contra falhas no nível do cluster vSphere. A carga de trabalho e os nós do plano de controle dos clusters Tanzu Kubernetes Grid são distribuídos em todas as três zonas vSphere, o que torna as cargas de trabalho do Kubernetes executadas dentro deles altamente disponíveis. Os clusters Tanzu Kubernetes Grid em execução em uma zona Supervisor são protegidos contra falhas no nível do host ESXi, por meio de vSphere HA.
  • Totalmente suportado por VMware. Os clusters Tanzu Kubernetes Grid usam o software livre baseado em Linux de VMware, são implantados na infraestrutura vSphere e executados em hosts ESXi. Se você tiver problemas com qualquer camada da pilha, do hipervisor ao cluster Kubernetes, o VMware será o único fornecedor com o qual você precisará entrar em contato.
  • Gerenciado pelo Kubernetes. Os clusters Tanzu Kubernetes Grid são criados com base no Supervisor, que é um cluster Kubernetes. Um cluster Tanzu Kubernetes Grid é definido no vSphere Namespace usando um recurso personalizado. Você provisiona clusters Tanzu Kubernetes Grid de forma de autoatendimento usando comandos kubectl familiares e o Tanzu CLI. Há consistência em toda a cadeia de ferramentas, esteja você provisionando um cluster ou implantando cargas de trabalho, use os mesmos comandos, o YAML familiar e os fluxos de trabalho comuns.

Para obter mais informações, consulte Tanzu Kubernetes GridArquitetura e componentes e Usando Tanzu Kubernetes Grid 2 com vSphere with Tanzu .

O que é um vSphere Pod?

vSphere with Tanzu apresenta uma construção chamada vSphere Pod, que é o equivalente a um pod do Kubernetes. Uma vSphere Pod é uma VM com um tamanho reduzido que executa um ou mais contêineres do Linux. Cada vSphere Pod é dimensionado precisamente para a carga de trabalho que acomoda e tem reservas de recursos explícitas para essa carga de trabalho. Ele aloca a quantidade exata de recursos de armazenamento, memória e CPU necessários para a execução da carga de trabalho. vSphere Pods são compatíveis apenas com Supervisors configurados com NSX como a pilha de rede.

Figura 3. vSphere Pods
ESXi contendo duas caixas de vSphere Pod. Cada Pod vSphere tem contêineres em execução dentro dele, um kernel Linux, memória, CPU e recursos de armazenamento.
vSphere Pods são objetos em vCenter Server e ativam os seguintes recursos para cargas de trabalho:
  • Isolamento forte. Um vSphere Pod é isolado da mesma maneira que uma máquina virtual. Cada vSphere Pod tem seu próprio kernel Linux exclusivo, baseado no kernel usado em Photon OS. Em vez de muitos contêineres compartilharem um kernel, como em uma configuração bare metal, em um vSphere Pod, cada contêiner tem um kernel Linux exclusivo
  • Gerenciamento de Recursos. vSphere DRS processa o posicionamento de vSphere Pods no Supervisor.
  • Alto desempenho. vSphere Pods obtenha o mesmo nível de isolamento de recursos que as VMs, eliminando problemas de vizinhos barulhentos e mantendo o tempo de inicialização rápido e a baixa sobrecarga dos contêineres.
  • Diagnóstico. Como administrador do vSphere, você pode usar todas as ferramentas de monitoramento e introspecção disponíveis com o vSphere em cargas de trabalho.
vSphere Pods são compatíveis com a Open Container Initiative (OCI) e podem executar contêineres de qualquer sistema operacional, desde que esses contêineres também sejam compatíveis com OCI.
Figura 4. vSphere Pod Rede e armazenamento
vSphere Pod com contêineres, mecanismo de contêiner e mecanismo de pod dentro. O pod se conecta à imagem de contêiner, ao armazenamento, ao switch NSX, ao spherelet e ao hostd.

vSphere Pods usam três tipos de armazenamento, dependendo dos objetos armazenados, que são VMDKs efêmeros, VMDKs de volume persistente e VMDKs de imagem de contêineres. Como administrador do vSphere, você configura políticas de armazenamento para posicionamento do cache de imagem de contêiner e VMDKs efêmeros no nível Supervisor. Em um nível vSphere Namespace, você configura políticas de armazenamento para posicionamento de volumes permanentes. Consulte Armazenamento persistente para cargas de trabalho para obter detalhes sobre os requisitos e os conceitos de armazenamento com o vSphere with Tanzu.

Para a rede, vSphere Pods e as VMs dos clusters Tanzu Kubernetes Grid usam a topologia fornecida por NSX. Para obter detalhes, consulte Supervisor Rede.

vSphere Pods são compatíveis apenas com Supervisors que usam NSX como sua pilha de rede. Eles não são compatíveis com Supervisors configurados com a pilha de rede VDS.

O Spherelet é um processo adicional criado em cada host. É um kubelet que é portado nativamente para ESXi e permite que o host ESXi se torne parte do cluster Kubernetes.

Para obter informações sobre como usar vSphere Pods no Supervisors, consulte Implantando cargas de trabalho em vSphere pods na documentação do vSphere with Tanzu Serviços e cargas de trabalho.

Usando máquinas virtuais em vSphere with Tanzu

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 compartilhado e comum. Ambos, contêineres e VMs, compartilham os mesmos recursos vSphere Namespace e podem ser gerenciados por meio de uma única interface vSphere with Tanzu.

O Serviço de VM atende às necessidades das equipes de DevOps que usam Kubernetes, mas têm cargas de trabalho baseadas em VM existentes que não podem ser facilmente conteinerizadas. Ele também ajuda os usuários a reduzir a sobrecarga de gerenciamento de uma plataforma que não seja Kubernetes junto com uma plataforma de contêiner. Ao executar contêineres e VMs em uma plataforma Kubernetes, as equipes de DevOps podem consolidar o volume de carga de trabalho em apenas uma plataforma.

Observação: Além das VMs autônomas, o Serviço de VM gerencia as VMs que compõem os clusters Tanzu Kubernetes Grid. Para obter informações sobre os clusters, consulte a documentação Usando Tanzu Kubernetes Grid 2 com vSphere with Tanzu.
A ilustração mostra o Serviço de VM como um componente Supervisor que gerencia VMs autônomas e VMs que compõem clusters Tanzu Kubernetes Grid.

Cada VM implantada por meio do Serviço de VM funciona como uma máquina completa que executa todos os componentes, incluindo seu próprio sistema operacional, sobre a infraestrutura vSphere with Tanzu. A VM tem acesso à rede e ao armazenamento fornecidos por um Supervisor e é gerenciada usando o comando padrão do Kubernetes kubectl. A VM é executada como um sistema totalmente isolado, imune à interferência de outras VMs ou cargas de trabalho no ambiente do Kubernetes.

Quando usar máquinas virtuais em uma plataforma Kubernetes?

Geralmente, a decisão de executar cargas de trabalho em um contêiner ou em uma VM depende das suas necessidades e objetivos de negócios. Entre os motivos para usar VMs aparecem os seguintes:

  • Seus aplicativos não podem ser conteinerizados.
  • Os aplicativos são projetados para um kernel personalizado ou sistema operacional personalizado.
  • Os aplicativos são mais adequados para execução em uma VM.
  • Você deseja ter uma experiência consistente do Kubernetes e evitar sobrecarga. Em vez de executar conjuntos separados de infraestrutura para plataformas que não sejam Kubernetes e de contêiner, você pode consolidar essas pilhas e gerenciá-las com um comando kubectl familiar.

Para obter informações sobre como implantar e gerenciar máquinas virtuais autônomas em um Supervisor, consulte Implantando e gerenciando máquinas virtuais em vSphere with Tanzu na documentação do vSphere with Tanzu Serviços e cargas de trabalho.

Supervisor Services em vSphere with Tanzu

Supervisor Services são vSphere operadores certificados do Kubernetes que fornecem componentes de Infraestrutura como Serviço e serviços de Fornecedor de Software Independente totalmente integrados aos desenvolvedores. Você pode instalar e gerenciar o Supervisor Services no ambiente do vSphere with Tanzu para disponibilizá-lo para uso com cargas de trabalho do Kubernetes. Quando o Supervisor Services está instalado no Supervisors, os engenheiros de DevOps podem usar as APIs de serviço para criar instâncias no Supervisors em seus namespaces de usuário. Essas instâncias podem ser consumidas em clusters vSphere Pods e Tanzu Kubernetes Grid.

Saiba mais sobre os Supervisor Services compatíveis e como fazer download dos arquivos YAML de serviço em http://vmware.com/go/supervisor-service.

Para obter informações sobre como usar o Supervisor Services, consulte Gerenciando Serviços do Supervisor com o vSphere with Tanzu na documentação do vSphere with Tanzu Serviços e cargas de trabalho.