Certas cargas de trabalho do Kubernetes exigem armazenamento persistente para armazenar dados permanentemente. Para provisionar armazenamento persistente para cargas de trabalho do Kubernetes, o vSphere with Tanzu se integra ao Cloud Native Storage (CNS), um componente do vCenter Server que gerencia volumes persistentes.

O armazenamento persistente é usado por vSphere Pods Tanzu Kubernetes clusters e VMs. O exemplo a seguir ilustra como o armazenamento persistente é usado por um vSphere Pod.

O vSphere with Tanzu integra-se ao Cloud Native Storage para provisionar armazenamento persistente.

Para entender como o vSphere with Tanzu funciona com armazenamento persistente, familiarize-se com os seguintes conceitos essenciais.

Volume persistente
Para fornecer armazenamento persistente, o Kubernetes usa volumes persistentes que podem reter seu estado e dados. Se os volumes persistentes forem montados por um pod, eles continuarão a existir mesmo quando o pod for excluído ou reconfigurado. No ambiente do vSphere with Tanzu, os objetos de volume persistentes são apoiados pelos discos de primeira classe em um armazenamento de dados.

O vSphere with Tanzu oferece suporte ao provisionamento dinâmico e estático de volumes no modo ReadWriteOnce, em que os volumes podem ser montados por um único pod.

A partir da versão vSphere 7.0 Update 3, o vSphere with Tanzu também oferece suporte ao modo ReadWriteMany para volumes persistentes em clusters do Tanzu Kubernetes. Com o suporte ReadWriteMany, um único volume pode ser montado simultaneamente por vários pods ou aplicativos em execução em um cluster. vSphere with Tanzu usa compartilhamentos de arquivos do vSAN para volumes persistentes do tipo ReadWriteMany. Para obter mais informações, consulte Criando ReadWriteMany Volumes Persistent em vSphere with Tanzu.

Provisionamento dinâmico e estático
Com o provisionamento de volume dinâmico, o armazenamento não precisa ser pré-provisionado e volumes persistentes podem ser criados sob demanda. Os engenheiros de DevOps emitem uma declaração de volume persistente que faz referência a uma classe de armazenamento disponível no namespace. O vSphere with Tanzu provisiona automaticamente o volume persistente correspondente e um disco virtual de suporte.

Os clusters Supervisor Cluster e Tanzu Kubernetes oferecem suporte ao provisionamento dinâmico.

Para obter um exemplo de como criar dinamicamente um volume persistente, consulte Provisionar um volume persistente dinâmico para um aplicativo com estado.

Com o provisionamento estático, você pode usar um objeto de armazenamento existente e torná-lo disponível para um cluster.

Normalmente, um engenheiro de DevOps deve conhecer os detalhes do objeto de armazenamento existente, suas configurações com suporte e as opções de montagem para poder reutilizá-lo.

Para obter um exemplo de como provisionar um volume persistente estático, consulte Provisionar um volume persistente estático em um Tanzu Kubernetes cluster.

Disco de primeira classe
O vSphere with Tanzu usa o tipo de disco virtual de primeira classe (FCD) para fazer backup de volumes persistentes. O Disco de Primeira Classe, também conhecido como Disco Virtual Aprimorado, é um disco virtual nomeado não associado a uma VM.

Os discos de primeira classe são identificados pelo UUID. Este UUID é globalmente exclusivo e é o identificador primário para o FCD. O UUID permanece válido mesmo se seu FCD for realocado ou instantâneo.

Reivindicação de volume persistente
Os engenheiros de DevOps criam declarações de volume persistentes para solicitar recursos de armazenamento persistentes. A solicitação provisiona um objeto de volume persistente e um disco virtual correspondente. No vSphere Client, a declaração de volume persistente se manifesta como um disco virtual FCD que pode ser monitorado por administradores do vSphere.
A declaração está vinculada ao volume persistente. As cargas de trabalho podem usar a declaração para montar os volumes persistentes e acessar o armazenamento.
Quando os engenheiros de DevOps excluem a declaração, o objeto de volume persistente correspondente e o disco virtual provisionado também são excluídos.
Classe de armazenamento
O Kubernetes usa classes de armazenamento para descrever os requisitos de armazenamento que dão suporte aos volumes persistentes. Os engenheiros de DevOps podem incluir uma classe de armazenamento específica em sua especificação de declaração de volume persistente para solicitar o tipo de armazenamento que a classe descreve.

Fluxo de trabalho de armazenamento persistente

O fluxo de trabalho para provisionar armazenamento persistente em vSphere with Tanzu geralmente inclui as seguintes ações sequenciais.

Etapa Ação Descrição
1 Os administradores do vSphere fornecem recursos de armazenamento persistentes para a equipe de DevOps. Os administradores do vSphere criam políticas de armazenamento de VM que descrevem diferentes requisitos de armazenamento e classes de serviços. Eles podem então atribuir as políticas de armazenamento a um vSphere Namespace.
2 vSphere with Tanzu cria classes de armazenamento que correspondem às políticas de armazenamento atribuídas ao vSphere Namespace. As classes de armazenamento aparecem automaticamente no ambiente do Kubernetes e podem ser usadas pela equipe de DevOps. Se um administrador do vSphere atribuir várias políticas de armazenamento ao vSphere Namespace, uma classe de armazenamento separada será criada para cada política de armazenamento.

Se você usar o Tanzu Kubernetes Grid Service para provisionar Tanzu Kubernetes clusters, cada cluster Tanzu Kubernetes herdará classes de armazenamento do vSphere Namespace no qual o cluster é provisionado.

3 Os engenheiros de DevOps usam as classes de armazenamento para solicitar recursos de armazenamento persistentes para uma carga de trabalho. A solicitação vem em uma forma de uma declaração de volume persistente que faz referência a uma classe de armazenamento específica.
4 vSphere with Tanzu cria um objeto de volume persistente e um disco virtual persistente correspondente para uma carga de trabalho. vSphere with Tanzu coloca o disco virtual no armazenamento de dados que atende aos requisitos especificados na política de armazenamento original e sua classe de armazenamento correspondente. O disco virtual pode ser montado por uma carga de trabalho.
5 Os administradores do vSphere monitoram volumes persistentes no ambiente do vSphere with Tanzu. Usando o vSphere Client, os administradores do vSphere monitoram os volumes persistentes e seus discos virtuais de suporte. Eles também podem monitorar a conformidade de armazenamento e os status de integridade dos volumes persistentes.

Engenheiros de DevOps criam declarações de volume persistentes para solicitar recursos de armazenamento persistentes. A declaração de armazenamento persistente faz referência a uma classe de armazenamento específica.

Assista a este vídeo para saber mais sobre o armazenamento persistente em vSphere with Tanzu.

Tarefas de gerenciamento de armazenamento de um administrador do vSphere

Geralmente, as tarefas de gerenciamento de armazenamento persistente em vSphere with Tanzu incluem o seguinte. Como administrador do vSphere, você usa o vSphere Client para executar essas tarefas.
  • Realize operações de ciclo de vida para as políticas de armazenamento de VM.

    Antes de ativar um Supervisor Cluster e configurar namespaces, crie políticas de armazenamento para armazenamento persistente. As políticas de armazenamento são baseadas nos requisitos de armazenamento comunicados a você pelos engenheiros de DevOps. Consulte o Criar políticas de armazenamento para vSphere with Tanzu.

    Observação: Não exclua a política de armazenamento de vCenter Server ou um vSphere Namespace quando uma declaração de volume persistente com a classe de armazenamento correspondente estiver em execução no namespace. Essa recomendação também se aplica a clusters Tanzu Kubernetes.
  • Forneça recursos de armazenamento para os engenheiros de DevOps atribuindo as políticas de armazenamento ao namespace e definindo limites de armazenamento. Para obter informações sobre como alterar as atribuições da política de armazenamento, consulte Alterar as configurações de armazenamento em um namespace. Para obter informações sobre como definir limites, consulte Configurar limitações em objetos Kubernetes em um vSphere Namespace.
  • Monitore objetos do Kubernetes e sua conformidade com a política de armazenamento no vSphere Client. Consulte o Monitore volumes persistentes no vSphere Client.

Tarefas de gerenciamento de armazenamento de um engenheiro de DevOps

Normalmente, o engenheiro de DevOps usa kubectl para realizar as seguintes tarefas de armazenamento.