Você pode personalizar o Tanzu Kubernetes Grid com as configurações de rede globais, incluindo a interface de rede de contêiner (CNI) padrão, o servidor proxy e os certificados TLS. As configurações feitas no Tanzu Kubernetes Grid são globais e afetam todos os clusters TKG que são provisionados.
TkgServiceConfiguration
TkgServiceConfiguration
fornece campos para configurar a instância
Tanzu Kubernetes Grid que é executada em
Supervisor.
apiVersion: run.tanzu.vmware.com/v1alpha3 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 TKG provisionados por essa instância do TKG. Se uma atualização sem interrupção for iniciada, manualmente ou por atualização, os clusters TKG existentes serão atualizados.
TkgServiceConfiguration
requer privilégios de administrador do vSphere. Você não poderá usar a função Operador de Cluster TKG se tiver criado uma.
Especificação anotada de TkgServiceConfiguration
TkgServiceConfiguration
.
apiVersion: run.tanzu.vmware.com/v1alpha3 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
Configuração do servidor proxy
- Os parâmetros
proxy
necessários sãohttpProxy
,httpsProxy
enoProxy
. Se você adicionar a sub-rotinaproxy
, todos os três campos serão obrigatórios. - Você pode se conectar ao servidor proxy usando HTTP. Não há suporte para conexões HTTPS.
- Você obtém os valores
spec.proxy.noProxy
necessários da Workload Network. Você não deve fazer proxy da Rede de namespace (anteriormente chamada de CIDRs de pods), Ingress (anteriormente chamada de CIDRs de Entrada) e Egress (anteriormente chamada de CIDRs de Saída) incluindo no camponoProxy
. Consulte as imagens de exemplo abaixo. - Você não precisa incluir o CIDR de Serviços no campo
noProxy
. Os clusters TKG não interagem com esta sub-rede. - Você não precisa incluir os valores
network.services.cidrBlocks
enetwork.pods.cidrBlocks
da especificação de cluster TKG no camponoProxy
. Essas sub-redes não recebem proxy automaticamente para você. - Você não precisa incluir
localhost
e127.0.0.1
no camponoProxy
. Os endpoints não são automaticamente processados por proxy para você.
Quando usar as opções de configuração globais ou por cluster
O TkgServiceConfiguration
é uma especificação global que afeta todos os clusters Tanzu Kubernetes provisionados pela instância Tanzu Kubernetes Grid.
TkgServiceConfiguration
, esteja ciente das alternativas por cluster que podem satisfazer seu caso de uso em vez de uma configuração global.
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.
Antes de editar a especificação 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 | Nenhum | Sim, você pode substituir a configuração global na criação do cluster | Não, você não pode alterar a CNI de um cluster existente; se você tiver usado a CNI padrão definida globalmente na criação do cluster, ela não poderá ser alterada |
proxy |
Globalmente | Nenhum | Sim, você pode substituir a configuração global na criação do cluster | Sim, com o U2+, você pode substituir a configuração global na atualização do cluster |
trust |
Globalmente | Nenhum | Sim, você pode substituir a configuração global na criação do cluster | Sim, com o 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 fazer com 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}}}}"