A API declarativa do Tanzu Kubernetes Grid Service expõe vários parâmetros para a configuração de clusters Tanzu Kubernetes. Consulte a lista e a descrição de todos os parâmetros e diretrizes de uso para provisionar e personalizar seus clusters.
YAML anotado para provisionar um Tanzu Kubernetes cluster
apiVersion: run.tanzu.vmware.com/v1alpha1 kind: TanzuKubernetesCluster metadata: name: <tanzu kubernetes cluster name> namespace: <vsphere namespace where the cluster will be provisioned> spec: distribution: version: <tanzu kubernetes release version string: full, point, short> topology: controlPlane: count: <integer either 1 or 3> class: <vm class bound to the target vsphere namespace> storageClass: <vsphere storage policy bound to the target vsphere namespace> volumes: #optional setting for high-churn control plane component (such as etcd) - name: <user-defined string> mountPath: </dir/path> capacity: storage: <size in GiB> workers: count: <integer from 0 to 150> class: <vm class bound to the target vsphere namespace> storageClass: <vsphere storage policy bound to the target vsphere namespace> volumes: #optional setting for high-churn worker node component (such as containerd) - name: <user-defined string> mountPath: </dir/path> capacity: storage: <size in GiB> settings: #all spec.settings are optional storage: #optional storage settings classes: [<array of kubernetes storage classes for dynamic pvc provisioning>] defaultClass: <default kubernetes storage class> network: #optional network settings cni: #override default cni set in the tkgservicesonfiguration spec name: <antrea or calico> pods: #custom pod network cidrBlocks: [<array of pod cidr blocks>] services: #custom service network cidrBlocks: [<array of service cidr blocks>] serviceDomain: <custom service domain> proxy: #proxy server for outbound connections httpProxy: http://<IP:PORT> httpsProxy: http://<IP:PORT> noProxy: [<array of CIDRs to not proxy>] trust: #trust fields for custom public certs for tls additionalTrustedCAs: - name: <first-cert-name> data: <base64-encoded string of PEM encoded public cert 1> - name: <second-cert-name> data: <base64-encoded string of PEM encoded public cert 2>
Parâmetros para o provisionamento de Tanzu Kubernetes clusters
A tabela lista e descreve todos os parâmetros e valores aceitáveis para o provisionamento de um cluster do Tanzu Kubernetes. Para conhecer exemplos, consulte Exemplos de configuração da API do Tanzu Kubernetes Grid Service v1alpha1.
Nome | Valor | Descrição |
---|---|---|
apiVersion |
run.tanzu.vmware.com/v1alpha1 |
Especifica a versão da API Tanzu Kubernetes Grid Service. |
kind |
TanzuKubernetesCluster |
Especifica o tipo de recurso do Kubernetes a ser criado. O único valor permitido é TanzuKubernetesCluster (diferencia maiúsculas de minúsculas). |
metadata |
Seção para metadados do cluster | Inclui metadados de cluster, como name e namespace . Esses são os metadados padrão do Kubernetes, então você pode usar generateName em vez de name , adicionar rótulos e anotações e assim por diante. |
name |
Uma cadeia de caracteres definida pelo usuário que aceita caracteres alfanuméricos e traços, por exemplo: my-tkg-cluster-1 |
Especifica o nome do cluster a ser criado. Restrições de nomenclatura do cluster atual:
|
namespace |
Uma cadeia de caracteres definida pelo usuário que aceita caracteres alfanuméricos e traços, por exemplo: my-sns-1 |
Identifica o nome do Namespace de Supervisor no qual o cluster será implantado. Esta é uma referência a um Namespace de Supervisor que existe no Cluster de Supervisor. |
spec |
Seção para especificações técnicas do cluster | Inclui a especificação, expressa de forma declarativa, para o estado final do cluster, incluindo o nó toplogy e o software Kubernetes distribution . |
distribution |
Seção para especificar a versão de lançamento do Tanzu Kubernetes | Indica a distribuição para o cluster: o software de cluster Tanzu Kubernetes instalado no plano de controle e os nós de trabalho, incluindo o próprio Kubernetes. |
version |
Cadeia de caracteres alfanumérica com traços representando a versão do Kubernetes, por exemplo: ou v1.20.2 ou v1.20 |
Especifica a versão do software da distribuição do Kubernetes a ser instalada nos nós do cluster usando a notação de versão semântica. Pode especificar a versão totalmente qualificada ou usar atalhos de versão, como "version: v1.20.2", que é resolvido para a imagem mais recente correspondente a essa versão do patch, ou "version: v1.20", que é resolvido para a mais recente versão do patch correspondente. A versão resolvida é exibida como "fullVersion" na descrição do cluster após sua criação. |
topology |
Seção para topologias de nó de cluster | Inclui campos que descrevem o número, a finalidade e a organização dos nós do cluster e os recursos alocados para cada um. Os nós de cluster são agrupados em pools com base na finalidade pretendida: control-plane ou worker . Cada pool é homogêneo, tendo a mesma alocação de recursos e usando o mesmo armazenamento. |
controlPlane |
Seção para configurações do plano de controle | Especifica a topologia do plano de controle do cluster, incluindo o número de nós (count ), o tipo de VM (class ) e os recursos de armazenamento alocados para cada nó (storageClass ). |
count |
Um número inteiro que é 1 ou 3 |
Especifica o número de nós do plano de controle. O plano de controle deve ter um número ímpar de nós. |
class |
Um elemento definido pelo sistema na forma de uma cadeia de caracteres de um conjunto enumerado, por exemplo: guaranteed-small ou best-effort-large |
Especifica o nome da VirtualMachineClass que descreve as configurações de hardware virtual a serem usadas em cada nó no pool. Isso controla o hardware disponível para o nó (CPU e memória), bem como as solicitações e os limites desses recursos. Consulte o Classes de máquina virtual para Tanzu Kubernetes clusters. |
storageClass |
node-storage (por exemplo) |
Identifica a classe de armazenamento a ser usada para armazenamento dos discos que armazenam os sistemas de arquivos raiz dos nós do plano de controle. Execute kubectl describe ns no namespace para exibir as classes de armazenamento disponíveis. As classes de armazenamento disponíveis para o namespace dependem do armazenamento definido pelo administrador do vSphere. As classes de armazenamento associadas ao Namespace de Supervisor são replicadas no cluster. Em outras palavras, a classe de armazenamento deve estar disponível no Namespace do Supervisor para ser um valor válido para esse campo. Consulte o Configurando e gerenciando namespaces do vSphere. |
volumes |
Configuração de armazenamento opcional
|
Pode especificar parâmetros de disco e armazenamento separados para etcd em nós do plano de controle. Veja o exemplo Cluster com discos e parâmetros de armazenamento separados. |
workers |
Seção para configurações de nó de trabalhador | Especifica a topologia dos nós de trabalho do cluster, incluindo o número de nós (count ), o tipo de VM (class ) e os recursos de armazenamento alocados para cada nó (storageClass ). |
count |
Um número inteiro entre 0 e 150, por exemplo: 1 ou 2 ou 7 |
Especifica o número de nós de trabalho no cluster. Um cluster com zero nós de trabalhador pode ser criado, permitindo um cluster com apenas nós de plano de controle. Não há um máximo rígido para o número de nós de trabalho, mas um limite razoável é 150. |
class |
Um elemento definido pelo sistema na forma de uma cadeia de caracteres de um conjunto enumerado, por exemplo: guaranteed-small ou best-effort-large |
Especifica o nome da VirtualMachineClass que descreve as configurações de hardware virtual a serem usadas em cada nó no pool. Isso controla o hardware disponível para o nó (CPU e memória), bem como as solicitações e os limites desses recursos. Consulte o Classes de máquina virtual para Tanzu Kubernetes clusters. |
storageClass |
node-storage (por exemplo) |
Identifica a classe de armazenamento a ser usada para armazenamento dos discos que armazenam os sistemas de arquivos raiz dos nós de trabalho. Execute kubectl describe ns no namespace para listar as classes de armazenamento disponíveis. As classes de armazenamento disponíveis para o namespace dependem do armazenamento definido pelo administrador do vSphere. As classes de armazenamento associadas ao Namespace de Supervisor são replicadas no cluster. Em outras palavras, a classe de armazenamento deve estar disponível no namespace do supervisor para ser válida. Consulte o Configurando e gerenciando namespaces do vSphere. |
volumes |
Configuração de armazenamento opcional
|
Pode especificar parâmetros separados de disco e armazenamento para imagens de contêiner em nós de trabalho. Veja o exemplo Cluster com discos e parâmetros de armazenamento separados. |
settings |
Seção para configurações específicas do cluster; todos os spec.settings são opcionais |
Identifica informações de configuração de tempo de execução opcionais para o cluster, incluindo detalhes de network nó e storage persistente para pods. |
storage |
Seção para especificar o armazenamento | Identifica entradas de armazenamento de volume persistente (PV) para cargas de trabalho de contêiner. |
classes |
Matriz de uma ou mais cadeias de caracteres definidas pelo usuário, por exemplo: ["gold", "silver"] |
Especifica classes de armazenamento de volume persistente nomeado (PV) para cargas de trabalho de contêiner. As classes de armazenamento associadas ao Namespace de Supervisor são replicadas no cluster. Em outras palavras, a classe de armazenamento deve estar disponível no Namespace do Supervisor para ser um valor válido. Veja o exemplo Cluster com classes de armazenamento e uma classe padrão para volumes persistentes. |
defaultClass |
silver (por exemplo) |
Especifica uma classe de armazenamento nomeada a ser anotada como padrão no cluster. Se você não especificar, não haverá padrão. Você não precisa especificar um ou mais classes para especificar um defaultClass . Algumas cargas de trabalho podem exigir uma classe padrão, como Helm. Veja o exemplo Cluster com classes de armazenamento e uma classe padrão para volumes persistentes. |
network |
Marcador de seção para configurações de rede | Especifica as configurações relacionadas à rede para o cluster. |
cni |
Marcador de seção para especificar o CNI | Identifica o plug-in da Interface de Rede do Contêiner (CNI) para o cluster. O padrão é Antrea, que não precisa ser especificado para novos clusters. |
name |
Cadeia de caracteres antrea ou calico |
Especifica o CNI a ser usado. Antrea e Calico são compatíveis. A configuração do sistema define o Antrea como o CNI padrão. O CNI padrão pode ser alterado. Se estiver usando o padrão, esse campo não precisará ser especificado. |
services |
Marcador de seção para especificar sub-redes de serviços do Kubernetes | Identifica as configurações de rede para os serviços do Kubernetes. O padrão é 10.96.0.0/12. |
cidrBlocks |
Matriz ["198.51.100.0/12"] (por exemplo) |
Especifica um intervalo de endereços IP a ser usado para serviços Kubernetes. O padrão é 10.96.0.0/12. Não deve se sobrepor às configurações escolhidas para o Cluster de Supervisor. Embora esse campo seja uma matriz, permitindo vários intervalos, atualmente apenas um único intervalo de IP é permitido. Veja os exemplos de rede em Exemplos para provisionamento de clusters Tanzu Kubernetes usando a API Tanzu Kubernetes Grid Service v1alpha1. |
pods |
Marcador de seção para especificar sub-redes de pods do Kubernetes | Especifica as configurações de rede para pods. O padrão é 192.168.0.0/16. O tamanho mínimo do bloco é / 24. |
cidrBlocks |
Matriz ["192.0.2.0/16"] (por exemplo) |
Especifica um intervalo de endereços IP a ser usado para pods Kubernetes. O padrão é 192.168.0.0/16. Não deve se sobrepor às configurações escolhidas para o Cluster de Supervisor. O tamanho da sub-rede de pods deve ser igual ou maior que / 24. Embora esse campo seja uma matriz, permitindo vários intervalos, atualmente apenas um único intervalo de IP é permitido. Veja os exemplos de rede em Exemplos para provisionamento de clusters Tanzu Kubernetes usando a API Tanzu Kubernetes Grid Service v1alpha1. |
serviceDomain |
"cluster.local" |
Especifica o domínio do serviço para o cluster. O padrão é cluster.local . |
proxy |
Seção que especifica a configuração de proxy HTTP (s) para o cluster. Se implementados, todos os campos serão obrigatórios. | Fornece campos para configurações de proxy especificadas; será preenchido automaticamente se um proxy global estiver configurado e o proxy de cluster individual não estiver configurado. Veja o exemplo Cluster com um servidor proxy. |
httpProxy |
http://<user>:<pwd>@<ip>:<port> |
Especifica uma URL de proxy a ser usada para criar conexões HTTP fora do cluster. |
httpsProxy |
http://<user>:<pwd>@<ip>:<port> |
Especifica uma URL de proxy a ser usada para criar conexões HTTPS fora do cluster. |
noProxy |
Matriz de blocos CIDR para não proxy, por exemplo: Obtenha os valores necessários provenientes da Rede de Carga de Trabalho no Cluster do Supervisor: Consulte a imagem abaixo para saber quais valores incluir no campo de matriz |
Você não deve usar como proxy as sub-redes usadas pela Rede de Carga de Trabalho no Cluster de Supervisor para Pods, Entrada e Saída. Você não precisa incluir o CIDR de Serviços do Cluster de Supervisor no campo Os endpoints Os CIDRs de Pod e de Serviço para clusters Tanzu Kubernetes não são automaticamente colocados em proxy. Você não precisa adicioná-los ao campo Veja o exemplo Cluster com um servidor proxy. |
trust |
Marcador de seção para trust parâmetros. |
Não aceita dados. |
additionalTrustedCAs |
Aceita uma matriz de certificados com name e data para cada um. |
Não aceita dados. |
name |
Cadeia de caracteres | O nome do certificado TLS. |
data |
Cadeia de caracteres | A cadeia de caracteres codificada em base64 de um certificado público codificado por PEM. |
Obtenha os valores de noProxy
necessários da Workload Network no Supervisor Cluster, conforme mostrado na imagem.