È possibile personalizzare Servizio Tanzu Kubernetes Grid con impostazioni globali per le funzionalità principali, tra cui l'interfaccia CNI (Container Network Interface), il server proxy e i certificati TLS. Ci sono alcuni aspetti da tenere presenti quando si implementa la funzionalità globale anziché la funzionalità per cluster.

Facoltativamente, è possibile configurare Servizio Tanzu Kubernetes Grid con parametri globali.

Attenzione: La configurazione di Servizio Tanzu Kubernetes Grid è un'operazione globale. Ciò significa che qualsiasi modifica apportata alla specifica TkgServiceConfiguration si applica a tutti i cluster di Tanzu Kubernetes il cui provisioning è stato eseguito da tale servizio. Se viene avviato un aggiornamento in sequenza, manualmente o tramite upgrade, i cluster vengono aggiornati dalla specifica del servizio modificata.

Specifica TkgServiceConfiguration

La specifica TkgServiceConfiguration fornisce campi per la configurazione dell'istanza di Servizio Tanzu Kubernetes Grid.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: <antrea or calico>
  proxy:
    httpProxy: http://<user>:<pwd>@<ip>:<port>
    httpsProxy: http://<user>:<pwd>@<ip>:<port>
    noProxy: [<array of CIDRs to not proxy>]
  trust:
    additionalTrustedCAs:
      - name: <first-cert-name>
        data: <base64-encoded string of a PEM encoded public cert 1>
      - name: <second-cert-name>
        data: <base64-encoded string of a PEM encoded public cert 2>

Parametri della specifica TkgServiceConfiguration

Nella tabella vengono elencati e descritti i parametri della specifica TkgServiceConfiguration. Per alcuni esempi, vedere Esempi di configurazione dell'API v1alpha1 del Servizio Tanzu Kubernetes Grid.
Campo Valore Descrizione
defaultCNI antrea or calico Interfaccia CNI predefinita per i cluster da utilizzare. Il valore predefinito è antrea. L'altra interfaccia CNI supportata è calico.
proxy Marcatore di sezione per i parametri proxy. I parametri proxy sono httpProxy, httpsProxy e noProxy. Tutti i parametri sono obbligatori. Se manca un parametro proxy, non è possibile creare cluster di Tanzu Kubernetes.
httpProxy URI con formato http://<user>:<pwd>@<ip>:<port> Non consente il protocollo https. Se si utilizza https, non è possibile creare cluster di Tanzu Kubernetes.
httpsProxy URI con formato http://<user>:<pwd>@<ip>:<port> Non consente il protocollo https. Se si utilizza https, non è possibile creare cluster di Tanzu Kubernetes.
noProxy

Array di blocchi CIDR da non usare come proxy, ad esempio: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20].

Recuperare i valori richiesti dalla rete del carico di lavoro nel cluster supervisore: Pod CIDRs, Ingress CIDRs e Egress CIDRs.

Fare riferimento all'immagine seguente per i valori da includere nel campo di array noProxy.

Non è necessario usare il proxy per le subnet utilizzate dalla rete del carico di lavoro nel cluster supervisore per i pod, l'ingresso e l'uscita.

Non è necessario includere il CIDR dei servizi del cluster supervisore nel campo noProxy. I cluster di Tanzu Kubernetes non interagiscono con tali servizi.

Agli endpoint localhost e 127.0.0.1 non viene applicato il proxy per impostazione predefinita. Non è necessario aggiungerli al campo noProxy.

Ai CIDR di pod e servizio per i cluster di Tanzu Kubernetes non viene applicato il proxy per impostazione predefinita. Non è necessario aggiungerli al campo noProxy.

trust Marcatore di sezione per i parametri trust. Non accetta alcun dato.
additionalTrustedCAs Accetta un array di certificati con name e data per ciascuno. Non accetta alcun dato.
name Stringa Nome del certificato TLS.
data Stringa Stringa codificata in base64 di un certificato pubblico con codifica PEM.

Recuperare i valori noProxy richiesti da Rete carico di lavoro nel Cluster supervisore, come mostrato nell'immagine.

Quando utilizzare le opzioni di configurazione globale o per cluster

TkgServiceConfiguration è una specifica globale che influisce su tutti i cluster di Tanzu Kubernetes con provisioning eseguito dall'istanza di Servizio Tanzu Kubernetes Grid.

Prima di modificare la specifica TkgServiceConfiguration, esaminare le alternative per cluster disponibili che potrebbero essere più adatte alle proprie esigenze di una configurazione globale.
Tabella 1. Opzioni di configurazione globale e per cluster
Impostazione Opzione globale Opzione per cluster
CNI predefinita Modificare la specifica TkgServiceConfiguration. Vedere Esempi di configurazione dell'API v1alpha1 del Servizio Tanzu Kubernetes Grid. Specificare l'interfaccia CNI nella specifica del cluster. Ad esempio, Antrea è l'interfaccia CNI predefinita. Per utilizzare Calico, specificarlo nel codice YAML del cluster. Vedere Esempi di provisioning dei cluster Tanzu Kubernetes mediante l'API v1alpha1 del Servizio Tanzu Kubernetes Grid.
Server proxy Modificare la specifica TkgServiceConfiguration. Vedere Esempi di configurazione dell'API v1alpha1 del Servizio Tanzu Kubernetes Grid. Includere i parametri di configurazione del server proxy nella specifica del cluster. Vedere Esempi di provisioning dei cluster Tanzu Kubernetes mediante l'API v1alpha1 del Servizio Tanzu Kubernetes Grid.
Certificati attendibili Modificare la specifica TkgServiceConfiguration. Esistono due casi d'uso: configurazione di un registro di container esterno e configurazione di un proxy basato su certificato. Vedere Esempi di configurazione dell'API v1alpha1 del Servizio Tanzu Kubernetes Grid. Sì, è possibile includere certificati personalizzati in base al cluster o sostituire le impostazioni di trust impostate globalmente nella specifica del cluster. Vedere Esempi di provisioning dei cluster Tanzu Kubernetes mediante l'API v1alpha1 del Servizio Tanzu Kubernetes Grid.
Nota: Se in TkgServiceConfiguration è configurato un proxy globale, le informazioni di tale proxy vengono propagate al manifesto del cluster dopo la distribuzione iniziale del cluster. La configurazione del proxy globale viene aggiunta al manifesto del cluster solo se non sono presenti campi di configurazione del proxy durante la creazione del cluster. In altre parole, la configurazione per cluster ha la precedenza e sovrascriverà la configurazione di un proxy globale. Per ulteriori informazioni, vedere Parametri di configurazione per l'API v1alpha1 di Servizio Tanzu Kubernetes Grid.

Prima di modificare la specifica TkgServiceConfiguration, tenere presenti le conseguenze dell'applicazione dell'impostazione a livello globale.

Campo Applicato Impatto sui cluster esistenti in caso di aggiunta/modifica Sostituzione per cluster durante la creazione del cluster Sostituzione per cluster durante l'aggiornamento del cluster
defaultCNI Globalmente Nessuno Sì, è possibile sostituire l'impostazione globale durante la creazione del cluster No, non è possibile modificare l'interfaccia CNI per un cluster esistente. Se durante la creazione del cluster è stata utilizzata l'interfaccia CNI predefinita impostata globalmente, non può essere modificata.
proxy Globalmente Nessuno Sì, è possibile sostituire l'impostazione globale durante la creazione del cluster Sì, con U2+, è possibile sostituire l'impostazione globale durante l'aggiornamento del cluster
trust Globalmente Nessuno Sì, è possibile sostituire l'impostazione globale durante la creazione del cluster Sì, con U2+, è possibile sostituire l'impostazione globale durante l'aggiornamento del cluster

Propagazione delle modifiche della configurazione globale ai cluster esistenti

Le impostazioni specificate a livello globale in TkgServiceConfiguration non vengono propagate automaticamente ai cluster esistenti. Ad esempio, se si apportano modifiche alle impostazioni di proxy o trust in TkgServiceConfiguration, tali modifiche non influiranno sui cluster per cui è già stato eseguito il provisioning.

Per propagare una modifica globale a un cluster esistente, è necessario applicare una patch al cluster di Tanzu Kubernetes per fare in modo che il cluster erediti le modifiche apportate a TkgServiceConfiguration.

Ad esempio:
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}}}}"