Um vSphere Namespace é uma tenancy com escopo de rede em Supervisor. vSphere Namespaces são usados para hospedar clusters TKG e fornecer rede, permissões de função, armazenamento persistente, cota de recursos e biblioteca de conteúdo e integração de classe de VM.

vSphere Namespace Rede

Uma rede vSphere Namespace é uma sub-rede esculpida do Supervisor > Rede de carga de trabalho (Workload Network) > Rede de namespace (Namespace Network). O prefixo de sub-rede de namespace define o tamanho da sub-rede reservada para cada vSphere Namespace. O padrão é /28.

A rede vSphere Namespace fornece conectividade para clusters TKG para Supervisor. Por padrão, o vSphere Namespace usará as configurações de rede no nível do cluster e alocará endereços IP de sua sub-rede. Quando você cria um vSphere Namespace, um segmento de sobreposição /28 e o pool de IPs correspondente são instanciados para os pods de serviço nesse vSphere Namespace.

Quando o primeiro cluster TKG é provisionado em um vSphere Namespace, o cluster TKG compartilhará a mesma sub-rede que seu vSphere Namespace. Para cada cluster TKG subsequente provisionado nesse vSphere Namespace, uma nova sub-rede é criada para esse cluster e conectada ao seu gateway vSphere Namespace.

Há uma instância de balanceador de carga compartilhada no vSphere Namespace que é responsável por rotear o tráfego kubectl para cada plano de controle de cluster do TKG. Além disso, para cada balanceador de carga de serviço do Kubernetes com recursos no cluster TKG, uma instância do balanceador de carga de camada 4 é criada para esse serviço.

Os clusters TKG dentro do mesmo vSphere Namespace compartilham um IP SNAT para conectividade norte-sul. A conectividade leste-oeste entre namespaces não é SNAT.

O vSphere Namespace normalmente não é roteável. No entanto, se você estiver usando a rede NSX, poderá substituir a Rede vSphere Namespace por uma sub-rede roteável. Consulte Substituir Supervisor configurações de rede.

vSphere Namespace Pools de recursos

Em uma única implantação da vSphereZona Supervisor, quando você cria uma vSphere Namespace, um pool de recursos que faz o suporte para esse namespace é criado. O vSphere Namespace fornece uma unidade lógica de recursos em Supervisor, incluindo processamento, armazenamento, permissões, classes e imagens. Quando você configura um limite de CPU ou memória em um vSphere Namespace, por exemplo, os mesmos limites de recursos são aplicados ao pool de recursos que oferece suporte a esse namespace. Dessa forma, vSphere Namespaces habilite a multilocação em Supervisor.

A mesma experiência de vários locatários se aplica ao Supervisor implantado em três zonas do vSphere. Quando um vSphere Namespace é criado em um Supervisor zoneado, o sistema cria um pool de recursos em cada um dos vSphere clusters que oferecem suporte a esse Supervisor. Isso permite que um cluster TKG provisionado nesse vSphere Namespace seja implantado em qualquer uma das zonas pertencentes a este Supervisor.

Usando o vSphere Client, você pode exibir o pool de recursos e os objetos do vSphere Namespace selecionando a perspectiva Hosts and Clusters e também a exibição VMs and Templates. Quando você provisiona um cluster TKG, ele é criado no destino vSphere Namespace. Em uma implantação com zonas Supervisor, você terá o mesmo pool de recursos em cada cluster vSphere.

vSphere Objetos de namespace

vSphere Namespace Armazenamento para clusters TKG 2

vSphere O Cloud Native Storage (CNS) fornece políticas de armazenamento que oferecem suporte ao provisionamento de volumes permanentes e seus discos virtuais de backup para uso com cargas de trabalho do Kubernetes.

A Container Storage Interface (CSI) é um padrão do setor que o Kubernetes usa para provisionar armazenamento persistente para contêineres. Supervisor executa um driver CNS-CSI que conecta o armazenamento CNS do vSphere ao ambiente Kubernetes por meio do 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 provenientes de clusters TKG no vSphere Namespace.

Os clusters TKG executam uma versão modificada do driver CNS-CSI vSphere, responsável por todas as solicitações relacionadas ao armazenamento originadas do cluster TKG. As solicitações são entregues ao CNS-CSI em Supervisor, que as propaga para o CNS no vCenter Server.

O diagrama mostra a relação entre os mecanismos de armazenamento de cluster vSphere Namespace, Supervisor e TKG.

""

Volumes de armazenamento persistente para clusters TKG 2

Volumes persistentes são necessários para aplicativos com estado no Kubernetes. Para obter mais informações sobre volumes persistentes, consulte a documentação do Kubernetes.

No ambiente vSphere, os objetos de volume permanente são suportados por discos virtuais que residem em repositórios de dados. Os repositórios de dados são representados por políticas de armazenamento. Quando você atribui uma política de armazenamento vSphere a um vSphere Namespace, a política de armazenamento é disponibilizada como uma classe de armazenamento Kubernetes para cada cluster TKG nesse namespace.

O TKG oferece suporte ao provisionamento dinâmico e estático de volumes persistentes. Com o provisionamento dinâmico, o volume persistente não precisa ser pré-provisionado. Você emite uma declaração de volume persistente (PVC) que faz referência a uma classe de armazenamento disponível no vSphere Namespace. O TKG provisiona automaticamente o volume persistente correspondente com um disco virtual de backup. Consulte Como criar volumes de armazenamento persistentes dinamicamente.

Com o provisionamento estático, você usa um objeto de armazenamento existente e o disponibiliza para um cluster. Você define o volume persistente fornecendo os detalhes do objeto de armazenamento existente, suas configurações com suporte e as opções de montagem. Consulte Como criar volumes de armazenamento persistente estaticamente.

O diagrama ilustra o fluxo de trabalho de provisionamento de volume persistente dinâmico. Você cria um PVC usando kubectl no cluster TKG. Essa ação gera um PVC correspondente em Supervisor e aciona o driver CNS-CSI, que invoca a API de criação de volume do CNS.

""

Edições de classe de armazenamento para clusters TKG 2

Para configurar um vSphere Namespace, atribua uma ou mais políticas de armazenamento de vSphere. Quando a política de armazenamento vSphere é aplicada, ela é convertida em uma classe de armazenamento Kubernetes e replicada em Supervisor. Da mesma forma, o controlador TKG replica a classe de armazenamento em cada cluster TKG implantado nesse vSphere Namespace.

No lado do cluster do TKG, você verá duas edições da classe de armazenamento: uma com o nome definido pelo usuário especificado quando a política de armazenamento vSphere foi criada e a outra com *-latebinding anexado ao nome.

A edição de associação tardia da classe de armazenamento pode ser usada pelos desenvolvedores para associar a um volume de armazenamento persistente depois que o nó de cálculo é selecionado pelo agendador de pod do TKG. Para obter mais informações sobre qual classe de armazenamento usar e quando, consulte Como usar classes de armazenamento para volumes persistentes.
kubectl get sc
NAME                                    PROVISIONER              RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
wcpglobal-storage-profile               csi.vsphere.vmware.com   Delete          Immediate              true                   2m43s
wcpglobal-storage-profile-latebinding   csi.vsphere.vmware.com   Delete          WaitForFirstConsumer   true                   2m43s

vSphere Namespace Criação

Há várias maneiras de criar vSphere Namespaces.

Os administradores podem criar vSphere Namespaces usando o vSphere Client. Consulte Criar um vSphere Namespace para hospedar clusters TKG em Supervisor.

Os usuários de vCenter Single Sign-On que recebem a permissão de função Proprietário para um vSphere Namespace podem criar vSphere Namespaces de maneira autoatendimento usando kubectl. Consulte Ativar a criação do vSphere Namespace usando o Kubectl.

VMware expõe APIs do vCenter Server para gerenciar o ciclo de vida de vSphere Namespaces e fornece SDKs, incluindo: