Quando vSphere with Tanzu está ativado em um cluster do vSphere, ele cria um plano de controle do Kubernetes dentro da camada de hipervisor. Essa camada contém objetos específicos que permitem a execução de cargas de trabalho do Kubernetes no ESXi.

Figura 1. Supervisor Cluster Arquitetura geral

vSphere with TanzuSupervisor ClustervSphere PodsSupervisor ClusterTanzu KubernetesSupervisor ClusterSupervisor ClustervSphere NamespacevSphere PodsTanzu Kubernetes

Figura 2. Arquitetura de Cluster de Supervisor
  • VM do plano de controle do Kubernetes. Três VMs de plano de controle do Kubernetes no total são criadas nos hosts que fazem parte do Supervisor Cluster. As três VMs de plano de controle têm carga balanceada, pois cada uma delas tem seu próprio endereço IP. Além disso, um endereço IP flutuante é atribuído a uma das VMs. O vSphere DRS determina o posicionamento exato das VMs do plano de controle nos hosts ESXi e as migra quando necessário. O vSphere DRS também é integrado ao Agendador Kubernetes nas VMs do plano de controle, para que o DRS determine o posicionamento de vSphere Pods. Quando, como engenheiro de DevOps, você agenda um vSphere Pod, a solicitação passa pelo fluxo de trabalho regular do Kubernetes e depois para o DRS, que toma a decisão final de posicionamento.
  • Spherelet. Um processo adicional chamado Spherelet é criado em cada host. É um kubelet que é portado nativamente para ESXi e permite que o host ESXi se torne parte do cluster do Kubernetes.
  • Container Runtime Executivo (CRX). O CRX é semelhante a uma VM do ponto de vista do Hostd e do vCenter Server. O CRX inclui um kernel Linux paravirtualizado que funciona junto com o hipervisor. O CRX usa as mesmas técnicas de virtualização de hardware que as VMs e tem um limite de VM em torno dele. Uma técnica de inicialização direta é usada, o que permite que o convidado Linux do CRX inicie o processo de inicialização principal sem passar pela inicialização do kernel. Isso permite que o vSphere Pods inicialize quase tão rápido quanto os contêineres.
  • A API do cluster e o VMware Tanzu™ Kubernetes Grid™ Service são módulos que são executados no Supervisor Cluster e permitem o provisionamento e o gerenciamento de Tanzu Kubernetes clusters. O módulo Virtual Machine Service é responsável por implantar e executar VMs autônomas e VMs que compõem os clusters do Tanzu Kubernetes.

vSphere Namespace

Um vSphere Namespace define os limites de recursos nos quais os clusters vSphere Pods e Tanzu Kubernetes criados usando o Tanzu Kubernetes Grid Service podem ser executados. Quando criado inicialmente, o namespace tem recursos ilimitados no Supervisor Cluster. Como administrador do vSphere, você pode definir limites para CPU, memória e armazenamento, bem como o número de objetos do Kubernetes que podem ser executados no namespace. Um pool de recursos é criado para cada namespace no vSphere. As limitações de armazenamento são representadas como cotas de armazenamento no Kubernetes.

Figura 3. vSphere Namespace
Namespace de supervisor

Para fornecer acesso a namespaces ao engenheiro de DevOps, como administrador do vSphere, você atribui permissão a usuários ou grupos de usuários disponíveis em uma origem de identidade associada a vCenter Single Sign-On.

Depois que um namespace é criado e configurado com limites de recursos e objetos, bem como com permissões e políticas de armazenamento, como um engenheiro de DevOps, você pode acessar o namespace para executar cargas de trabalho do Kubernetes e criar clusters do Tanzu Kubernetes usando o Tanzu Kubernetes Grid Service.

Tanzu Kubernetes Clusters

Um cluster do Tanzu Kubernetes é uma distribuição completa do software Kubernetes de código aberto que é empacotado, assinado e compatível com o VMware. No contexto do vSphere with Tanzu, você pode usar o Tanzu Kubernetes Grid Service para provisionar clusters do Tanzu Kubernetes no Supervisor Cluster. Você pode invocar a API do Tanzu Kubernetes Grid Service declarativamente usando kubectl e uma definição YAML.

Um cluster Tanzu Kubernetes reside em um vSphere Namespace. Você pode implantar cargas de trabalho e serviços em clusters do Tanzu Kubernetes da mesma maneira e usando as mesmas ferramentas que usaria com clusters do Kubernetes padrão.
Figura 4. vSphere with Tanzu Arquitetura para Tanzu Kubernetes clusters

Supervisor Cluster Configurado com a pilha de rede do vSphere

Um Supervisor Cluster configurado com a pilha de rede do vSphere só oferece suporte a clusters em execução Tanzu Kubernetes criados usando o Tanzu Kubernetes Grid Service. O cluster também oferece suporte ao vSphere Network Service e ao Serviço de Armazenamento.

Um Supervisor Cluster configurado com a pilha de rede do vSphere não oferece suporte a vSphere Pods. Portanto, o componente Spherelet não está disponível nesses pods do Supervisor Cluster e do Kubernetes executados apenas dentro dos clusters do Tanzu Kubernetes. Um Supervisor Cluster configurado com a pilha de rede do vSphere também não oferece suporte ao Harbor Registry, pois o serviço é usado apenas com o vSphere Pods.

Um vSphere Namespace criado em um cluster que está configurado com a pilha de rede do vSphere também não oferece suporte a vSphere Pods em execução, mas apenas a clusters de Tanzu Kubernetes.