O Tanzu Kubernetes Grid 2 fornece gerenciamento de ciclo de vida de autoatendimento de clusters de carga de trabalho do Kubernetes. O TKG 2 em Supervisor é otimizado para o ambiente vSphere with Tanzu e se integra à infraestrutura subjacente, incluindo vCenter, ESXi, rede virtual e armazenamento nativo de nuvem. Com o TKG em Supervisor, você pode provisionar clusters Kubernetes em conformidade e manter a simultaneidade de upstream.

Tanzu Kubernetes Grid em Supervisor inclui vários componentes integrados à infraestrutura vSphere.
Figura 1. TKG 2 em Componentes do Supervisor
TKG 2 em componentes do Supervisor

Gerenciamento de carga de trabalho

O Workload Management é uma solução VMware que fornece um plano de controle do Kubernetes na infraestrutura vSphere nativa. A ativação do Gerenciamento de Carga de Trabalho permite que você implante um ou mais Supervisors em seu ambiente vSphere. O Workload Management é fornecido com o vCenter Server, mas licenciado separadamente.

Supervisor

Supervisor é um cluster Kubernetes que serve como o plano de controle para gerenciar clusters de carga de trabalho. Configure o Supervisor para oferecer suporte aos desenvolvedores que provisionam e operam clusters do Tanzu Kubernetes Grid.

Supervisor Implantação: vSphere Cluster

A maneira tradicional de implantar o Supervisor é em um único cluster vSphere. Um cluster vSphere é uma coleção de hosts ESXi gerenciados por um vCenter Server. Um cluster vSphere deve ser configurado com recursos específicos para oferecer suporte a Supervisor, incluindo:
  • Vários hosts ESXi conectados por um vSphere Distributed Switch (VDS)
  • Armazenamento compartilhado, como vSAN ou NFS
  • vSphere HA e totalmente automatizado DRS ativado no cluster
  • Pilha de rede, NSX com o balanceador de carga incorporado ou VDS com um balanceador de carga externo

Supervisor Implantação: vSphere zonas

vSphere 8 apresenta vSphere Zonas. Você pode atribuir clusters vSphere a zonas vSphere para fornecer alta disponibilidade e tolerância a falhas. A implantação de Supervisor em zonas vSphere permite provisionar clusters TKG em zonas de disponibilidade específicas.

Em uma implantação de Supervisor em um único cluster vSphere, há uma relação de um-para-um entre o cluster Supervisor e o vSphere. Em uma implantação Supervisor por zonas, o Supervisor estende-se por três clusters vSphere para fornecer domínios de alta disponibilidade e falha para clusters TKG.

Um administrador vSphere cria uma Zona vSphere e a associa a um cluster vSphere. Uma implantação do Supervisor em várias zonas do vSphere tem requisitos especiais, além dos requisitos de cluster do vSphere, incluindo:

  • Três zonas vSphere conectadas por um vSphere Distributed Switch (VDS)
  • Uma única zona vSphere pode conter apenas um cluster vSphere
  • Um Supervisor deve ser implantado em exatamente 3 vSphere zonas
  • Uma política de armazenamento vSphere disponível em todas as três zonas vSphere

vSphere Namespace

Um vSphere Namespace é um namespace em Supervisor em que um ou mais clusters Tanzu Kubernetes Grid são provisionados. Para cada vSphere Namespace, você configura o controle de acesso baseado em função, o armazenamento persistente, os limites de recursos, a biblioteca de imagens e as classes de máquina virtual.

Tanzu Kubernetes Grid 2

Tanzu Kubernetes Grid 2 é uma implementação do projeto de API de cluster de software livre que define um conjunto de recursos e controladores personalizados para gerenciar o ciclo de vida de clusters Kubernetes. Tanzu Kubernetes Grid 2 é um componente de Supervisor.

O Tanzu Kubernetes Grid 2 tem três camadas de controladores para gerenciar o ciclo de vida dos clusters do TKG 2, incluindo Virtual Machine Service, API de cluster e plug-in do provedor de nuvem.

Operador de VM
O controlador Virtual Machine Service fornece uma API declarativa no estilo Kubernetes para gerenciamento de VMs e recursos vSphere associados. O Virtual Machine Service apresenta o conceito de uma classe de máquina virtual que representa uma configuração de hardware reutilizável abstrata. O TKG 2 usa o Virtual Machine Service para gerenciar o ciclo de vida das VMs do plano de controle e do nó do trabalhador que hospedam um cluster de carga de trabalho.
API de cluster
O controlador de API de cluster fornece APIs declarativas no estilo Kubernetes para criação, configuração e gerenciamento de clusters. As entradas para a API de Cluster incluem um recurso que descreve o cluster, um conjunto de recursos que descreve as máquinas virtuais que compõem o cluster e um conjunto de recursos que descreve os complementos do cluster.
Plug-in de provedor de nuvem
Tanzu Kubernetes Grid provisiona clusters de carga de trabalho que incluem os componentes necessários para integração com os recursos vSphere Namespace subjacentes. Esses componentes incluem um plug-in de provedor de nuvem que se integra ao Supervisor. O TKG 2 usa o plug-in Cloud Provider para passar solicitações de volumes persistentes para o Supervisor, que é integrado ao VMware Cloud armazenamento nativo (CNS).

Tanzu Kubernetes Versões

Um Tanzu Kubernetes release fornece a distribuição de software Kubernetes e os complementos assinados e com suporte por VMware para uso com clusters Tanzu Kubernetes Grid.

Cada Tanzu Kubernetes release é distribuído como um modelo de máquina virtual (arquivo OVA). O Tanzu Kubernetes Grid usa o formato OVA para construir os nós de máquina virtual para clusters TKG 2. As versões do Tanzu Kubernetes têm controle de versão de acordo com o controle de versão do Kubernetes e incluem personalizações e otimizações do SO para a infraestrutura do vSphere.

Para obter uma lista de Tanzu Kubernetes versões e compatibilidade com Supervisor, consulte as Tanzu Kubernetes Notas de Versão. Consulte também a vSphere with Tanzu Política de suporte.

Biblioteca de conteúdo

Tanzu Kubernetes releases são disponibilizados para clusters TKG 2 usando uma biblioteca de conteúdo vCenter. Você pode criar uma biblioteca de conteúdo assinada e receber TKRs automaticamente quando eles forem disponibilizados por VMware ou usar uma biblioteca de conteúdo local e carregar TKRs manualmente.

Componentes de cluster do TKG 2

Os componentes que são executados em um cluster TKG 2 são quatro áreas: autenticação, armazenamento, rede e balanceamento de carga.

Webhook de autenticação

O webhook de autenticação é executado como um pod dentro do cluster para validar os tokens de autenticação do usuário.

Os clusters TKG 2 oferecem suporte à autenticação de duas maneiras: usando vCenter Single Sign-On e usando um provedor de identidade externo que ofereça suporte ao protocolo Open ID Connect (OIDC).

O TKG 2 executa o cliente Pinniped OIDC em Supervisor e nos nós de cluster do TKG 2. A configuração de um provedor OIDC externo para Supervisor configura automaticamente os componentes Pinniped.

O TKG 2 oferece suporte a vários clientes para autenticação com Supervisor, incluindo a CLI vSphere Plugin for kubectl e Tanzu.

Interface de armazenamento de contêiner (CSI)

Um plug-in CSI paravirtual é um pod do Kubernetes que é executado dentro de um cluster TKG e se integra ao VMware Cloud Armazenamento Nativo (CNS) por meio do Supervisor. Um pod do Kubernetes executado dentro de um cluster do TKG 2 pode montar três tipos de discos virtuais: efêmero, volume persistente e imagem de contêiner.

Armazenamento temporário

Um pod requer armazenamento temporário para armazenar dados efêmeros, como objetos Kubernetes, como logs, volumes e mapas de configuração. O armazenamento temporário dura enquanto o pod existir. Os dados temporários persistem nas reinicializações do contêiner, mas depois que o pod é excluído, o disco virtual que armazena os dados temporários desaparece.

Armazenamento persistente

O TKG 2 aproveita a estrutura de política de armazenamento vSphere para definir classes de armazenamento e reservar volumes permanentes. Os clusters TKG 2 passam solicitações de volumes persistentes para o Supervisor, que é integrado ao VMware Cloud Armazenamento Nativo (CNS). Os volumes persistentes são provisionados em nós de cluster dinamicamente usando uma classe de armazenamento ou manualmente.

Armazenamento de imagens de contêiner

Os contêineres dentro de um pod do Kubernetes usam imagens que contêm o software a ser executado. O pod monta imagens usadas por seus contêineres como discos virtuais de imagem. Quando o pod conclui seu ciclo de vida, os discos virtuais de imagem são desconectados do pod. O Kubelet é responsável por extrair imagens de contêiner do registro de imagens e transformá-las em discos virtuais para execução dentro do pod.

Interface de Rede do Contêiner (CNI)

O Plug-in de Interface de Rede do Contêiner é um plug-in CNI que fornece rede de pod.

Os clusters TKG 2 são compatíveis com as seguintes opções de Container Network Interface (CNI): Antrea (padrão) e Calico. Além disso, o TKG 2 fornece o Antrea NSX Routed CNI para implementar a rede de pods roteáveis.

A tabela resume os recursos de rede de cluster do TKG 2 e sua implementação.

Tabela 1. Rede de Cluster TKG 2
Endpoint Provedor Descrição
Conectividade do pod Antrea ou Calico Interface de rede de contêiner para pods. O Antrea usa o Open vSwitch. O Calico usa a ponte Linux com BGP.
Tipo de serviço: ClusterIP Antrea ou Calico Tipo de serviço padrão do Kubernetes que só pode ser acessado de dentro do cluster.
Tipo de serviço: NodePort Antrea ou Calico Permite o acesso externo por meio de uma porta aberta em cada nó do trabalhador pelo proxy de rede Kubernetes.
Política de rede Antrea ou Calico Controla o tráfego permitido de e para os pods e endpoints de rede selecionados. O Antrea usa o Open vSwitch. O Calico usa tabelas de IP do Linux.
Implementação do provedor de nuvem
A Implementação do Provedor de Nuvem permite que você crie serviços de entrada e balanceador de carga Kubernetes.
Tabela 2. Balanceamento de carga TKG 2
Endpoint Provedor Descrição
Tipo de serviço: LoadBalancer

NSX balanceador de carga incorporado (parte da pilha de rede NSX)

NSX balanceador de carga avançado (instalação separada para uso com a rede VDS)

HAProxy (instalação separada para uso com a rede VDS)

Para o balanceador de carga integrado NSX, um servidor virtual por definição de tipo de serviço.

Para o balanceador de carga avançado NSX, consulte essa seção desta documentação.

Para o HAProxy, consulte essa seção desta documentação.

Observação: Alguns recursos de balanceamento de carga podem não estar disponíveis em cada tipo de balanceador de carga compatível, como IPs estáticos.
Entrada do cluster Controlador de entrada de terceiros Fornece roteamento para o tráfego de pod de entrada. Você pode usar qualquer controlador de entrada de terceiros, como o Contour.

APIs de cluster do TKG 2

O TKG 2 fornece duas APIs para provisionamento e gerenciamento do ciclo de vida dos clusters do TKG 2.
  • Versão da API v1alpha3 para clusters Tanzu Kubernetes
  • Versão da API v1beta1 para clusters com base em um ClusterClass

A API v1alpha3 permite que você crie clusters Kubernetes em conformidade do tipo TanzuKubernetesCluster. Esse tipo de cluster é pré-configurado com padrões comuns para provisionamento rápido e pode ser personalizado. A API v1beta1 permite que você crie clusters Kubernetes em conformidade do tipo Cluster com base em um padrão ClusterClass fornecido por VMware.

Clientes de cluster TKG 2

O TKG 2 em Supervisor é compatível com várias interfaces de cliente para provisionamento, monitoramento e gerenciamento de clusters do TKG 2.
  • vSphere Client para configurar Supervisor e monitorar clusters TKG 2 implantados.
  • vSphere Plugin for kubectl para autenticação com clusters Supervisor e TKG 2 usando vCenter Single Sign-On.
  • kubectl para provisionar e gerenciar o ciclo de vida de clusters TKG 2 de forma declarativa e para interagir com Supervisor.
  • vSphere Docker Credential Helper para enviar e receber imagens de e para um registro de contêiner.
  • Tanzu CLI para provisionar clusters usando comandos e para instalar pacotes Tanzu.
  • Tanzu Mission Control Interface da Web para gerenciamento de clusters TKG 2.