O vSphere with Tanzu usa vários componentes para se integrar ao armazenamento do vSphere.

Cloud Native Storage (CNS) em vCenter Server
O componente CNS reside em vCenter Server. É uma extensão do gerenciamento de vCenter Server que implementa operações de ciclo de vida e provisionamento para volumes persistentes.
Ao provisionar volumes de contêiner, o componente interage com a funcionalidade de Disco de Primeira Classe do vSphere para criar discos virtuais que suportam os volumes. Além disso, o componente do servidor CNS se comunica com o Gerenciamento Baseado em Políticas de Armazenamento para garantir um nível de serviço necessário para os discos.
O CNS também executa operações de consulta que permitem que os administradores do vSphere gerenciem e monitorem volumes persistentes e seus objetos de armazenamento de suporte por meio do vCenter Server.
Disco de primeira classe (FCD)
Também chamado de Disco Virtual Aprimorado. É um disco virtual nomeado não associado a uma VM. Esses discos residem em um armazenamento de dados VMFS, NFS ou vSAN e em volumes persistentes ReadWriteOnce.

A tecnologia FCD executa operações de ciclo de vida relacionadas a volumes persistentes fora de um ciclo de vida de uma VM ou pod.

Ao usar FCDs, tenha em mente o seguinte:
  • Os FCDs não oferecem suporte a protocolos NFS 4.x. Em vez disso, use o NFS 3.
  • vCenter Server não serializa operações no mesmo FCD. Como resultado, os aplicativos não podem realizar operações simultaneamente no mesmo FCD. Realizar operações como clonar, realocar, excluir, recuperar e assim por diante simultaneamente a partir de diferentes threads causa resultados imprevisíveis. Para evitar problemas, os aplicativos devem realizar operações no mesmo FCD em uma ordem sequencial.
  • O FCD não é um objeto gerenciado e não oferece suporte a um bloqueio global que protege várias gravações em um único FCD. Como resultado, o FCD não oferece suporte a várias instâncias de vCenter Server que gerenciam o mesmo FCD. Se você precisar usar várias instâncias de vCenter Server com FCDs, terá as seguintes opções:
    • Várias instâncias de vCenter Server podem gerenciar diferentes armazenamentos de dados.
    • Várias instâncias de vCenter Server não operam no mesmo FCD.
Gerenciamento baseado em políticas de armazenamento
O Gerenciamento Baseado em Políticas de Armazenamento é um serviço do vCenter Server que oferece suporte ao provisionamento de volumes persistentes e seus discos virtuais de suporte de acordo com os requisitos de armazenamento descritos em uma política de armazenamento. Após o provisionamento, o serviço monitora a conformidade do volume com as características da política de armazenamento. Para obter mais informações sobre o gerenciamento baseado em políticas de armazenamento, consulte Gerenciamento baseado em políticas de armazenamento .
vSphere CNS-CSI
O componente vSphere CNS-CSI está em conformidade com a especificação da Container Storage Interface (CSI), um padrão do setor projetado para fornecer uma interface que os orquestradores de contêineres como o Kubernetes usam para provisionar armazenamento persistente. O driver CNS-CSI é executado no Supervisor Cluster e conecta o armazenamento do vSphere ao ambiente do Kubernetes em um vSphere Namespace. O vSphere CNS-CSI se comunica diretamente com o plano de controle do CNS para todas as solicitações de provisionamento de armazenamento que vêm de vSphere Pods e pods que são executados em um cluster Tanzu Kubernetes no namespace.
CSI Paravirtual (pvCSI)
O pvCSI é a versão do driver vSphere CNS-CSI modificado para clusters Tanzu Kubernetes. O pvCSI reside no cluster Tanzu Kubernetes e é responsável por todas as solicitações relacionadas ao armazenamento originadas do cluster Tanzu Kubernetes. As solicitações são entregues ao CNS-CSI, que as propaga para o CNS em vCenter Server. Como resultado, o pvCSI não tem comunicação direta com o componente CNS, mas, em vez disso, depende do CNS-CSI para quaisquer operações de provisionamento de armazenamento.
Ao contrário do CNS-CSI, o pvCSI não requer credenciais de infraestrutura. Ele está configurado com uma conta de serviço no vSphere Namespace.

O exemplo a seguir ilustra como diferentes componentes interagem quando um engenheiro de DevOps executa uma operação relacionada ao armazenamento no cluster Tanzu Kubernetes, por exemplo, cria uma declaração de volume persistente (PVC).

O engenheiro de DevOps cria um PVC usando a linha de comando no cluster Tanzu Kubernetes. Esta ação gera um PVC correspondente no cluster supervisor e dispara o CNS-CSI. O CNS-CSI invoca a API de criação de volume do CNS.

Após a criação bem-sucedida de um volume, a operação se propaga de volta através do cluster supervisor para o cluster Tanzu Kubernetes. Como resultado dessa propagação, os usuários podem ver o volume persistente e a declaração de volume persistente no estado vinculado no cluster do supervisor. E eles também veem o volume persistente e a declaração de volume persistente no estado vinculado no cluster Tanzu Kubernetes.