Você pode personalizar o Tanzu Kubernetes Grid Service com configurações globais para os principais recursos, incluindo a interface de rede do contêiner (CNI), o servidor proxy e os certificados TLS. Esteja ciente das compensações e considerações ao implementar a funcionalidade global versus por cluster.
Especificação do TkgServiceConfiguration v1alpha2
TkgServiceConfiguration
fornece campos para configurar a instância do
Tanzu Kubernetes Grid Service.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TkgServiceConfiguration metadata: name: tkg-service-configuration-spec spec: defaultCNI: string proxy: httpProxy: string httpsProxy: string noProxy: [string] trust: additionalTrustedCAs: - name: string data: string defaultNodeDrainTimeout: time
TkgServiceConfiguration
se aplica a todos os clusters
Tanzu Kubernetes provisionados por esse serviço. Se uma atualização contínua for iniciada, manualmente ou por upgrade, os clusters serão atualizados pela especificação de serviço alterada.
Especificação anotada TkgServiceConfiguration v1alpha2
TkgServiceConfiguration
. Para conhecer exemplos, consulte
Exemplos de configuração da API do Tanzu Kubernetes Grid Service v1alpha1.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TkgServiceConfiguration metadata: name: tkg-service-configuration-spec spec: #defaultCNI is the default CNI for all Tanzu Kubernetes #clusters to use unless overridden on a per-cluster basis #supported values are antrea, calico, antrea-nsx-routed #defaults to antrea defaultCNI: string #proxy configures a proxy server to be used inside all #clusters provisioned by this TKGS instance #if implemented all fields are required #if omitted no proxy is configured proxy: #httpProxy is the proxy URI for HTTP connections #to endpionts outside the clusters #takes the form http://<user>:<pwd>@<ip>:<port> httpProxy: string #httpsProxy is the proxy URI for HTTPS connections #to endpoints outside the clusters #takes the frorm http://<user>:<pwd>@<ip>:<port> httpsProxy: string #noProxy is the list of destination domain names, domains, #IP addresses, and other network CIDRs to exclude from proxying #must include Supervisor Cluster Pod, Egress, Ingress CIDRs noProxy: [string] #trust configures additional trusted certificates #for the clusters provisioned by this TKGS instance #if omitted no additional certificate is configured trust: #additionalTrustedCAs are additional trusted certificates #can be additional CAs or end certificates additionalTrustedCAs: #name is the name of the additional trusted certificate #must match the name used in the filename - name: string #data holds the contents of the additional trusted cert #PEM Public Certificate data encoded as a base64 string data: string #defaultNodeDrainTimeout is the total amount of time the #controller spends draining a node; default is undefined #which is the value of 0, meaning the node is drained #without any time limitations; note that `nodeDrainTimeout` #is different from `kubectl drain --timeout` defaultNodeDrainTimeout: time
Nenhum requisito de campo de proxy
Você obtém os valores de CIDR de spec.proxy.noProxy
necessários da Workload Network no Supervisor Cluster. Você não deve usar o proxy nos CIDRs de Pods, de Entrada e de Saída incluindo-os no campo noProxy
.
noProxy
:
- Você não precisa incluir o CIDR de serviços de Supervisor Cluster no campo
noProxy
. Os clusters Tanzu Kubernetes não interagem com esses serviços. - Os endpoints
localhost
e127.0.0.1
não têm proxy automaticamente. Você não precisa adicioná-los ao camponoProxy
. - Os CIDRs de Pod e Serviço para clusters Tanzu Kubernetes não são automaticamente colocados em proxy. Você não precisa adicioná-los ao campo
noProxy
.
Quando usar opções de configuração global ou por cluster
O TkgServiceConfiguration
é uma especificação global que afeta todos os clusters Tanzu Kubernetes provisionados pela instância do Tanzu Kubernetes Grid Service.
TkgServiceConfiguration
, esteja ciente das alternativas por cluster que podem satisfazer seu caso de uso em vez de uma configuração global.
Configuração | Opção global | Opção por cluster |
---|---|---|
CNI padrão | Edite a especificação de TkgServiceConfiguration . Consulte o Exemplos de configuração da API do Tanzu Kubernetes Grid Service v1alpha1. |
Especifique o CNI na especificação do cluster. Por exemplo, Antrea é o CNI padrão. Para usar Calico, especifique-o no cluster YAML. Consulte Exemplos para provisionamento de clusters Tanzu Kubernetes usando a API Tanzu Kubernetes Grid Service v1alpha1 |
Servidor proxy | Edite a especificação de TkgServiceConfiguration . Consulte o Exemplos de configuração da API do Tanzu Kubernetes Grid Service v1alpha1. |
Inclua os parâmetros de configuração do servidor proxy na especificação do cluster. Consulte o Exemplos para provisionamento de clusters Tanzu Kubernetes usando a API Tanzu Kubernetes Grid Service v1alpha1. |
Certificados de confiança | Edite a especificação de TkgServiceConfiguration . Há dois casos de uso: a configuração de um registro de contêiner externo e a configuração de proxy com base em certificado. Consulte Exemplos de configuração da API do Tanzu Kubernetes Grid Service v1alpha1 |
Sim, você pode incluir certificados personalizados por cluster ou substituir as configurações de trust definidas globalmente na especificação do cluster. Consulte o Exemplos para provisionamento de clusters Tanzu Kubernetes usando a API Tanzu Kubernetes Grid Service v1alpha1. |
TkgServiceConfiguration
, essas informações de proxy serão propagadas para o manifesto do cluster após a implantação inicial do cluster. A configuração de proxy global será adicionada ao manifesto do cluster somente se não houver campos de configuração de proxy presentes ao criar o cluster. Em outras palavras, a configuração por cluster tem precedência e substituirá uma configuração de proxy global. Para obter mais informações, consulte
Parâmetros de configuração para a API do Tanzu Kubernetes Grid Service v1alpha1.
Antes de editar a especificação do TkgServiceConfiguration
, esteja ciente das ramificações da aplicação da configuração no nível global.
Campo | Aplicado | Impacto nos clusters existentes se adicionados / alterados | Substituição por cluster na criação de cluster | Substituição por cluster na atualização do cluster |
---|---|---|---|---|
defaultCNI |
Globalmente | Nenhuma | Sim, você pode substituir a configuração global na criação do cluster | Não, você não pode alterar o CNI de um cluster existente; Se você tiver usado o CNI padrão definido globalmente na criação do cluster, ele não poderá ser alterado |
proxy |
Globalmente | Nenhuma | Sim, você pode substituir a configuração global na criação do cluster | Sim, com U2 +, você pode substituir a configuração global na atualização do cluster |
trust |
Globalmente | Nenhuma | Sim, você pode substituir a configuração global na criação do cluster | Sim, com U2 +, você pode substituir a configuração global na atualização do cluster |
Propagando alterações de configuração global para clusters existentes
As configurações feitas no nível global no TkgServiceConfiguration
não são propagadas automaticamente para os clusters existentes. Por exemplo, se você fizer alterações nas configurações de proxy
ou trust
no TkgServiceConfiguration
, essas alterações não afetarão os clusters que já estão provisionados.
Para propagar uma alteração global para um cluster existente, você deve corrigir o cluster Tanzu Kubernetes para que o cluster herde as alterações feitas no TkgServiceConfiguration
.
kubectl patch tkc <CLUSTER_NAME> -n <NAMESPACE> --type merge -p "{\"spec\":{\"settings\":{\"network\":{\"proxy\": null}}}}"
kubectl patch tkc <CLUSTER_NAME> -n <NAMESPACE> --type merge -p "{\"spec\":{\"settings\":{\"network\":{\"trust\": null}}}}"